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 } |
