annotate UnitTests/CS/Data/DbManagerTest.cs @ 1:8f65451dc28f

Исправлена проблема с фабрикой и выборкой нескольких объектов в linq выражении
author cin
date Fri, 28 Mar 2014 01:04:56 +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 System.Data.SqlClient;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
5 using System.Data.SqlTypes;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
6 using System.IO;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
7 using System.Linq;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
8 using System.Xml;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
9 using BLToolkit.Data.DataProvider;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
10 using NUnit.Framework;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
11
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
12 using BLToolkit.Data;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
13 using BLToolkit.EditableObjects;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
14 using BLToolkit.Mapping;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
15 using BLToolkit.Reflection;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
16
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
17 namespace Data
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
18 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
19 [TestFixture]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
20 public class DbManagerTest
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
21 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
22 public enum Gender
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
23 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
24 [MapValue("F")] Female,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
25 [MapValue("M")] Male,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
26 [MapValue("U")] Unknown,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
27 [MapValue("O")] Other
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
28 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
29
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
30 public class Person
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
31 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
32 [MapField("PersonID")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
33 public int ID;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
34 public string FirstName;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
35 public string MiddleName;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
36 public string LastName;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
37 public Gender Gender;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
38 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
39
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
40 public class DataTypeTest
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
41 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
42 [MapField("DataTypeID")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
43 public int ID;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
44 [MapIgnore(false)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
45 public Byte[] Binary_;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
46 #if !ORACLE
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
47 // Oracle does not know boolean nor guid.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
48 //
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
49 public Boolean Boolean_;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
50 public Guid Guid_;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
51 #endif
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
52 public Byte Byte_;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
53 [MapIgnore(false)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
54 public Byte[] Bytes_;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
55 public DateTime DateTime_;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
56 public Decimal Decimal_;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
57 public Double Double_;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
58 public Int16 Int16_;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
59 public Int32 Int32_;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
60 public Int64 Int64_;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
61 public Decimal Money_;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
62 public Single Single_;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
63 public String String_;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
64
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
65 public Char Char_;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
66 public SByte SByte_;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
67 public UInt16 UInt16_;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
68 public UInt32 UInt32_;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
69 public UInt64 UInt64_;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
70 #if !SQLCE
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
71 [MapIgnore(false)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
72 public Stream Stream_;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
73 [MapIgnore]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
74 public XmlReader Xml_;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
75 [MapField("Xml_")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
76 public XmlDocument XmlDoc_;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
77 #endif
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
78 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
79
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
80 public class DataTypeSqlTest
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
81 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
82 [MapField("DataTypeID")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
83 public int ID;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
84 public SqlBinary Binary_;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
85 public SqlBoolean Boolean_;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
86 public SqlByte Byte_;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
87 public SqlDateTime DateTime_;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
88 public SqlDecimal Decimal_;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
89 public SqlDouble Double_;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
90 public SqlGuid Guid_;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
91 public SqlInt16 Int16_;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
92 public SqlInt32 Int32_;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
93 public SqlInt64 Int64_;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
94 public SqlMoney Money_;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
95 public SqlSingle Single_;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
96 public SqlString String_;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
97 #if !SQLCE
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
98 [MapIgnore(false)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
99 public SqlBytes Bytes_;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
100 [MapIgnore(false)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
101 public SqlChars Chars_;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
102 [MapIgnore(false)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
103 public SqlXml Xml_;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
104 #endif
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
105 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
106
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
107 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
108 public void ExecuteList1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
109 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
110 using (DbManager db = new DbManager())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
111 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
112 ArrayList list = db
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
113 .SetCommand("SELECT * FROM Person")
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
114 .ExecuteList(typeof(Person));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
115
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
116 Assert.IsNotEmpty(list);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
117 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
118 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
119
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
120 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
121 public void ExecuteList2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
122 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
123 using (DbManager db = new DbManager())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
124 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
125 IList list = db
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
126 .SetCommand("SELECT * FROM Person")
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
127 .ExecuteList(new EditableArrayList(typeof(Person)), typeof(Person));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
128
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
129 Assert.IsNotEmpty(list);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
130 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
131 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
132
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
133 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
134 public void ExecuteObject()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
135 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
136 using (DbManager db = new DbManager())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
137 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
138 Person p = (Person)db
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
139 .SetCommand("SELECT * FROM Person WHERE PersonID = " + db.DataProvider.Convert("id", ConvertType.NameToQueryParameter),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
140 db.Parameter("id", 1))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
141 .ExecuteObject(typeof(Person));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
142
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
143 TypeAccessor.WriteConsole(p);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
144 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
145 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
146
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
147 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
148 public void ExecuteObject2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
149 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
150 using (DbManager db = new DbManager())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
151 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
152 DataTypeTest dt = (DataTypeTest)db
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
153 .SetCommand("SELECT * FROM DataTypeTest WHERE DataTypeID = " + db.DataProvider.Convert("id", ConvertType.NameToQueryParameter),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
154 db.Parameter("id", 2))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
155 .ExecuteObject(typeof(DataTypeTest));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
156
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
157 TypeAccessor.WriteConsole(dt);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
158 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
159 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
160
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
161 #if !ORACLE
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
162 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
163 #endif
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
164 public void ExecuteObject2Sql()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
165 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
166 using (DbManager db = new DbManager())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
167 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
168 DataTypeSqlTest dt = (DataTypeSqlTest)db
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
169 .SetCommand("SELECT * FROM DataTypeTest WHERE DataTypeID = " + db.DataProvider.Convert("id", ConvertType.NameToQueryParameter),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
170 db.Parameter("id", 2))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
171 .ExecuteObject(typeof(DataTypeSqlTest));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
172
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
173 TypeAccessor.WriteConsole(dt);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
174 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
175 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
176
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
177 #if MSSQL
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
178 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
179 #endif
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
180 public void NativeConnection()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
181 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
182 string connectionString = DbManager.GetConnectionString(null);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
183
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
184 using (DbManager db = new DbManager(new SqlConnection(connectionString)))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
185 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
186 db
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
187 .SetSpCommand ("Person_SelectByName",
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
188 db.Parameter("@firstName", "John"),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
189 db.Parameter("@lastName", "Pupkin"))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
190 .ExecuteScalar();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
191 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
192 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
193
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
194 public class OutRefTest
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
195 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
196 public int ID = 5;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
197 public int outputID;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
198 public int inputOutputID = 10;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
199 public string str = "5";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
200 public string outputStr;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
201 public string inputOutputStr = "10";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
202 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
203
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
204 #if !ACCESS && !SQLCE && !SQLITE
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
205 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
206 public void MapOutput()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
207 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
208 OutRefTest o = new OutRefTest();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
209
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
210 using (DbManager db = new DbManager())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
211 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
212 db
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
213 .SetSpCommand("OutRefTest", db.CreateParameters(o,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
214 new string[] { "outputID", "outputStr" },
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
215 new string[] { "inputOutputID", "inputOutputStr" },
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
216 null))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
217 .ExecuteNonQuery(o);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
218 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
219
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
220 Assert.AreEqual(5, o.outputID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
221 Assert.AreEqual(15, o.inputOutputID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
222 Assert.AreEqual("5", o.outputStr);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
223 Assert.AreEqual("510", o.inputOutputStr);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
224 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
225
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
226 public class ReturnParameter
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
227 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
228 public int Value;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
229 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
230
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
231 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
232 public void MapReturnValue()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
233 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
234 ReturnParameter e = new ReturnParameter();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
235
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
236 using (DbManager db = new DbManager())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
237 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
238 db
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
239 .SetSpCommand("Scalar_ReturnParameter")
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
240 .ExecuteNonQuery("Value", e);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
241 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
242
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
243 Assert.AreEqual(12345, e.Value);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
244 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
245
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
246 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
247 public void InsertAndMapBack()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
248 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
249 Person e = new Person();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
250 e.FirstName = "Crazy";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
251 e.LastName = "Frog";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
252 e.Gender = Gender.Other;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
253
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
254 using (DbManager db = new DbManager())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
255 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
256 db
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
257 .SetSpCommand("Person_Insert", db.CreateParameters(e, new string[] { "PersonID" }, null, null))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
258 .ExecuteObject(e);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
259
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
260 Assert.IsTrue(e.ID > 0);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
261
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
262 // Cleanup.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
263 //
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
264 db
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
265 .SetSpCommand("Person_Delete", db.CreateParameters(e))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
266 .ExecuteNonQuery();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
267 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
268 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
269
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
270 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
271 public void MapDataRow()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
272 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
273 DataTable dataTable = new DataTable();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
274 dataTable.Columns.Add("ID", typeof(int));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
275 dataTable.Columns.Add("outputID", typeof(int));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
276 dataTable.Columns.Add("inputOutputID", typeof(int));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
277 dataTable.Columns.Add("str", typeof(string));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
278 dataTable.Columns.Add("outputStr", typeof(string));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
279 dataTable.Columns.Add("inputOutputStr", typeof(string));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
280
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
281 DataRow dataRow = dataTable.Rows.Add(new object[]{5, 0, 10, "5", null, "10"});
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
282
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
283 using (DbManager db = new DbManager())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
284 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
285 db
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
286 .SetSpCommand("OutRefTest", db.CreateParameters(dataRow,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
287 new string[] { "outputID", "outputStr" },
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
288 new string[] { "inputOutputID", "inputOutputStr" },
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
289 null))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
290 .ExecuteNonQuery(dataRow);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
291 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
292
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
293 Assert.AreEqual(5, dataRow["outputID"]);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
294 Assert.AreEqual(15, dataRow["inputOutputID"]);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
295 Assert.AreEqual("5", dataRow["outputStr"]);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
296 Assert.AreEqual("510", dataRow["inputOutputStr"]);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
297 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
298 #endif
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
299
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
300 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
301 public void CreateParametersTest()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
302 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
303 using (var db = new DbManager())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
304 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
305 var dt = new DataTypeTest
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
306 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
307 ID = 12345,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
308 Binary_ = new byte[2] {1, 2},
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
309 #if !ORACLE
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
310 Boolean_ = true,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
311 Guid_ = Guid.Empty,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
312 #endif
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
313 Byte_ = 250,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
314 Bytes_ = new byte[] { 2, 1 },
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
315 DateTime_ = DateTime.Now,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
316 Decimal_ = 9876543210.0m,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
317 Double_ = 12345.67890,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
318 Int16_ = 12345,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
319 Int32_ = 1234567890,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
320 Int64_ = 1234567890123456789,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
321 Money_ = 99876543210.0m,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
322 Single_ = 1234.0f,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
323 String_ = "Crazy Frog",
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
324
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
325 Char_ = 'F',
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
326 SByte_ = 123,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
327 //UInt16_ = 65432,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
328 //UInt32_ = 4000000000,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
329 //UInt64_ = 12345678901234567890,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
330 #if !SQLCE
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
331 Stream_ = new MemoryStream(5),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
332 Xml_ = new XmlTextReader(new StringReader("<xml/>")),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
333 XmlDoc_ = new XmlDocument(),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
334 #endif
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
335 };
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
336
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
337 dt.XmlDoc_.LoadXml("<xmldoc/>");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
338
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
339 var parameters = db.CreateParameters(dt);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
340
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
341 Assert.IsNotNull(parameters);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
342 Assert.AreEqual(ObjectMapper<DataTypeTest>.Instance.Count, parameters.Length);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
343
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
344 foreach (MemberMapper mm in ObjectMapper<DataTypeTest>.Instance)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
345 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
346 var paramName = (string)db.DataProvider.Convert(mm.Name, db.GetConvertTypeToParameter());
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
347 var p = parameters.First(obj => obj.ParameterName == paramName);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
348
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
349 Assert.IsNotNull(p);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
350 Assert.AreEqual(mm.GetValue(dt), p.Value);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
351 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
352 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
353 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
354
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
355 #if!ORACLE
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
356 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
357 #endif
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
358 public void CreateParametersSqlTest()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
359 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
360 using (DbManager db = new DbManager())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
361 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
362 DataTypeSqlTest dt = new DataTypeSqlTest();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
363
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
364 dt.ID = 12345;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
365 dt.Binary_ = new SqlBinary(new byte[2] {1, 2});
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
366 dt.Boolean_ = new SqlBoolean(1);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
367 dt.Byte_ = new SqlByte(250);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
368 dt.DateTime_ = new SqlDateTime(DateTime.Now);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
369 dt.Decimal_ = new SqlDecimal(9876543210.0m);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
370 dt.Double_ = new SqlDouble(12345.67890);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
371 dt.Guid_ = new SqlGuid(Guid.Empty);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
372 dt.Int16_ = new SqlInt16(12345);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
373 dt.Int32_ = new SqlInt32(1234567890);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
374 dt.Int64_ = new SqlInt64(1234567890123456789);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
375 dt.Money_ = new SqlMoney(99876543210.0m);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
376 dt.Single_ = new SqlSingle(1234.0f);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
377 dt.String_ = new SqlString("Crazy Frog");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
378
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
379 #if !SQLCE
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
380 dt.Bytes_ = new SqlBytes(new byte[2] {2, 1});
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
381 dt.Chars_ = new SqlChars(new char[2] {'B', 'L'});
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
382 dt.Xml_ = new SqlXml(new XmlTextReader(new StringReader("<xml/>")));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
383 #endif
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
384
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
385 var parameters = db.CreateParameters(dt);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
386
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
387 Assert.IsNotNull(parameters);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
388 Assert.AreEqual(ObjectMapper<DataTypeSqlTest>.Instance.Count, parameters.Length);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
389
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
390 foreach (MemberMapper mm in ObjectMapper<DataTypeSqlTest>.Instance)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
391 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
392 var pName = (string)db.DataProvider.Convert(mm.Name, db.GetConvertTypeToParameter());
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
393 var p = Array.Find(parameters, obj => obj.ParameterName == pName);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
394
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
395 Assert.IsNotNull(p);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
396 Assert.AreEqual(mm.GetValue(dt), p.Value);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
397 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
398 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
399 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
400
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
401 public struct DBInfo
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
402 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
403 public DateTime TimeValue;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
404 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
405
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
406 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
407 public void CreateParametersStructTest()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
408 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
409 var dbInfo = new DBInfo { TimeValue = DateTime.Now };
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
410
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
411 using (var db = new DbManager())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
412 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
413 var parameters = db.CreateParameters(dbInfo);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
414
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
415 Assert.IsNotNull(parameters);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
416 Assert.AreEqual(1, parameters.Length);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
417 Assert.AreEqual(dbInfo.TimeValue, parameters[0].Value);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
418
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
419 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
420 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
421
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
422 public class FirstPart
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
423 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
424 public string FirstName;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
425 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
426
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
427 public class SecondPart
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
428 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
429 public string LastName;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
430 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
431
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
432 #if !SQLITE && !SQLCE
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
433 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
434 #endif
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
435 public void CreateManyParametersTest()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
436 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
437 FirstPart f = new FirstPart();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
438 SecondPart s = new SecondPart();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
439
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
440 f.FirstName = "John";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
441 s.LastName = "Pupkin";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
442
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
443 using (DbManager db = new DbManager())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
444 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
445 Person p = (Person)db
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
446 .SetSpCommand ("Person_SelectByName", db.CreateParameters(f), db.CreateParameters(s))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
447 .ExecuteObject(typeof(Person));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
448
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
449 Assert.IsNotNull(p);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
450 Assert.AreEqual(f.FirstName, p.FirstName);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
451 Assert.AreEqual(s.LastName, p.LastName);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
452 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
453 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
454
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
455 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
456 public void EnumExecuteScalarTest1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
457 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
458 using (var dbm = new DbManager())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
459 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
460 var gender = dbm.SetCommand(CommandType.Text, "select 'M'")
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
461 .ExecuteScalar<Gender>();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
462
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
463 Assert.That(gender, Is.EqualTo(Gender.Male));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
464 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
465 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
466
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
467 public enum ABType
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
468 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
469 Error = -1,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
470 A = 0,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
471 B,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
472 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
473
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
474 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
475 public void EnumExecuteScalarTest2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
476 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
477 using (var db = new DbManager())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
478 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
479 var type = db.SetCommand("select 1 where 1 = 2").ExecuteScalar<ABType>();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
480 Assert.That(type, Is.EqualTo(ABType.A));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
481 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
482 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
483 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
484 }