Mercurial > pub > bltoolkit
comparison UnitTests/CS/Reflection/Extension/DefaultValueTest.cs @ 0:f990fcb411a9
Копия текущей версии из github
author | cin |
---|---|
date | Thu, 27 Mar 2014 21:46:09 +0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:f990fcb411a9 |
---|---|
1 using System; | |
2 using System.IO; | |
3 | |
4 using NUnit.Framework; | |
5 | |
6 using BLToolkit.Mapping; | |
7 using BLToolkit.Reflection.Extension; | |
8 | |
9 namespace Reflection.Extension | |
10 { | |
11 [TestFixture] | |
12 public class DefaultValueTest | |
13 { | |
14 [SetUp] | |
15 public void SetUp() | |
16 { | |
17 Map.DefaultSchema = new DefaultMappingSchema(); | |
18 | |
19 using (StreamWriter sw = File.CreateText("Mapping.xml")) | |
20 { | |
21 sw.WriteLine(@"<?xml version='1.0' encoding='utf-8' ?> | |
22 <Types xmlns='urn:schemas-bltoolkit-net:typeext'> | |
23 <Type Name='Enum3'> | |
24 <Member Name='Value1' MapValue='1' MapValue-Type='System.String' /> | |
25 <Member Name='Value2' MapValue='3' MapValue-Type='System.String' DefaultValue=''/> | |
26 </Type> | |
27 <Type Name='Enum4'> | |
28 <Member Name='Value1' MapValue='1' MapValue-Type='System.String' /> | |
29 <Member Name='Value2' MapValue='3' MapValue-Type='System.String' DefaultValue=''/> | |
30 </Type> | |
31 <Type Name='Dest'> | |
32 <Member Name='Field2'> | |
33 <MapValue Value='1' OrigValue='Value1' /> | |
34 <MapValue Value='2' OrigValue='Value2' /> | |
35 <DefaultValue Value='Value1' /> | |
36 </Member> | |
37 <Member Name='Field3' DefaultValue='Value1'> | |
38 <MapValue Value='1' OrigValue='Value1' /> | |
39 <MapValue Value='2' OrigValue='Value2' /> | |
40 </Member> | |
41 </Type> | |
42 </Types>"); | |
43 } | |
44 } | |
45 | |
46 [TearDown] | |
47 public void TearDown() | |
48 { | |
49 File.Delete("Mapping.xml"); | |
50 } | |
51 | |
52 public enum Enum1 | |
53 { | |
54 [MapValue("1")] Value1 = 11, | |
55 [MapValue("2"), DefaultValue] Value2 = 12 | |
56 } | |
57 | |
58 [MapValue(Enum2.Value1, "1")] | |
59 [MapValue(Enum2.Value2, "2")] | |
60 [DefaultValue(Enum2.Value2)] | |
61 public enum Enum2 | |
62 { | |
63 Value1, | |
64 Value2 | |
65 } | |
66 | |
67 public enum Enum3 | |
68 { | |
69 Value1, | |
70 Value2 | |
71 } | |
72 | |
73 public enum Enum4 | |
74 { | |
75 [MapValue("1")] Value1, | |
76 [MapValue("2"), DefaultValue] Value2 | |
77 } | |
78 | |
79 public class Source | |
80 { | |
81 public string Field1 = "11"; | |
82 public string Field2 = "22"; | |
83 public string Field3 = "33"; | |
84 } | |
85 | |
86 public class Dest | |
87 { | |
88 public Enum1 Field1; | |
89 public Enum1 Field2; | |
90 public Enum2 Field3; | |
91 } | |
92 | |
93 [Test] | |
94 public void Test1() | |
95 { | |
96 Map.Extensions = TypeExtension.GetExtensions("Mapping.xml"); | |
97 | |
98 Enum1 e1 = (Enum1)Map.ValueToEnum("3", typeof(Enum1)); | |
99 Assert.AreEqual(Enum1.Value2, e1); | |
100 | |
101 Enum2 e2 = (Enum2)Map.ValueToEnum("3", typeof(Enum2)); | |
102 Assert.AreEqual(Enum2.Value2, e2); | |
103 | |
104 Enum3 e3 = (Enum3)Map.ValueToEnum("4", typeof(Enum3)); | |
105 Assert.AreEqual(Enum3.Value2, e3); | |
106 | |
107 Enum4 e4 = (Enum4)Map.ValueToEnum("4", typeof(Enum4)); | |
108 Assert.AreEqual(Enum4.Value2, e4); | |
109 | |
110 Dest o = (Dest)Map.ObjectToObject(new Source(), typeof(Dest)); | |
111 | |
112 Assert.AreEqual(Enum1.Value2, o.Field1); | |
113 Assert.AreEqual(Enum1.Value1, o.Field2); | |
114 Assert.AreEqual(Enum2.Value1, o.Field3); | |
115 } | |
116 } | |
117 } |