Mercurial > pub > bltoolkit
comparison UnitTests/CS/Mapping/MapValueAttributeTest.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 | |
3 using NUnit.Framework; | |
4 | |
5 using BLToolkit.Mapping; | |
6 | |
7 namespace Mapping | |
8 { | |
9 [TestFixture] | |
10 public class MapValueAttributeTest | |
11 { | |
12 public class Object1 | |
13 { | |
14 [MapValue(true, "Y")] | |
15 [MapValue(false, "N")] | |
16 public bool Bool1; | |
17 | |
18 [MapValue(true, "Y", "Yes")] | |
19 [MapValue(false, "N", "No")] | |
20 public bool Bool2; | |
21 } | |
22 | |
23 [Test] | |
24 public void BoolTest1() | |
25 { | |
26 ObjectMapper om = Map.GetObjectMapper(typeof(Object1)); | |
27 | |
28 Object1 o = (Object1)om.CreateInstance(); | |
29 | |
30 om.SetValue(o, "Bool1", "Y"); | |
31 om.SetValue(o, "Bool2", "Yes"); | |
32 | |
33 Assert.AreEqual(true, o.Bool1); | |
34 Assert.AreEqual(true, o.Bool2); | |
35 | |
36 Assert.AreEqual("Y", om.GetValue(o, "Bool1")); | |
37 Assert.AreEqual("Y", om.GetValue(o, "Bool2")); | |
38 } | |
39 | |
40 [MapValue(true, "Y")] | |
41 [MapValue(false, "N")] | |
42 public class Object2 | |
43 { | |
44 public bool Bool1; | |
45 | |
46 [MapValue(true, "Y", "Yes")] | |
47 [MapValue(false, "N", "No")] | |
48 public bool Bool2; | |
49 } | |
50 | |
51 [Test] | |
52 public void BoolTest2() | |
53 { | |
54 ObjectMapper om = Map.GetObjectMapper(typeof(Object2)); | |
55 | |
56 Object2 o = (Object2)om.CreateInstance(); | |
57 | |
58 om.SetValue(o, "Bool1", "Y"); | |
59 om.SetValue(o, "Bool2", "Yes"); | |
60 | |
61 Assert.AreEqual(true, o.Bool1); | |
62 Assert.AreEqual(true, o.Bool2); | |
63 | |
64 Assert.AreEqual("Y", om.GetValue(o, "Bool1")); | |
65 Assert.AreEqual("Y", om.GetValue(o, "Bool2")); | |
66 } | |
67 | |
68 [MapValue(Enum1.Value1, "1")] | |
69 [MapValue(Enum1.Value3, "3")] | |
70 public enum Enum1 | |
71 { | |
72 Value1, | |
73 [MapValue("2")] Value2, | |
74 Value3, | |
75 [NullValue] Value4 | |
76 } | |
77 | |
78 public class Object3 | |
79 { | |
80 public Enum1 Enum1; | |
81 public Enum1 Enum2; | |
82 | |
83 [MapValue(Enum1.Value1, "10")] | |
84 [MapValue(Enum1.Value2, "20")] | |
85 [MapValue(Enum1.Value3, "30")] | |
86 [MapValue(Enum1.Value3, "32")] | |
87 [MapValue(Enum1.Value3, "31")] | |
88 public Enum1 Enum3; | |
89 public Enum1 Enum4; | |
90 } | |
91 | |
92 [Test] | |
93 public void EnumTest1() | |
94 { | |
95 ObjectMapper om = Map.GetObjectMapper(typeof(Object3)); | |
96 | |
97 Object3 o = (Object3)om.CreateInstance(); | |
98 | |
99 om.SetValue(o, "Enum1", "1"); | |
100 om.SetValue(o, "Enum2", "2"); | |
101 om.SetValue(o, "Enum3", "30"); | |
102 om.SetValue(o, "Enum4", null); | |
103 | |
104 Assert.AreEqual(Enum1.Value1, o.Enum1); | |
105 Assert.AreEqual(Enum1.Value2, o.Enum2); | |
106 Assert.AreEqual(Enum1.Value3, o.Enum3); | |
107 Assert.AreEqual(Enum1.Value4, o.Enum4); | |
108 | |
109 om.SetValue(o, "Enum3", "31"); | |
110 Assert.AreEqual(Enum1.Value3, o.Enum3); | |
111 | |
112 om.SetValue(o, "Enum3", "32"); | |
113 Assert.AreEqual(Enum1.Value3, o.Enum3); | |
114 | |
115 Assert.AreEqual("1", om.GetValue(o, "Enum1")); | |
116 Assert.AreEqual("2", om.GetValue(o, "Enum2")); | |
117 Assert.Contains(om.GetValue(o, "Enum3"), new[] {"30", "31", "32", "3"}); | |
118 Assert.IsNull ( om.GetValue(o, "Enum4")); | |
119 } | |
120 | |
121 [MapValue(typeof(DayOfWeek), DayOfWeek.Monday, "M")] | |
122 [MapValue( DayOfWeek.Friday, "F")] | |
123 public class Object4 | |
124 { | |
125 public DayOfWeek Dow1; | |
126 public DayOfWeek Dow2; | |
127 } | |
128 | |
129 [Test] | |
130 public void DayOfWeekTest1() | |
131 { | |
132 ObjectMapper om = Map.GetObjectMapper(typeof(Object4)); | |
133 | |
134 Object4 o = (Object4)om.CreateInstance(); | |
135 | |
136 om.SetValue(o, "Dow1", "M"); | |
137 om.SetValue(o, "Dow2", "F"); | |
138 | |
139 Assert.AreEqual(DayOfWeek.Monday, o.Dow1); | |
140 Assert.AreEqual(DayOfWeek.Friday, o.Dow2); | |
141 | |
142 Assert.AreEqual("M", om.GetValue(o, "Dow1")); | |
143 Assert.AreEqual("F", om.GetValue(o, "Dow2")); | |
144 } | |
145 | |
146 // http://www.rsdn.ru/Forum/?mid=1809157 | |
147 // | |
148 public enum StringAlignment | |
149 { | |
150 Far, | |
151 Near, | |
152 Center | |
153 } | |
154 | |
155 public class SourceObject | |
156 { | |
157 public string test = "Near"; | |
158 } | |
159 | |
160 public class DestObject | |
161 { | |
162 [MapValue(StringAlignment.Near, "Near")] | |
163 [MapValue(StringAlignment.Far, "Far")] | |
164 [MapValue(StringAlignment.Center, "Center")] | |
165 public StringAlignment test; | |
166 } | |
167 | |
168 [Test] | |
169 public void EnumTest() | |
170 { | |
171 SourceObject so = new SourceObject(); | |
172 DestObject o = (DestObject)Map.ObjectToObject(so, typeof(DestObject)); | |
173 | |
174 Assert.AreEqual(StringAlignment.Near, o.test); | |
175 } | |
176 | |
177 #region Nullable Enum | |
178 | |
179 public enum Enum2 | |
180 { | |
181 [MapValue("Near")] Value1, | |
182 } | |
183 | |
184 public class Object5 | |
185 { | |
186 public Enum2? test; | |
187 } | |
188 | |
189 [Test] | |
190 public void NullableEnumTest() | |
191 { | |
192 SourceObject so = new SourceObject(); | |
193 | |
194 Object5 b = Map.ObjectToObject<Object5>(so); | |
195 Assert.AreEqual(Enum2.Value1, b.test); | |
196 } | |
197 | |
198 #endregion | |
199 } | |
200 } |