Mercurial > pub > bltoolkit
comparison UnitTests/CS/DataAccess/OutRefTest.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.DataAccess; | |
6 using BLToolkit.TypeBuilder; | |
7 | |
8 namespace DataAccess | |
9 { | |
10 [TestFixture] | |
11 public class OutRefTest | |
12 { | |
13 public class Entity | |
14 { | |
15 public int ID = 5; | |
16 public int outputID; | |
17 public int inputOutputID = 10; | |
18 public string str = "5"; | |
19 public string outputStr; | |
20 public string inputOutputStr = "10"; | |
21 } | |
22 | |
23 public abstract class TestAccessor : DataAccessor | |
24 { | |
25 public abstract void OutRefTest( | |
26 int @ID, out int @outputID, ref int @inputOutputID, | |
27 string @str, out string @outputStr, ref string @inputOutputStr); | |
28 | |
29 [SprocName("OutRefTest")] | |
30 public abstract void OutRefTest2( | |
31 [ParamNullValue(-1)] int ID, | |
32 [ParamNullValue(-2)] out int outputID, | |
33 [ParamNullValue(-3)] ref int inputOutputID, | |
34 [ParamNullValue("A")] string str, | |
35 [ParamNullValue("B")] out string outputStr, | |
36 [ParamNullValue("C")] ref string inputOutputStr); | |
37 | |
38 public abstract void OutRefTest(out int outputID, | |
39 [Direction.InputOutput("inputOutputID", "inputOutputStr"), Direction.Output("outputStr", "outputID")] Entity entity, | |
40 ref string inputOutputStr); | |
41 } | |
42 | |
43 [Test] | |
44 public void Test1() | |
45 { | |
46 int @outputID; | |
47 int @inputOutputID = 10; | |
48 string @outputStr; | |
49 string @inputOutputStr = "10"; | |
50 | |
51 ((TestAccessor)DataAccessor.CreateInstance(typeof(TestAccessor))) | |
52 .OutRefTest(5, out @outputID, ref @inputOutputID, | |
53 "5", out @outputStr, ref @inputOutputStr); | |
54 | |
55 Assert.AreEqual(5, @outputID); | |
56 Assert.AreEqual(15, @inputOutputID); | |
57 Assert.AreEqual("5", @outputStr); | |
58 Assert.AreEqual("510", @inputOutputStr); | |
59 } | |
60 | |
61 [Test] | |
62 public void Test2() | |
63 { | |
64 Entity e = new Entity(); | |
65 int @outputID; | |
66 string @inputOutputStr = "20"; | |
67 | |
68 ((TestAccessor)DataAccessor.CreateInstance(typeof(TestAccessor))) | |
69 .OutRefTest(out @outputID, e, ref @inputOutputStr); | |
70 | |
71 Assert.AreEqual(5, e.outputID); | |
72 Assert.AreEqual(5, @outputID); | |
73 Assert.AreEqual(15, e.inputOutputID); | |
74 Assert.AreEqual("5", e.outputStr); | |
75 Assert.AreEqual("510", e.inputOutputStr); | |
76 Assert.AreEqual("510", @inputOutputStr); | |
77 } | |
78 | |
79 [Test] | |
80 public void NullValueTest() | |
81 { | |
82 int @outputID; | |
83 int @inputOutputID = 10; | |
84 string @outputStr; | |
85 string @inputOutputStr = "C"; | |
86 | |
87 ((TestAccessor)DataAccessor.CreateInstance(typeof(TestAccessor))) | |
88 .OutRefTest2(-1, out @outputID, ref @inputOutputID, | |
89 "A", out @outputStr, ref @inputOutputStr); | |
90 | |
91 Assert.AreEqual(-2, @outputID); | |
92 Assert.AreEqual(-3, @inputOutputID); | |
93 Assert.AreEqual("B", @outputStr); | |
94 Assert.AreEqual("C", @inputOutputStr); | |
95 } | |
96 | |
97 public class NullableEntity | |
98 { | |
99 public int? ID = null; | |
100 public int? outputID; | |
101 public int? inputOutputID = 20; | |
102 public string str = null; | |
103 public string outputStr; | |
104 public string inputOutputStr = "40"; | |
105 } | |
106 | |
107 public abstract class TestNullableAccessor : DataAccessor | |
108 { | |
109 public abstract void OutRefTest( | |
110 int? @ID, out int? @outputID, ref int? @inputOutputID, | |
111 string @str, out string @outputStr, ref string @inputOutputStr); | |
112 | |
113 public abstract void OutRefTest( | |
114 out int? @outputID, | |
115 [Direction.InputOutput("inputOutputID", "inputOutputStr"), Direction.Output("outputStr", "outputID")] NullableEntity entity, | |
116 ref string @inputOutputStr); | |
117 | |
118 } | |
119 | |
120 [Test] | |
121 public void TestNullable1() | |
122 { | |
123 int? @outputID; | |
124 int? @inputOutputID = 10; | |
125 string @outputStr; | |
126 string @inputOutputStr = ""; | |
127 | |
128 DataAccessor.CreateInstance<TestNullableAccessor>() | |
129 .OutRefTest(null, out @outputID, ref @inputOutputID, | |
130 null, out @outputStr, ref @inputOutputStr); | |
131 | |
132 Assert.IsNull (@outputID); | |
133 Assert.IsNull (@inputOutputID); | |
134 Assert.IsEmpty(@outputStr); | |
135 Assert.IsEmpty(@inputOutputStr); | |
136 } | |
137 | |
138 [Test] | |
139 public void TestNullable2() | |
140 { | |
141 NullableEntity e = new NullableEntity(); | |
142 int? @outputID; | |
143 string @inputOutputStr = "20"; | |
144 e.str = "20"; | |
145 | |
146 DataAccessor.CreateInstance<TestNullableAccessor>() | |
147 .OutRefTest(out @outputID, e, ref @inputOutputStr); | |
148 | |
149 Assert.IsNull (@outputID); | |
150 Assert.AreEqual("20", e.outputStr); | |
151 Assert.IsNull (e.inputOutputID); | |
152 Assert.AreEqual("2040", @inputOutputStr); | |
153 } | |
154 } | |
155 } |