annotate UnitTests/Linq/BatchTest.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 using BLToolkit.Data;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3 using BLToolkit.Data.Linq;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
4 using BLToolkit.DataAccess;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
5 using BLToolkit.Mapping;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
6
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
7 using Data.Linq;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
8 using Data.Linq.Model;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
9
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
10 using NUnit.Framework;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
11
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
12 namespace Update
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
13 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
14 [TestFixture]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
15 public class BatchTest : TestBase
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
16 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
17 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
18 public void Transaction([DataContexts(ExcludeLinqService = true)] string context)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
19 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
20 using (var db = new TestDbManager(context))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
21 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
22 var list = new[]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
23 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
24 new Parent { ParentID = 1111, Value1 = 1111 },
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
25 new Parent { ParentID = 2111, Value1 = 2111 },
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
26 new Parent { ParentID = 3111, Value1 = 3111 },
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
27 new Parent { ParentID = 4111, Value1 = 4111 },
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
28 };
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
29
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
30 foreach (var parent in list)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
31 db.Parent.Delete(p => p.ParentID == parent.ParentID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
32
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
33 db.BeginTransaction();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
34 db.InsertBatch(list);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
35 db.CommitTransaction();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
36
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
37 foreach (var parent in list)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
38 db.Parent.Delete(p => p.ParentID == parent.ParentID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
39 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
40 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
41
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
42 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
43 public void NoTransaction([DataContexts(ExcludeLinqService=true)] string context)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
44 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
45 using (var db = new TestDbManager(context))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
46 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
47 var list = new[]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
48 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
49 new Parent { ParentID = 1111, Value1 = 1111 },
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
50 new Parent { ParentID = 2111, Value1 = 2111 },
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
51 new Parent { ParentID = 3111, Value1 = 3111 },
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
52 new Parent { ParentID = 4111, Value1 = 4111 },
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
53 };
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
54
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
55 foreach (var parent in list)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
56 db.Parent.Delete(p => p.ParentID == parent.ParentID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
57
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
58 db.InsertBatch(list);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
59
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
60 foreach (var parent in list)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
61 db.Parent.Delete(p => p.ParentID == parent.ParentID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
62 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
63 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
64
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
65 [TableName(Database="KanoonIr", Name="Area")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
66 public class Area
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
67 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
68 [ PrimaryKey(1)] public int AreaCode { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
69 public string AreaName { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
70 public int StateCode { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
71 [ PrimaryKey(2)] public int CityCode { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
72 public string Address { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
73 public string Tels { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
74 [Nullable ] public string WebSite { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
75 public bool IsActive { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
76 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
77
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
78 [Test, ExpectedException(typeof(InvalidOperationException), ExpectedMessage="Cannot access destination table '[KanoonIr]..[Area]'.")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
79 public void Issue260([IncludeDataContexts("Sql2005")] string context)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
80 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
81 using (var db = GetDataContext(context))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
82 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
83 ((DbManager)db).InsertBatch(new[] { new Area { AreaCode = 1 } });
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 }