0
|
1 using System;
|
|
2 using BLToolkit.Data;
|
|
3 using NUnit.Framework;
|
|
4
|
|
5 using BLToolkit.DataAccess;
|
|
6 using BLToolkit.Mapping;
|
|
7
|
|
8 namespace DataAccess
|
|
9 {
|
|
10 [TestFixture]
|
|
11 public class EnumTest
|
|
12 {
|
|
13 public enum Gender
|
|
14 {
|
|
15 [MapValue("F")] E_Female,
|
|
16 [MapValue("M")] E_Male,
|
|
17 [MapValue("U")] E_Unknown,
|
|
18 [MapValue("O")] E_Other
|
|
19 }
|
|
20
|
|
21 public enum RefEnum
|
|
22 {
|
|
23 [MapValue("A")] E_A,
|
|
24 [MapValue("B")] E_B,
|
|
25 [MapValue("BB")] E_BB
|
|
26 }
|
|
27
|
|
28 public abstract class TestAccessor : DataAccessor
|
|
29 {
|
|
30 #if SQLITE || SQLCE
|
|
31 [SqlQuery(@"INSERT INTO Person(FirstName, MiddleName, LastName, Gender)
|
|
32 VALUES(@FirstName, @MiddleName, @LastName, @Gender)")]
|
|
33 #endif
|
|
34 public abstract int Person_Insert(
|
|
35 string @FirstName, string @MiddleName, string @LastName, Gender @Gender);
|
|
36
|
|
37 #if ACCESS || SQLITE || SQLCE
|
|
38 #if SQLITE || SQLCE
|
|
39 [SqlQuery(@"SELECT * FROM Person WHERE FirstName = @FirstName AND LastName = @LastName")]
|
|
40 #endif
|
|
41 public abstract int Person_SelectByName(
|
|
42 string @FirstName, string @LastName );
|
|
43 #endif
|
|
44
|
|
45 #if SQLITE || SQLCE
|
|
46 [SqlQuery(@"DELETE FROM Person WHERE PersonID = @PersonID")]
|
|
47 #endif
|
|
48 public abstract void Person_Delete(int @personID);
|
|
49
|
|
50 public abstract void OutRefEnumTest(
|
|
51 string @str, out RefEnum @outputStr, ref RefEnum @inputOutputStr);
|
|
52
|
|
53 }
|
|
54
|
|
55 [Test]
|
|
56 public void Test()
|
|
57 {
|
|
58 TestAccessor ta = (TestAccessor)DataAccessor.CreateInstance(typeof(TestAccessor));
|
|
59
|
|
60 int id = ta.Person_Insert("Crazy", null, "Frog", Gender.E_Unknown);
|
|
61
|
|
62 #if ACCESS || SQLITE || SQLCE
|
|
63 Assert.AreEqual(0, id);
|
|
64 id = ta.Person_SelectByName("Crazy", "Frog");
|
|
65 #endif
|
|
66
|
|
67 Assert.IsTrue(id > 0);
|
|
68 ta.Person_Delete(id);
|
|
69 }
|
|
70
|
|
71 #if !ACCESS && !SQLITE && !SQLCE
|
|
72 [Test]
|
|
73 public void RefTest()
|
|
74 {
|
|
75 TestAccessor ta = (TestAccessor)DataAccessor.CreateInstance(typeof(TestAccessor));
|
|
76
|
|
77 RefEnum a;
|
|
78 RefEnum b = RefEnum.E_B;
|
|
79
|
|
80 ta.OutRefEnumTest("B", out a, ref b);
|
|
81
|
|
82 Assert.AreEqual(RefEnum.E_B, a);
|
|
83 Assert.AreEqual(RefEnum.E_BB, b);
|
|
84 }
|
|
85 #endif
|
|
86 }
|
|
87 }
|