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