Statistics
| Branch: | Revision:

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
}