annotate UnitTests/Linq/TestAK107.cs @ 4:f757da6161a1

!bug 100 + 2h fixed gregression
author cin
date Sun, 24 Aug 2014 17:57:42 +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
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3 using BLToolkit.Data.Linq;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
4 using BLToolkit.Data.Sql.SqlProvider;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
5 using BLToolkit.DataAccess;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
6 using BLToolkit.Mapping;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
7
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
8 using NUnit.Framework;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
9
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
10 namespace Data.Linq
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
11 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
12 [TestFixture, Category("Oracle")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
13 public class TestAK107 : TestBase
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
14 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
15 [TableName(Name = "t_test_user")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
16 public sealed class User
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
17 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
18 [PrimaryKey, Identity]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
19 [SequenceName("sq_test_user")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
20 [MapField("user_id")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
21 public long Id { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
22
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
23 [NotNull, NonUpdatable(OnInsert = false)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
24 [MapField("name")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
25 public string Name { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
26 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
27
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
28 [TableName(Name = "t_test_user_contract")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
29 public sealed class Contract
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
30 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
31 [PrimaryKey, Identity]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
32 [SequenceName("sq_test_user_contract")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
33 [MapField("user_contract_id")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
34 public long Id { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
35
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
36 [NotNull, NonUpdatable(OnInsert = false)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
37 [MapField("user_id")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
38 public long UserId { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
39
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
40 [Association(ThisKey = "UserId", OtherKey = "Id", CanBeNull = false)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
41 public User User { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
42
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
43 [NotNull, NonUpdatable(OnInsert = false)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
44 [MapField("contract_no")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
45 public long ContractNo { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
46
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
47 [NotNull]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
48 [MapField("name")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
49 public string Name { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
50 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
51
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
52 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
53 public void UserInsert([IncludeDataContexts("Oracle")] string context)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
54 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
55 using (var db = new TestDbManager(context))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
56 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
57 db.BeginTransaction();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
58 db.Insert(new User { Name = "user" });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
59 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
60 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
61
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
62 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
63 public void UserInsertWithIdentity([IncludeDataContexts("Oracle")] string context)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
64 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
65 using (var db = new TestDbManager(context))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
66 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
67 db.BeginTransaction();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
68 db.InsertWithIdentity(new User { Name = "user" });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
69 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
70 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
71
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
72 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
73 public void UserLinqInsert([IncludeDataContexts("Oracle")] string context)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
74 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
75 using (var db = new TestDbManager(context))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
76 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
77 db.BeginTransaction();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
78 db.GetTable<User>().Insert(() => new User { Name = "user" });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
79 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
80 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
81
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
82 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
83 public void UserLinqInsertWithIdentity([IncludeDataContexts("Oracle")] string context)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
84 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
85 using (var db = new TestDbManager(context))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
86 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
87 db.BeginTransaction();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
88 db.GetTable<User>().InsertWithIdentity(() => new User { Name = "user" });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
89 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
90 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
91
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
92 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
93 public void ContractInsert([IncludeDataContexts("Oracle")] string context)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
94 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
95 using (var db = new TestDbManager(context))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
96 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
97 db.BeginTransaction();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
98
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
99 var user = new User { Name = "user" };
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
100 user.Id = Convert.ToInt64(db.InsertWithIdentity(user));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
101
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
102 db.Insert(new Contract { UserId = user.Id, ContractNo = 1, Name = "contract1" });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
103 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
104 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
105
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
106 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
107 public void ContractInsertWithIdentity([IncludeDataContexts("Oracle")] string context)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
108 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
109 using (var db = new TestDbManager(context))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
110 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
111 db.BeginTransaction();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
112
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
113 var user = new User { Name = "user" };
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
114 user.Id = Convert.ToInt64(db.InsertWithIdentity(user));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
115
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
116 db.InsertWithIdentity(new Contract { UserId = user.Id, ContractNo = 1, Name = "contract" });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
117 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
118 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
119
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
120 [SqlExpression("sq_test_user_contract.nextval")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
121 static long ContractSequence { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
122
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
123 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
124 public void ContractLinqInsert([IncludeDataContexts("Oracle")] 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.BeginTransaction();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
129
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
130 var user = new User { Name = "user" };
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
131 user.Id = Convert.ToInt64(db.InsertWithIdentity(user));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
132
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
133 db.GetTable<Contract>().Insert(() => new Contract
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
134 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
135 Id = ContractSequence,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
136 UserId = user.Id,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
137 ContractNo = 1,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
138 Name = "contract"
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
139 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
140 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
141 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
142
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
143 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
144 public void ContractLinqInsertWithIdentity([IncludeDataContexts("Oracle")] string context)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
145 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
146 using (var db = new TestDbManager(context))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
147 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
148 db.BeginTransaction();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
149
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
150 var user = new User { Name = "user" };
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
151 user.Id = Convert.ToInt64(db.InsertWithIdentity(user));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
152
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
153 db.GetTable<Contract>().InsertWithIdentity(() => new Contract { UserId = user.Id, ContractNo = 1, Name = "contract" });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
154 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
155 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
156
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
157 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
158 public void ContractLinqManyInsert([IncludeDataContexts("Oracle")] string context)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
159 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
160 using (var db = new TestDbManager(context))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
161 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
162 db.BeginTransaction();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
163
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
164 var user = new User { Name = "user" };
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
165 user.Id = Convert.ToInt64(db.InsertWithIdentity(user));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
166
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
167 db.GetTable<User>().Insert(db.GetTable<Contract>(), x => new Contract { UserId = x.Id, ContractNo = 1, Name = "contract" });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
168 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
169 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
170
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
171 //[Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
172 public void ContractLinqManyInsertWithIdentity([IncludeDataContexts("Oracle")] string context)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
173 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
174 using (var db = new TestDbManager(context))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
175 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
176 db.BeginTransaction();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
177
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
178 var user = new User { Name = "user" };
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
179 user.Id = Convert.ToInt64(db.InsertWithIdentity(user));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
180
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
181 db.GetTable<User>().InsertWithIdentity(db.GetTable<Contract>(), x => new Contract
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
182 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
183 UserId = x.Id, ContractNo = 1, Name = "contract"
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
184 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
185 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
186 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
187 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
188 }