annotate UnitTests/CS/DataAccess/PrimaryKeyAttributeTest.cs @ 6:11b6da379593

Исправлена странная ошибка при использовании OfType<...>().Where(...)
author cin
date Mon, 05 Dec 2016 05:50:52 +0300
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
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3 using NUnit.Framework;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
4
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
5 using BLToolkit.Data;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
6 using BLToolkit.DataAccess;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
7 using BLToolkit.Mapping;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
8
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
9 namespace DataAccess
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
10 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
11 [TestFixture]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
12 public class PrimaryKeyAttributeTest : SqlQuery
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
13 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
14 public class Base
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
15 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
16 [PrimaryKey]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
17 public int ID;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
18 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
19
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
20 public class Derived : Base
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
21 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
22 public new int ID
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
23 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
24 get { return base.ID; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
25 set { base.ID = value; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
26 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
27 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
28
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
29
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
30 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
31 public void PrimaryKeyOverrideTest()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
32 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
33 using (DbManager db = new DbManager())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
34 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
35 MemberMapper[] personPrimaryKeys = GetKeyFieldList(db, typeof (Base));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
36 Assert.IsNotNull(personPrimaryKeys);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
37 Assert.AreEqual(1, personPrimaryKeys.Length);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
38 Assert.AreEqual("ID", personPrimaryKeys[0].MemberName);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
39
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
40 MemberMapper[] derivedPrimaryKeys = GetKeyFieldList(db, typeof (Derived));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
41 Assert.IsNotNull(derivedPrimaryKeys);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
42 Assert.AreEqual(0, derivedPrimaryKeys.Length);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
43 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
44 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
45
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
46 public class Base2
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
47 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
48 protected int _ID;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
49
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
50 [PrimaryKey]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
51 public virtual int ID
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
52 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
53 get { return _ID; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
54 set { _ID = value; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
55 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
56 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
57
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
58 public class Derived2 : Base2
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
59 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
60 public override int ID
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
61 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
62 get { return _ID; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
63 set { _ID = value; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
64 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
65 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
66
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
67 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
68 public void PrimaryKeyOverrideTest2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
69 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
70 using (DbManager db = new DbManager())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
71 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
72 MemberMapper[] personPrimaryKeys = GetKeyFieldList(db, typeof (Base2));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
73 Assert.IsNotNull(personPrimaryKeys);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
74 Assert.AreEqual(1, personPrimaryKeys.Length);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
75 Assert.AreEqual("ID", personPrimaryKeys[0].MemberName);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
76
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
77 MemberMapper[] derivedPrimaryKeys = GetKeyFieldList(db, typeof (Derived2));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
78 Assert.IsNotNull(derivedPrimaryKeys);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
79 Assert.AreEqual(0, derivedPrimaryKeys.Length);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
80 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
81 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
82
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
83 public class Base3
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
84 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
85 [PrimaryKey]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
86 public int ID;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
87 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
88
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
89 public class Derived3 : Base3
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
90 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
91 public new int ID;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
92 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
93
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
94 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
95 public void PrimaryKeyOverrideTest3()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
96 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
97 using (DbManager db = new DbManager())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
98 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
99 MemberMapper[] personPrimaryKeys = GetKeyFieldList(db, typeof (Base3));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
100 Assert.IsNotNull(personPrimaryKeys);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
101 Assert.AreEqual(1, personPrimaryKeys.Length);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
102 Assert.AreEqual("ID", personPrimaryKeys[0].MemberName);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
103
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
104 MemberMapper[] derivedPrimaryKeys = GetKeyFieldList(db, typeof (Derived3));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
105 Assert.IsNotNull(derivedPrimaryKeys);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
106 Assert.AreEqual(0, derivedPrimaryKeys.Length);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
107 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
108 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
109 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
110 }