comparison HowTo/DataAccess/Transaction.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
3 using NUnit.Framework;
4
5 using BLToolkit.Data;
6 using BLToolkit.DataAccess;
7 using BLToolkit.Mapping;
8
9 namespace HowTo.DataAccess
10 {
11 [TestFixture]
12 public class Transaction
13 {
14 public abstract class TestAccessor : DataAccessor<Person>
15 {
16 public abstract int Insert(Person person);
17 public abstract void Delete(int @PersonID);
18
19 public abstract Person SelectByKey(int id);
20 public abstract Person SelectByKey(/*[a]*/DbManager/*[/a]*/ db, int id);
21 }
22
23 // /*[i]*/DataAccessor/*[/i]*/ takes /*[i]*/DbManager/*[/i]*/ as a parameter.
24 //
25 [Test]
26 public void Test1()
27 {
28 using (DbManager db = new DbManager())
29 {
30 TestAccessor ta = DataAccessor.CreateInstance<TestAccessor>/*[a]*/(db)/*[/a]*/;
31
32 ta./*[a]*/BeginTransaction/*[/a]*/();
33
34 int id = ta.Insert(new Person { FirstName = "John", LastName = "Smith" });
35 Assert.AreNotEqual(0, id);
36
37 Person person = ta.SelectByKey(id);
38 Assert.IsNotNull(person);
39
40 ta.Delete(id);
41
42 ta./*[a]*/CommitTransaction/*[/a]*/();
43 }
44 }
45
46 // /*[i]*/DataAccessor/*[/i]*/ method takes /*[i]*/DbManager/*[/i]*/ as a parameter.
47 //
48 [Test]
49 public void Test2()
50 {
51 using (DbManager db = new DbManager())
52 {
53 db.BeginTransaction();
54
55 TestAccessor ta = DataAccessor.CreateInstance<TestAccessor>/*[a]*/()/*[/a]*/;
56
57 int id = ta.Insert(new Person { FirstName = "John", LastName = "Smith" });
58 Assert.AreNotEqual(0, id);
59
60 Person person = ta.SelectByKey(/*[a]*/db/*[/a]*/, id);
61 Assert.IsNotNull(person);
62
63 ta.Delete(id);
64
65 db.CommitTransaction();
66 }
67 }
68 }
69 }
70