annotate UnitTests/CS/Mapping/ObjectMapperTest.cs @ 3:1ef98bd70424

!bug 100 +3h Исправление проблемы BLToolkit + mono 3.4
author cin
date Fri, 22 Aug 2014 17:34:46 +0400
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 using System.Data;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3 using BLToolkit.EditableObjects;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
4 using NUnit.Framework;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
5
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
6 using BLToolkit.Mapping;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
7
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
8 namespace Mapping
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
9 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
10 [TestFixture]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
11 public class ObjectMapperTest
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
12 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
13 public class Object1
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
14 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
15 [MapField("col2")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
16 public int Col1 { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
17 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
18
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
19
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
20 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
21 public void NameTest1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
22 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
23 var dt = new DataTable();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
24
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
25 dt.Columns.Add("col1", typeof(int));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
26 dt.Columns.Add("col2", typeof(int));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
27 dt.Rows.Add(1, 2);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
28
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
29 var o = Map.DataRowToObject<Object1>(dt.Rows[0]);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
30
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
31 Assert.AreEqual(2, o.Col1);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
32 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
33
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
34 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
35 public void NameTest2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
36 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
37 var dt = new DataTable();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
38
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
39 dt.Columns.Add("col2", typeof(int));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
40 dt.Columns.Add("col1", typeof(int));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
41 dt.Rows.Add(2, 1);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
42
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
43 var o = Map.DataRowToObject<Object1>(dt.Rows[0]);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
44
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
45 Assert.AreEqual(2, o.Col1);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
46 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
47
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
48 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
49 public void GetMemberMapperByNameAliasTest()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
50 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
51 var om = Map.GetObjectMapper(typeof(Object1));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
52
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
53 Assert.IsNotNull(om["col2"]);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
54 Assert.IsNull (om["Col1"]);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
55 Assert.IsNotNull(om["Col1", true]);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
56 Assert.IsNull (om["col1", true]);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
57 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
58
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
59 public interface ICheckOut
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
60 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
61 DateTime DateCheckOut { get; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
62 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
63
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
64 public class Test : ICheckOut
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
65 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
66 public int ID { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
67 public string Value { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
68
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
69 DateTime ICheckOut.DateCheckOut
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
70 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
71 get { return DateTime.Now; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
72 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
73 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
74
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
75 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
76 public void MapObjectToObject()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
77 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
78 var s1 = new Test { ID = 1, Value = "123" };
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
79 var s2 = new Test();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
80
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
81 Map.ObjectToObject(s1, s2, null);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
82 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
83
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
84 public abstract class BizEntityTest : EditableObject<BizEntityTest>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
85 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
86 public abstract int ID { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
87 public abstract string Name { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
88 public abstract BizEntityTestInner BizEntityTestInner { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
89 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
90
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
91 public abstract class BizEntityTestInner : EditableObject<BizEntityTestInner>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
92 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
93 public abstract int ID { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
94 public abstract string Name { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
95 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
96
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
97 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
98 public void DestabilizeTest()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
99 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
100 var bet = BizEntityTest.CreateInstance();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
101
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
102 bet.ID = 1;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
103 bet.Name = "BizEntityTest";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
104 bet.BizEntityTestInner = BizEntityTestInner.CreateInstance();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
105 bet.BizEntityTestInner.ID = 111;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
106 bet.BizEntityTestInner.Name = "BizEntityTestInner";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
107
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
108 var mapper = Map.GetObjectMapper<BizEntityTest, BizEntityTest>(true);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
109
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
110 var bet2 = mapper(bet);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
111 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
112 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
113 }