root / trunk / hammock / src / net35 / Hammock.Tests / Helpers / TestExtensions.cs @ 0eea575a
History | View | Annotate | Download (1.5 kB)
1 |
using System; |
---|---|
2 |
using System.IO; |
3 |
using System.Text; |
4 |
using System.Xml.Serialization; |
5 |
using NUnit.Framework; |
6 |
|
7 |
namespace RestCore.Tests.Helpers |
8 |
{ |
9 |
public static class TestExtensions |
10 |
{ |
11 |
#if !Smartphone |
12 |
public static string GetDescription(this Enum value) |
13 |
{ |
14 |
var field = value.GetType().GetField(value.ToString()); |
15 |
var attributes = (DescriptionAttribute[]) field.GetCustomAttributes(typeof (DescriptionAttribute), false); |
16 |
|
17 |
return (attributes.Length > 0) ? attributes[0].Description : value.ToString(); |
18 |
} |
19 |
#endif |
20 |
|
21 |
public static string ToXml<T>(this T instance) |
22 |
{ |
23 |
var type = typeof (T); |
24 |
#if !Smartphone |
25 |
if (!type.IsSerializable) |
26 |
{ |
27 |
return String.Empty; |
28 |
} |
29 |
#endif |
30 |
|
31 |
var sb = new StringBuilder(); |
32 |
var serializer = new XmlSerializer(type); |
33 |
|
34 |
using (var writer = new StringWriter(sb)) |
35 |
{ |
36 |
serializer.Serialize(writer, instance); |
37 |
} |
38 |
|
39 |
return sb.ToString(); |
40 |
} |
41 |
|
42 |
public static T FromXml<T>(this string xml) |
43 |
{ |
44 |
T type; |
45 |
|
46 |
var serializer = new XmlSerializer(typeof (T)); |
47 |
|
48 |
using (var reader = new StringReader(xml)) |
49 |
{ |
50 |
type = (T) serializer.Deserialize(reader); |
51 |
reader.Close(); |
52 |
} |
53 |
|
54 |
return type; |
55 |
} |
56 |
|
57 |
public static Uri AsUri(this string url) |
58 |
{ |
59 |
return new Uri(url); |
60 |
} |
61 |
} |
62 |
} |