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 }