annotate UnitTests/Linq/ProviderSpecific/PostgreSQL.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 using System.Linq;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
4 using BLToolkit.Data.Linq;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
5 using BLToolkit.Data.DataProvider;
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 using NUnit.Framework;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
10
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
11 using UnitTests.Linq.Interface.Model;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
12
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
13 namespace Data.Linq.ProviderSpecific
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
14 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
15 [TestFixture, Category("PostgreSQL")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
16 public class PostgreSQL : TestBase
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
17 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
18 [TableName(Owner="public", Name="entity")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
19 public class Entity
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
20 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
21 [MapField("the_name") ] public string TheName { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
22 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
23
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
24 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
25 public void SqlTest1([IncludeDataContexts(ProviderName.PostgreSQL)] string context)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
26 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
27 using (var db = new TestDbManager(context))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
28 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
29 db.BeginTransaction();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
30
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
31 db
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
32 .SetSpCommand("add_if_not_exists", db.Parameter("p_name", "one"))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
33 .ExecuteNonQuery();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
34
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
35 db.Insert(new Entity { TheName = "two" });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
36 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
37 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
38
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
39 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
40 public void SequenceInsert1([IncludeDataContexts(ProviderName.PostgreSQL)] string context)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
41 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
42 using (var db = new TestDbManager(context))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
43 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
44 db.GetTable<PostgreSQLSpecific.SequenceTest1>().Where(_ => _.Value == "SeqValue").Delete();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
45 db.Insert(new PostgreSQLSpecific.SequenceTest1 { Value = "SeqValue" });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
46
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
47 var id = db.GetTable<PostgreSQLSpecific.SequenceTest1>().Single(_ => _.Value == "SeqValue").ID;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
48
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
49 db.GetTable<PostgreSQLSpecific.SequenceTest1>().Where(_ => _.ID == id).Delete();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
50
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
51 Assert.AreEqual(0, db.GetTable<PostgreSQLSpecific.SequenceTest1>().Count(_ => _.Value == "SeqValue"));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
52 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
53 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
54
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
55 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
56 public void SequenceInsert2([IncludeDataContexts(ProviderName.PostgreSQL)] string context)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
57 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
58 using (var db = new TestDbManager(context))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
59 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
60 db.GetTable<PostgreSQLSpecific.SequenceTest2>().Where(_ => _.Value == "SeqValue").Delete();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
61 db.Insert(new PostgreSQLSpecific.SequenceTest2 { Value = "SeqValue" });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
62
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
63 var id = db.GetTable<PostgreSQLSpecific.SequenceTest2>().Single(_ => _.Value == "SeqValue").ID;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
64
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
65 db.GetTable<PostgreSQLSpecific.SequenceTest2>().Where(_ => _.ID == id).Delete();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
66
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
67 Assert.AreEqual(0, db.GetTable<PostgreSQLSpecific.SequenceTest2>().Count(_ => _.Value == "SeqValue"));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
68 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
69 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
70
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
71 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
72 public void SequenceInsert3([IncludeDataContexts(ProviderName.PostgreSQL)] string context)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
73 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
74 using (var db = new TestDbManager(context))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
75 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
76 db.GetTable<PostgreSQLSpecific.SequenceTest3>().Where(_ => _.Value == "SeqValue").Delete();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
77 db.Insert(new PostgreSQLSpecific.SequenceTest3 { Value = "SeqValue" });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
78
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
79 var id = db.GetTable<PostgreSQLSpecific.SequenceTest3>().Single(_ => _.Value == "SeqValue").ID;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
80
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
81 db.GetTable<PostgreSQLSpecific.SequenceTest3>().Where(_ => _.ID == id).Delete();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
82
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
83 Assert.AreEqual(0, db.GetTable<PostgreSQLSpecific.SequenceTest3>().Count(_ => _.Value == "SeqValue"));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
84 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
85 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
86
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
87 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
88 public void SequenceInsertWithIdentity1([IncludeDataContexts(ProviderName.PostgreSQL)] string context)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
89 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
90 using (var db = new TestDbManager(context))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
91 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
92 db.GetTable<PostgreSQLSpecific.SequenceTest1>().Where(_ => _.Value == "SeqValue").Delete();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
93
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
94 var id1 = Convert.ToInt32(db.InsertWithIdentity(new PostgreSQLSpecific.SequenceTest1 { Value = "SeqValue" }));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
95 var id2 = db.GetTable<PostgreSQLSpecific.SequenceTest1>().Single(_ => _.Value == "SeqValue").ID;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
96
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
97 Assert.AreEqual(id1, id2);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
98
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
99 db.GetTable<PostgreSQLSpecific.SequenceTest1>().Where(_ => _.ID == id1).Delete();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
100
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
101 Assert.AreEqual(0, db.GetTable<PostgreSQLSpecific.SequenceTest1>().Count(_ => _.Value == "SeqValue"));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
102 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
103 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
104
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
105 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
106 public void SequenceInsertWithIdentity2([IncludeDataContexts(ProviderName.PostgreSQL)] string context)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
107 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
108 using (var db = new TestDbManager(context))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
109 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
110 db.GetTable<PostgreSQLSpecific.SequenceTest2>().Where(_ => _.Value == "SeqValue").Delete();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
111
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
112 var id1 = Convert.ToInt32(db.InsertWithIdentity(new PostgreSQLSpecific.SequenceTest2 { Value = "SeqValue" }));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
113 var id2 = db.GetTable<PostgreSQLSpecific.SequenceTest2>().Single(_ => _.Value == "SeqValue").ID;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
114
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
115 Assert.AreEqual(id1, id2);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
116
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
117 db.GetTable<PostgreSQLSpecific.SequenceTest2>().Where(_ => _.ID == id1).Delete();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
118
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
119 Assert.AreEqual(0, db.GetTable<PostgreSQLSpecific.SequenceTest2>().Count(_ => _.Value == "SeqValue"));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
120 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
121 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
122
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
123 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
124 public void SequenceInsertWithIdentity3([IncludeDataContexts(ProviderName.PostgreSQL)] string context)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
125 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
126 using (var db = new TestDbManager(context))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
127 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
128 db.GetTable<PostgreSQLSpecific.SequenceTest3>().Where(_ => _.Value == "SeqValue").Delete();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
129
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
130 var id1 = Convert.ToInt32(db.InsertWithIdentity(new PostgreSQLSpecific.SequenceTest3 { Value = "SeqValue" }));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
131 var id2 = db.GetTable<PostgreSQLSpecific.SequenceTest3>().Single(_ => _.Value == "SeqValue").ID;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
132
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
133 Assert.AreEqual(id1, id2);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
134
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
135 db.GetTable<PostgreSQLSpecific.SequenceTest3>().Where(_ => _.ID == id1).Delete();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
136
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
137 Assert.AreEqual(0, db.GetTable<PostgreSQLSpecific.SequenceTest3>().Count(_ => _.Value == "SeqValue"));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
138 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
139 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
140 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
141 }