annotate HowTo/Mapping/MapFieldAttribute.cs @ 5:f7d63a092920

Исправлено условие Where в тех случаях, когда репозитарий не является генериком
author cin
date Tue, 10 Mar 2015 16:02:11 +0300
parents f990fcb411a9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1 using System;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3 using NUnit.Framework;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
4
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
5 using BLToolkit.Mapping;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
6
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
7 namespace HowTo.Mapping
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
8 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
9 [TestFixture]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
10 public class MapField
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
11 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
12 public class SourceObject1
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
13 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
14 public string Street = "1 Main";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
15 public string City = "Bigtown";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
16 public string State = "XX";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
17 public string Zip = "00000";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
18 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
19
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
20 public class Address
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
21 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
22 public string Street;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
23 public string City;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
24 public string State;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
25 public string Zip;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
26 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
27
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
28 /*[a]*/[MapField("Street", "Address.Street")]/*[/a]*/
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
29 /*[a]*/[MapField("City", "Address.City")]/*[/a]*/
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
30 /*[a]*/[MapField("State", "Address.State")]/*[/a]*/
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
31 /*[a]*/[MapField("Zip", "Address.Zip")]/*[/a]*/
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
32 public class Order1
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
33 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
34 public Address Address = new Address();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
35 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
36
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
37 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
38 public void MapFieldTest1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
39 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
40 SourceObject1 source = new SourceObject1();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
41 Order1 order = Map.ObjectToObject<Order1>(source);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
42
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
43 Assert.AreEqual("1 Main", order.Address.Street);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
44 Assert.AreEqual("Bigtown", order.Address.City);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
45 Assert.AreEqual("XX", order.Address.State);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
46 Assert.AreEqual("00000", order.Address.Zip);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
47 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
48
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
49 public class SourceObject2
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
50 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
51 public string BillingStreet = "1 Main";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
52 public string BillingCity = "Bigtown";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
53 public string BillingState = "XX";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
54 public string BillingZip = "00000";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
55
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
56 public string ShippingStreet = "2 Main";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
57 public string ShippingCity = "Bigtown";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
58 public string ShippingState = "XX";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
59 public string ShippingZip = "00000";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
60 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
61
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
62 public class Order2
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
63 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
64 /*[a]*/[MapField(Format="Billing{0}")]/*[/a]*/
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
65 public Address BillingAddress = new Address();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
66
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
67 /*[a]*/[MapField(Format="Shipping{0}")]/*[/a]*/
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
68 public Address ShippingAddress = new Address();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
69 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
70
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
71 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
72 public void MapFieldTest2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
73 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
74 SourceObject2 source = new SourceObject2();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
75 Order2 order = Map.ObjectToObject<Order2>(source);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
76
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
77 Assert.AreEqual("1 Main", order.BillingAddress.Street);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
78 Assert.AreEqual("Bigtown", order.BillingAddress.City);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
79 Assert.AreEqual("XX", order.BillingAddress.State);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
80 Assert.AreEqual("00000", order.BillingAddress.Zip);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
81
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
82 Assert.AreEqual("2 Main", order.ShippingAddress.Street);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
83 Assert.AreEqual("Bigtown", order.ShippingAddress.City);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
84 Assert.AreEqual("XX", order.ShippingAddress.State);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
85 Assert.AreEqual("00000", order.ShippingAddress.Zip);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
86 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
87 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
88 }