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