annotate UnitTests/CS/Mapping/ResultSetTest.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.Collections;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3 using System.Data;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
4 using BLToolkit.Data;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
5 using BLToolkit.Mapping;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
6
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
7 using NUnit.Framework;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
8
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
9 namespace Mapping
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
10 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
11 [TestFixture]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
12 public class ResultSetTest
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
13 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
14 public class Master
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
15 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
16 [MapField("MasterID")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
17 public int ID;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
18
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
19 public ArrayList Slaves = new ArrayList();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
20 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
21
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
22 public class Slave
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
23 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
24 [MapField("SlaveID")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
25 public int ID;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
26
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
27 public int MasterID;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
28 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
29
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
30 const string SqlResultSet = @"
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
31 SELECT 1 as MasterID
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
32 UNION SELECT 2 as MasterID
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
33
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
34 SELECT 4 SlaveID, 1 as MasterID
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
35 UNION SELECT 5 SlaveID, 2 as MasterID
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
36 UNION SELECT 6 SlaveID, 2 as MasterID
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
37 UNION SELECT 7 SlaveID, 1 as MasterID";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
38
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
39 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
40 public void TestResultSet()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
41 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
42 MapResultSet[] sets = new MapResultSet[2];
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
43
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
44 sets[0] = new MapResultSet(typeof(Master));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
45 sets[1] = new MapResultSet(typeof(Slave));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
46
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
47 sets[0].AddRelation(sets[1], "MasterID", "MasterID", "Slaves");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
48
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
49 using (DbManager db = new DbManager())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
50 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
51 db
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
52 #if ORACLE
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
53 .SetSpCommand("ResultSetTest")
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
54 #else
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
55 .SetCommand(SqlResultSet)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
56 #endif
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
57 .ExecuteResultSet(sets);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
58 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
59
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
60 Assert.AreEqual(7, ((Slave)(((Master)sets[0].List[0]).Slaves[1])).ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
61 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
62
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
63 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
64 [ExpectedException(typeof(MappingException))]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
65 public void TestFailResultSet1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
66 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
67 MapResultSet[] sets = new MapResultSet[2];
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
68
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
69 sets[0] = new MapResultSet(typeof(Master));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
70 sets[1] = new MapResultSet(typeof(Slave));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
71
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
72 sets[0].AddRelation(sets[1], "MasterID", "ID", "Slaves");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
73
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
74 using (DbManager db = new DbManager())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
75 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
76 db
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
77 #if ORACLE
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
78 .SetSpCommand("ResultSetTest")
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
79 #else
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
80 .SetCommand(SqlResultSet)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
81 #endif
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
82 .ExecuteResultSet(sets);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
83 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
84 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
85
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
86 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
87 [ExpectedException(typeof(MappingException))]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
88 public void TestFailResultSet2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
89 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
90 MapResultSet[] sets = new MapResultSet[2];
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
91
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
92 sets[0] = new MapResultSet(typeof(Master));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
93 sets[1] = new MapResultSet(typeof(Slave));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
94
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
95 sets[0].AddRelation(sets[1], "Master", "MasterID", "Slaves");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
96
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
97 using (DbManager db = new DbManager())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
98 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
99 db
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
100 #if ORACLE
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
101 .SetSpCommand("ResultSetTest")
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
102 #else
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
103 .SetCommand(SqlResultSet)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
104 #endif
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
105 .ExecuteResultSet(sets);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
106 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
107 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
108
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
109 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
110 [ExpectedException(typeof(MappingException))]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
111 public void TestFailResultSet3()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
112 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
113 MapResultSet[] sets = new MapResultSet[2];
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
114
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
115 sets[0] = new MapResultSet(typeof(Master));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
116 sets[1] = new MapResultSet(typeof(Slave));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
117
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
118 sets[0].AddRelation(sets[1], "MasterID", "MasterID", "Slave");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
119
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
120 using (DbManager db = new DbManager())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
121 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
122 db
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
123 #if ORACLE
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
124 .SetSpCommand("ResultSetTest")
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
125 #else
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
126 .SetCommand(SqlResultSet)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
127 #endif
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
128 .ExecuteResultSet(sets);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
129 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
130 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
131
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
132 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
133 public void TestNextResult()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
134 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
135 using (DbManager db = new DbManager())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
136 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
137 MapResultSet[] sets = db
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
138 #if ORACLE
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
139 .SetSpCommand("ResultSetTest")
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
140 #else
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
141 .SetCommand(SqlResultSet)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
142 #endif
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
143 .ExecuteResultSet(typeof(Master),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
144 new MapNextResult(typeof(Slave), "MasterID", "MasterID", "Slaves"));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
145
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
146 Assert.AreEqual(7, ((Slave)(((Master)sets[0].List[0]).Slaves[1])).ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
147 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
148 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
149
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
150 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
151 public void TestDataSet()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
152 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
153 using (DbManager db = new DbManager())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
154 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
155 DataSet set = db
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
156 #if ORACLE
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
157 .SetSpCommand("ResultSetTest")
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
158 #else
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
159 .SetCommand(SqlResultSet)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
160 #endif
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
161 .ExecuteDataSet();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
162
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
163 Assert.IsNotNull(set);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
164 Assert.AreEqual(2, set.Tables.Count);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
165 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
166
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
167 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
168
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
169 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
170 }