Mercurial > pub > bltoolkit
comparison UnitTests/CS/Mapping/MapFieldAttributeTest.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.Collections.Generic; | |
3 | |
4 using NUnit.Framework; | |
5 | |
6 using BLToolkit.DataAccess; | |
7 using BLToolkit.Mapping; | |
8 using BLToolkit.Reflection.Extension; | |
9 | |
10 namespace Mapping | |
11 { | |
12 [TestFixture, Category("Mapping")] | |
13 public class MapFieldAttributeTest | |
14 { | |
15 [MapField("MapName", "Field1")] | |
16 public class Object1 | |
17 { | |
18 public int Field1; | |
19 [MapField("intfld")] | |
20 public int Field2; | |
21 } | |
22 | |
23 [Test] | |
24 public void Test1() | |
25 { | |
26 ObjectMapper om = Map.GetObjectMapper(typeof(Object1)); | |
27 | |
28 Object1 o = (Object1)om.CreateInstance(); | |
29 | |
30 om.SetValue(o, "mapname", 123); | |
31 om.SetValue(o, "intfld", 234); | |
32 | |
33 Assert.AreEqual(123, o.Field1); | |
34 Assert.AreEqual(234, o.Field2); | |
35 } | |
36 | |
37 [MapValue(true, "Y")] | |
38 [MapValue(false, "N")] | |
39 public class Object2 | |
40 { | |
41 public bool Field1; | |
42 public int Field2; | |
43 } | |
44 | |
45 public class Object3 | |
46 { | |
47 public Object2 Object2 = new Object2(); | |
48 public Object4 Object4; | |
49 } | |
50 | |
51 [MapField("fld1", "Object3.Object2.Field1")] | |
52 [MapField("fld2", "Object3.Object4.Str1")] | |
53 public class Object4 | |
54 { | |
55 public Object3 Object3 = new Object3(); | |
56 public string Str1; | |
57 } | |
58 | |
59 [Test] | |
60 public void Test2() | |
61 { | |
62 ObjectMapper om = Map.GetObjectMapper(typeof(Object4)); | |
63 | |
64 Object4 o = (Object4)om.CreateInstance(); | |
65 | |
66 om.SetValue(o, "fld1", "Y"); | |
67 om.SetValue(o, "Object3.Object2.Field2", 123); | |
68 om.SetValue(o, "fld2", "str"); | |
69 | |
70 Assert.AreEqual(true, o.Object3.Object2.Field1); | |
71 Assert.AreEqual(123, o.Object3.Object2.Field2); | |
72 Assert.IsNull ( o.Object3.Object4); | |
73 | |
74 Assert.AreEqual("Y", om.GetValue(o, "fld1")); | |
75 Assert.AreEqual(123, om.GetValue(o, "Object3.Object2.Field2")); | |
76 Assert.IsNull ( om.GetValue(o, "fld2")); | |
77 } | |
78 | |
79 [Test] | |
80 public void Test3() | |
81 { | |
82 ObjectMapper om = Map.GetObjectMapper(typeof(Object4)); | |
83 MemberMapper mm = om["Object3.Object2.Field1", true]; | |
84 | |
85 Assert.IsNotNull(mm); | |
86 } | |
87 | |
88 [MapField("fld2", "Object3.Object4.Str1")] | |
89 [TypeExtension(FileName="Map.xml")] | |
90 public class Object5 | |
91 { | |
92 public Object3 Object3 = new Object3(); | |
93 public string Str1; | |
94 } | |
95 | |
96 [Test] | |
97 public void Test4() | |
98 { | |
99 ObjectMapper om = Map.GetObjectMapper(typeof(Object5)); | |
100 MemberMapper mm1 = om["Object3.Object2.Field1", true]; | |
101 MemberMapper mm2 = om["Object3.Object4.Str1", true]; | |
102 | |
103 Assert.IsNotNull(mm1); | |
104 Assert.IsNotNull(mm2); | |
105 } | |
106 | |
107 public class Entity | |
108 { | |
109 [PrimaryKey] | |
110 public int Id; | |
111 } | |
112 | |
113 public class Name | |
114 { | |
115 public string LastName; | |
116 public string FirstName; | |
117 public string MiddleName; | |
118 } | |
119 | |
120 [MapField("PhoneId", "Id")] | |
121 public class PhoneEntity : Entity | |
122 { | |
123 public string Phone; | |
124 } | |
125 | |
126 [MapField("PhoneId", "Phone.Id")] | |
127 [MapField("LastName", "Name.LastName")] | |
128 [MapField("FirstName", "Name.FirstName")] | |
129 [MapField("MiddleName", "Name.MiddleName")] | |
130 public class PersonEntity : Entity | |
131 { | |
132 public PhoneEntity Phone; | |
133 public Name Name = new Name(); | |
134 } | |
135 | |
136 [Test] | |
137 public void InnerTest1() | |
138 { | |
139 ObjectMapper om = ObjectMapper<PersonEntity>.Instance; | |
140 List<string> list = new List<MemberMapper>(om) | |
141 .ConvertAll<string>(delegate(MemberMapper mm) { return mm.Name; }); | |
142 | |
143 Assert.That(list.Count == 5); | |
144 Assert.That(list.Contains("PhoneId")); | |
145 Assert.That(list.Contains("Phone"), Is.False); | |
146 Assert.That(list.Contains("LastName")); | |
147 Assert.That(list.Contains("Name"), Is.False); | |
148 } | |
149 | |
150 [MapField("PhoneId", "Phone.Id")] | |
151 public class PersonEntity2 : Entity | |
152 { | |
153 [MapIgnore] | |
154 public PhoneEntity Phone = new PhoneEntity(); | |
155 [MapField(Format="{0}")] | |
156 public Name Name = new Name(); | |
157 } | |
158 | |
159 [Test] | |
160 public void InnerTest2() | |
161 { | |
162 ObjectMapper om = ObjectMapper<PersonEntity2>.Instance; | |
163 List<string> list = new List<MemberMapper>(om) | |
164 .ConvertAll<string>(delegate(MemberMapper mm) { return mm.Name; }); | |
165 | |
166 Assert.That(list.Count == 5); | |
167 Assert.That(list.Contains("PhoneId")); | |
168 Assert.That(list.Contains("Phone"), Is.False); | |
169 Assert.That(list.Contains("LastName")); | |
170 Assert.That(list.Contains("Name"), Is.False); | |
171 } | |
172 | |
173 [MapField("PhoneId", "Phone.Id")] | |
174 [MapField("Name", Format="{0}")] | |
175 public class PersonEntity3 : Entity | |
176 { | |
177 [MapIgnore] | |
178 public PhoneEntity Phone = new PhoneEntity(); | |
179 public Name Name = new Name(); | |
180 } | |
181 | |
182 [Test] | |
183 public void InnerTest3() | |
184 { | |
185 ObjectMapper om = ObjectMapper<PersonEntity3>.Instance; | |
186 List<string> list = new List<MemberMapper>(om) | |
187 .ConvertAll<string>(delegate(MemberMapper mm) { return mm.Name; }); | |
188 | |
189 Assert.That(list.Count == 5); | |
190 Assert.That(list.Contains("PhoneId")); | |
191 Assert.That(list.Contains("Phone"), Is.False); | |
192 Assert.That(list.Contains("LastName")); | |
193 Assert.That(list.Contains("Name"), Is.False); | |
194 } | |
195 } | |
196 } |