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