annotate UnitTests/CS/DataAccess/DictionaryTest.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.Collections.Generic;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
4
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
5 using NUnit.Framework;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
6
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
7 using BLToolkit.Common;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
8 using BLToolkit.DataAccess;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
9 using BLToolkit.TypeBuilder;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
10 using BLToolkit.Mapping;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
11
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
12 namespace DataAccess
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
13 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
14 [TestFixture]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
15 public class DictionaryTest
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
16 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
17 public class Person
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
18 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
19 [MapField("PersonID"), PrimaryKey]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
20 public int ID;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
21 public string LastName;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
22 public string FirstName;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
23 public string MiddleName;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
24 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
25
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
26 public class Derived : Person
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
27 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
28 [MapIgnore]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
29 public string Ignore;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
30 public DateTime Date;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
31 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
32
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
33 // Same as Person, but does not have any primary keys.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
34 public class PersonNoPK
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
35 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
36 [MapField("PersonID")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
37 public int ID;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
38 public string LastName;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
39 public string FirstName;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
40 public string MiddleName;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
41 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
42
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
43 // Same as Person, but has a number of primary keys.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
44 public class PersonMultiPK
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
45 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
46 [MapField("PersonID"), PrimaryKey]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
47 public int ID;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
48 [PrimaryKey(22)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
49 public string LastName;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
50 public string FirstName;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
51 public string MiddleName;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
52 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
53
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
54 [ObjectType(typeof(Person))]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
55 public abstract class TestAccessor : DataAccessor
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
56 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
57 private const string TEST_QUERY = "SELECT * FROM Person WHERE PersonID < 3";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
58
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
59 [SqlQuery("SELECT * FROM Person")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
60 [Index("ID")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
61 public abstract Hashtable SelectAll1();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
62
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
63 [NoInstance]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
64 public abstract Hashtable Persons
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
65 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
66 [SqlQuery("SELECT * FROM Person")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
67 [Index("ID")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
68 get;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
69 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
70
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
71 [SqlQuery(TEST_QUERY)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
72 [Index("@PersonID", "LastName")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
73 public abstract Hashtable SelectAll2();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
74
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
75 [SqlQuery(TEST_QUERY)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
76 [Index("@PersonID")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
77 [ScalarFieldName("FirstName")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
78 [ObjectType(typeof(string))]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
79 public abstract Hashtable SelectAll3();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
80
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
81 [SqlQuery(TEST_QUERY)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
82 [Index("PersonID", "LastName")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
83 [ScalarFieldName("FirstName")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
84 [ObjectType(typeof(string))]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
85 public abstract Hashtable SelectAll4();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
86
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
87 [SqlQuery(TEST_QUERY)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
88 [Index("PersonID", "LastName")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
89 [ScalarFieldName(1)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
90 [ObjectType(typeof(string))]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
91 public abstract Hashtable SelectAll5();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
92
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
93 [SqlQuery(TEST_QUERY)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
94 [Index("PersonID", "LastName")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
95 [ScalarFieldName(1)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
96 [ObjectType(typeof(string))]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
97 public abstract IDictionary SelectAllAsIDictionary();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
98
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
99 // Primary Key(s) => scalar filed. This will fail, since
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
100 // we can not figure out both key type and scalar object type.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
101 // Note that version with generics works just fine.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
102 //
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
103 [SqlQuery(TEST_QUERY)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
104 [ScalarFieldName("FirstName"), ObjectType(typeof(string))]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
105 public abstract Hashtable ScalarDictionaryByPK();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
106
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
107 [SqlQuery(TEST_QUERY)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
108 [ObjectType(typeof(PersonNoPK))]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
109 public abstract Hashtable Keyless();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
110
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
111 [SqlQuery(TEST_QUERY)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
112 [ObjectType(typeof(PersonMultiPK))]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
113 public abstract Hashtable MultiPK();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
114
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
115 [SqlQuery(TEST_QUERY)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
116 [ObjectType(typeof(PersonMultiPK))]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
117 public abstract void MultiPKReturnVoid([Destination] Hashtable dictionary);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
118
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
119 [SqlQuery(TEST_QUERY)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
120 public abstract Hashtable DictionaryByPK();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
121
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
122 [SqlQuery(TEST_QUERY)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
123 [Index("@PersonID")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
124 public abstract Hashtable DictionaryByIndex();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
125
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
126 [SqlQuery(TEST_QUERY)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
127 [Index(0, 1)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
128 public abstract Hashtable DictionaryByMapIndex();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
129
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
130 [SqlQuery(TEST_QUERY)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
131 [Index(0, 1)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
132 public abstract IDictionary DictionaryByMapIndexWithDestination([Destination] Hashtable dictionary);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
133
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
134 [SqlQuery(TEST_QUERY)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
135 [Index(0), ScalarFieldName(1)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
136 public abstract void GenericsScalarDictionaryByIndexReturnVoid1([Destination] IDictionary<int, string> dictionary);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
137
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
138 [SqlQuery("SELECT * FROM Person")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
139 [Index(new string[] { "ID" })]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
140 public abstract Dictionary<int, Person> SelectAllT1();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
141
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
142 [SqlQuery("SELECT * FROM Person")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
143 [Index("@PersonID", "LastName")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
144 public abstract Dictionary<CompoundValue, Person> SelectAllT2();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
145
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
146 [SqlQuery("SELECT * FROM Person")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
147 [Index("@PersonID")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
148 [ScalarFieldName("FirstName")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
149 public abstract Dictionary<int, string> SelectAllT3();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
150
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
151 [SqlQuery("SELECT * FROM Person")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
152 [Index("PersonID", "LastName")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
153 [ScalarFieldName("FirstName")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
154 public abstract Dictionary<CompoundValue, string> SelectAllT4();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
155
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
156 [SqlQuery("SELECT * FROM Person")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
157 [Index("PersonID", "LastName")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
158 [ScalarFieldName(1)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
159 public abstract Dictionary<CompoundValue, string> SelectAllT5();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
160
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
161 [SqlQuery("SELECT * FROM Person")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
162 [Index("PersonID", "LastName")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
163 [ScalarFieldName(1)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
164 public abstract IDictionary<CompoundValue, string> SelectAllAsIDictionaryT();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
165
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
166 [SqlQuery(TEST_QUERY)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
167 [ScalarFieldName("FirstName")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
168 public abstract Dictionary<object, string> GenericsScalarDictionaryByPK();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
169
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
170 [SqlQuery(TEST_QUERY)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
171 [ScalarFieldName(1)] // Index from Db table Person, not type Person!
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
172 public abstract Dictionary<int, string> GenericsScalarDictionaryByPK2();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
173
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
174 [SqlQuery(TEST_QUERY)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
175 [Index(0), ScalarFieldName(1)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
176 public abstract Dictionary<int, string> GenericsScalarDictionaryByIndex();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
177
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
178 [SqlQuery(TEST_QUERY)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
179 [Index(0), ScalarFieldName(1)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
180 public abstract void GenericsScalarDictionaryByIndexReturnVoid([Destination] IDictionary<int, string> dictionary);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
181
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
182 [SqlQuery(TEST_QUERY)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
183 [Index(0, 1), ScalarFieldName(1)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
184 public abstract Dictionary<CompoundValue, string> GenericsScalarDictionaryByMapIndex();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
185
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
186 [SqlQuery(TEST_QUERY)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
187 [Index(0)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
188 public abstract Dictionary<int, PersonNoPK> GenericsScalarDictionaryByPKWithCustomType();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
189
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
190 [SqlQuery(TEST_QUERY)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
191 [ObjectType(typeof(Person))]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
192 public abstract Dictionary<int, object> GenericsScalarDictionaryByPKWithObjectType();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
193
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
194 #if SQLITE || SQLCE
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
195 [SqlQuery("SELECT * FROM Person")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
196 #else
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
197 [ActionName("SelectAll")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
198 #endif
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
199 [Index("ID")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
200 public abstract Dictionary<uint, Person> SelectAllT7();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
201
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
202 #if SQLITE || SQLCE
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
203 [SqlQuery("SELECT * FROM Person")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
204 #else
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
205 [ActionName("SelectAll")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
206 #endif
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
207 public abstract Dictionary<long, Person> SelectAllT8();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
208
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
209 #if SQLITE || SQLCE
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
210 [SqlQuery("SELECT * FROM Person")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
211 #else
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
212 [SprocName("Person_SelectAll")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
213 #endif
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
214 public abstract Dictionary<long, Derived> SelectAllDerived();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
215
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
216 #if SQLITE || SQLCE
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
217 [SqlQuery("SELECT * FROM Person")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
218 #else
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
219 [SprocName("Person_SelectAll")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
220 #endif
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
221 public abstract Dictionary<CompoundValue, PersonMultiPK> SelectAllT9();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
222 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
223
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
224 private TestAccessor _da;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
225
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
226 #if ORACLE
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
227 private const decimal _id = 1m;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
228 #elif SQLITE
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
229 private const long _id = 1;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
230 #else
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
231 private const int _id = 1;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
232 #endif
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
233
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
234 public DictionaryTest()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
235 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
236 _da = (TestAccessor)DataAccessor.CreateInstance(typeof(TestAccessor));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
237 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
238
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
239 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
240 public void Test()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
241 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
242 Hashtable dic1 = _da.SelectAll1();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
243 Assert.AreEqual("John", ((Person)dic1[1]).FirstName);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
244
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
245 Hashtable dic2 = _da.SelectAll2();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
246 Assert.AreEqual("John", ((Person)dic2[new CompoundValue(_id, "Pupkin")]).FirstName);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
247
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
248 Hashtable dic3 = _da.SelectAll3();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
249 Assert.AreEqual("John", dic3[_id]);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
250
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
251 Hashtable dic4 = _da.SelectAll4();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
252 Assert.AreEqual("John", dic4[new CompoundValue(_id, "Pupkin")]);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
253
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
254 Hashtable dic5 = _da.SelectAll5();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
255 Assert.AreEqual("John", dic5[new CompoundValue(_id, "Pupkin")]);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
256
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
257 IDictionary dic6 = _da.SelectAllAsIDictionary();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
258 Assert.AreEqual("John", dic6[new CompoundValue(_id, "Pupkin")]);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
259
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
260 Dictionary<int, Person> dict1 = _da.SelectAllT1();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
261 Assert.AreEqual("John", dict1[1].FirstName);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
262
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
263 Dictionary<CompoundValue, Person> dict2 = _da.SelectAllT2();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
264 Assert.AreEqual("John", dict2[new CompoundValue(_id, "Pupkin")].FirstName);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
265
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
266 Dictionary<int, string> dict3 = _da.SelectAllT3();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
267 Assert.AreEqual("John", dict3[1]);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
268
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
269 Dictionary<CompoundValue, string> dict4 = _da.SelectAllT4();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
270 Assert.AreEqual("John", dict4[new CompoundValue(_id, "Pupkin")]);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
271
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
272 Dictionary<CompoundValue, string> dict5 = _da.SelectAllT5();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
273 Assert.AreEqual("John", dict5[new CompoundValue(_id, "Pupkin")]);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
274
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
275 IDictionary<CompoundValue, string> dict6 = _da.SelectAllAsIDictionaryT();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
276 Assert.AreEqual("John", dict6[new CompoundValue(_id, "Pupkin")]);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
277 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
278
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
279 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
280 public void AbstractGetterTest()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
281 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
282 Hashtable dic = _da.Persons;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
283 Assert.AreEqual("John", ((Person)dic[1]).FirstName);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
284 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
285
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
286 [Test, ExpectedException(typeof(DataAccessException))]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
287 public void KeylessTest()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
288 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
289 TestAccessor da = (TestAccessor)DataAccessor.CreateInstance(typeof(TestAccessor));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
290
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
291 // Exception here:
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
292 // Index is not defined for the method 'TestAccessor.Keyless'
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
293 da.Keyless();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
294 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
295
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
296 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
297 public void DictionaryByPKTest()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
298 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
299 TestAccessor da = (TestAccessor)DataAccessor.CreateInstance(typeof(TestAccessor));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
300
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
301 Hashtable persons = da.DictionaryByPK();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
302
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
303 Assert.IsNotNull(persons);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
304 Assert.IsTrue(persons.Count > 0);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
305 Assert.IsNull(persons[-1]);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
306
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
307 Person actualValue = (Person)persons[1];
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
308 Assert.IsNotNull(actualValue);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
309 Assert.AreEqual("John", actualValue.FirstName);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
310 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
311
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
312 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
313 public void DictionaryByIndexTest()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
314 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
315 TestAccessor da = (TestAccessor)DataAccessor.CreateInstance(typeof(TestAccessor));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
316
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
317 Hashtable persons = da.DictionaryByIndex();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
318
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
319 Assert.IsNotNull(persons);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
320 Assert.IsTrue(persons.Count > 0);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
321 Assert.IsNull(persons[-1]);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
322
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
323 Person actualValue = (Person)persons[_id];
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
324 Assert.IsNotNull(actualValue);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
325 Assert.AreEqual("John", actualValue.FirstName);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
326 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
327
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
328 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
329 public void DictionaryByMapIndexTest()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
330 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
331 TestAccessor da = (TestAccessor)DataAccessor.CreateInstance(typeof(TestAccessor));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
332
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
333 Hashtable persons = da.DictionaryByMapIndex();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
334
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
335 Assert.IsNotNull(persons);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
336 Assert.IsTrue(persons.Count > 0);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
337 Assert.IsNull(persons[-1]);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
338
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
339 Person actualValue = (Person)persons[new CompoundValue(1, "Pupkin")];
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
340 Assert.IsNotNull(actualValue);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
341 Assert.AreEqual("John", actualValue.FirstName);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
342 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
343
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
344 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
345 public void DictionaryByMapIndexTestWithDestination()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
346 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
347 TestAccessor da = (TestAccessor)DataAccessor.CreateInstance(typeof(TestAccessor));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
348
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
349 IDictionary persons = da.DictionaryByMapIndexWithDestination(new Hashtable());
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
350
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
351 Assert.IsNotNull(persons);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
352 Assert.IsTrue(persons.Count > 0);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
353 Assert.IsNull(persons[-1]);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
354
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
355 Person actualValue = (Person)persons[new CompoundValue(1, "Pupkin")];
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
356 Assert.IsNotNull(actualValue);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
357 Assert.AreEqual("John", actualValue.FirstName);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
358 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
359
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
360 [Test, ExpectedException(typeof(DataAccessException))]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
361 public void ScalarDictionaryByPKTest()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
362 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
363 TestAccessor da = (TestAccessor)DataAccessor.CreateInstance(typeof(TestAccessor));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
364
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
365 // Exception here:
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
366 // Index is not defined for the method 'TestAccessor.ScalarDictionaryByPK'
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
367 da.ScalarDictionaryByPK();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
368 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
369
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
370 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
371 public void MultiPKTest()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
372 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
373 TestAccessor da = (TestAccessor)DataAccessor.CreateInstance(typeof(TestAccessor));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
374
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
375 Hashtable persons = da.MultiPK();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
376
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
377 Assert.IsNotNull(persons);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
378 Assert.IsTrue(persons.Count > 0);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
379 Assert.IsNull(persons[new CompoundValue(-1, "NoSuchPerson")]);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
380
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
381 PersonMultiPK actualValue = (PersonMultiPK)persons[new CompoundValue(1, "Pupkin")];
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
382 Assert.IsNotNull(actualValue);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
383 Assert.AreEqual("John", actualValue.FirstName);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
384 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
385
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
386 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
387 public void MultiPKTestReturnVoid()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
388 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
389 TestAccessor da = (TestAccessor)DataAccessor.CreateInstance(typeof(TestAccessor));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
390
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
391 Hashtable persons = new Hashtable();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
392 da.MultiPKReturnVoid(persons);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
393
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
394 Assert.IsNotNull(persons);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
395 Assert.IsTrue(persons.Count > 0);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
396 Assert.IsNull(persons[new CompoundValue(-1, "NoSuchPerson")]);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
397
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
398 PersonMultiPK actualValue = (PersonMultiPK)persons[new CompoundValue(1, "Pupkin")];
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
399 Assert.IsNotNull(actualValue);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
400 Assert.AreEqual("John", actualValue.FirstName);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
401 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
402
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
403 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
404 public void GenericsScalarDictionaryByPKTest()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
405 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
406 TestAccessor da = DataAccessor.CreateInstance<TestAccessor>();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
407
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
408 Dictionary<object, string> persons = da.GenericsScalarDictionaryByPK();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
409
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
410 Assert.IsNotNull(persons);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
411 Assert.IsTrue(persons.Count > 0);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
412
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
413 string actualValue = persons[_id];
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
414 Assert.IsNotNull(actualValue);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
415 Assert.AreEqual("John", actualValue);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
416 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
417
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
418 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
419 public void GenericsScalarDictionaryByPKTest2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
420 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
421 TestAccessor da = DataAccessor.CreateInstance<TestAccessor>();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
422
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
423 Dictionary<int, string> persons = da.GenericsScalarDictionaryByPK2();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
424
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
425 Assert.IsNotNull(persons);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
426 Assert.IsTrue(persons.Count > 0);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
427
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
428 string actualValue = persons[1];
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
429 Assert.IsNotNull(actualValue);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
430 Assert.AreEqual("John", actualValue);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
431 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
432
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
433 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
434 public void GenericsScalarDictionaryByIndexTest()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
435 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
436 TestAccessor da = DataAccessor.CreateInstance<TestAccessor>();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
437
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
438 Dictionary<int, string> persons = da.GenericsScalarDictionaryByIndex();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
439
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
440 Assert.IsNotNull(persons);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
441 Assert.IsTrue(persons.Count > 0);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
442
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
443 string actualValue = persons[1];
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
444 Assert.IsNotNull(actualValue);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
445 Assert.AreEqual("John", actualValue);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
446 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
447
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
448 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
449 public void GenericsScalarDictionaryByIndexReturnVoidTest()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
450 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
451 TestAccessor da = DataAccessor.CreateInstance<TestAccessor>();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
452
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
453 IDictionary<int, string> persons = new Dictionary<int, string>();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
454 da.GenericsScalarDictionaryByIndexReturnVoid(persons);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
455
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
456 Assert.IsNotNull(persons);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
457 Assert.IsTrue(persons.Count > 0);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
458
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
459 string actualValue = persons[1];
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
460 Assert.IsNotNull(actualValue);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
461 Assert.AreEqual("John", actualValue);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
462 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
463
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
464 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
465 public void GenericsScalarDictionaryByMapIndexTest()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
466 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
467 TestAccessor da = DataAccessor.CreateInstance<TestAccessor>();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
468 Dictionary<CompoundValue, string> persons = da.GenericsScalarDictionaryByMapIndex();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
469
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
470 Assert.IsNotNull(persons);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
471 Assert.IsTrue(persons.Count > 0);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
472
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
473 string actualValue = persons[new CompoundValue(_id, "John")];
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
474 Assert.IsNotNull(actualValue);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
475 Assert.AreEqual("John", actualValue);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
476 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
477
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
478 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
479 public void GenericsScalarDictionaryByPKWithCustomTypeTest()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
480 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
481 TestAccessor da = DataAccessor.CreateInstance<TestAccessor>();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
482 Dictionary<int, PersonNoPK> persons = da.GenericsScalarDictionaryByPKWithCustomType();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
483
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
484 Assert.IsNotNull(persons);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
485 Assert.IsTrue(persons.Count > 0);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
486
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
487 PersonNoPK actualValue = persons[1];
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
488 Assert.IsNotNull(actualValue);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
489 Assert.AreEqual("John", actualValue.FirstName);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
490 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
491
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
492 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
493 public void GenericsScalarDictionaryByPKWithObjectTypeTest()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
494 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
495 TestAccessor da = DataAccessor.CreateInstance<TestAccessor>();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
496 Dictionary<int, object> persons = da.GenericsScalarDictionaryByPKWithObjectType();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
497
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
498 Assert.IsNotNull(persons);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
499 Assert.IsTrue(persons.Count > 0);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
500
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
501 Person actualValue = (Person) persons[1];
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
502 Assert.IsNotNull(actualValue);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
503 Assert.AreEqual("John", actualValue.FirstName);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
504 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
505
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
506 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
507 public void GenericsDictionaryMismatchKeyTypeTest()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
508 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
509 TestAccessor da = DataAccessor.CreateInstance<TestAccessor>();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
510 Dictionary<uint, Person> persons = da.SelectAllT7();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
511
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
512 Assert.IsNotNull(persons);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
513 Assert.IsTrue(persons.Count > 0);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
514
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
515 Person actualValue = persons[1];
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
516 Assert.IsNotNull(actualValue);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
517 Assert.AreEqual("John", actualValue.FirstName);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
518 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
519
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
520 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
521 public void GenericsDictionaryMismatchKeyTypeTest2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
522 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
523 TestAccessor da = DataAccessor.CreateInstance<TestAccessor>();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
524 Dictionary<long, Person> persons = da.SelectAllT8();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
525
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
526 Assert.IsNotNull(persons);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
527 Assert.IsTrue(persons.Count > 0);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
528
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
529 Person actualValue = persons[1];
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
530 Assert.IsNotNull(actualValue);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
531 Assert.AreEqual("John", actualValue.FirstName);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
532 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
533
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
534 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
535 public void GenericsDictionaryMismatchKeyTypeWithHierarchyTest()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
536 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
537 TestAccessor da = DataAccessor.CreateInstance<TestAccessor>();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
538 Dictionary<long, Derived> persons = da.SelectAllDerived();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
539
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
540 Assert.IsNotNull(persons);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
541 Assert.IsTrue(persons.Count > 0);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
542
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
543 Person actualValue = persons[1];
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
544 Assert.IsNotNull(actualValue);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
545 Assert.AreEqual("John", actualValue.FirstName);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
546 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
547
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
548 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
549 public void GenericsDictionaryMismatchKeyTypeCompoundValueTest()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
550 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
551 TestAccessor da = DataAccessor.CreateInstance<TestAccessor>();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
552 Dictionary<CompoundValue, PersonMultiPK> persons = da.SelectAllT9();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
553
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
554 Assert.IsNotNull(persons);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
555 Assert.IsTrue(persons.Count > 0);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
556
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
557 PersonMultiPK actualValue = persons[new CompoundValue(1, "Pupkin")];
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
558 Assert.IsNotNull(actualValue);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
559 Assert.AreEqual("John", actualValue.FirstName);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
560 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
561 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
562 }