annotate UnitTests/CS/Mapping/NullableAttributeTest.cs @ 1:8f65451dc28f

Исправлена проблема с фабрикой и выборкой нескольких объектов в linq выражении
author cin
date Fri, 28 Mar 2014 01:04:56 +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.Mapping;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
6
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
7 namespace Mapping
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
8 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
9 [TestFixture]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
10 public class NullableAttributeTest
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
11 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
12 public abstract class Object1
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
13 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
14 [NotNull] public abstract string Str1 { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
15 [Nullable] public abstract string Str2 { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
16 [NullValue("(null)")] public abstract string Str3 { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
17 [NullValue(typeof(DBNull))] public abstract string Str4 { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
18 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
19
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
20 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
21 public void TestString1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
22 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
23 var om = Map.GetObjectMapper(typeof(Object1));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
24 var o = (Object1)om.CreateInstance();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
25
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
26 om.SetValue(o, "Str1", null);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
27 om.SetValue(o, "Str2", null);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
28 om.SetValue(o, "Str3", null);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
29 om.SetValue(o, "Str4", null);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
30
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
31 Assert.AreEqual("", o.Str1);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
32 Assert.AreEqual("", o.Str2);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
33 Assert.AreEqual("(null)", o.Str3);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
34 Assert.IsNull (o.Str4);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
35
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
36 Assert.IsNotNull(om.GetValue(o, "Str1"));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
37 Assert.IsNull (om.GetValue(o, "Str2"));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
38 Assert.IsNull (om.GetValue(o, "Str3"));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
39 Assert.IsNull (om.GetValue(o, "Str4"));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
40 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
41
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
42 [NullValue(typeof(string), "(null)")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
43 [NullValue(typeof(bool), false)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
44 public abstract class Object2
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
45 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
46 [Nullable(false)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
47 public abstract string Str1 { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
48 [NullValue("")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
49 public abstract string Str2 { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
50 public abstract string Str3 { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
51 [NullValue(typeof(DBNull))]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
52 public abstract string Str4 { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
53 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
54
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
55 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
56 public void TestString2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
57 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
58 ObjectMapper om = Map.GetObjectMapper(typeof(Object2));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
59
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
60 Object2 o = (Object2)om.CreateInstance();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
61
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
62 om.SetValue(o, "Str1", null);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
63 om.SetValue(o, "Str2", null);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
64 om.SetValue(o, "Str3", null);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
65 om.SetValue(o, "Str4", null);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
66
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
67 Assert.AreEqual("", o.Str1);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
68 Assert.AreEqual("", o.Str2);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
69 Assert.AreEqual("(null)", o.Str3);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
70 Assert.IsNull (o.Str4);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
71
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
72 Assert.IsNotNull(om.GetValue(o, "Str1"));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
73 Assert.IsNull (om.GetValue(o, "Str2"));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
74 Assert.IsNull (om.GetValue(o, "Str3"));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
75 Assert.IsNull (om.GetValue(o, "Str4"));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
76 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
77
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
78 [Nullable(typeof(string))]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
79 public abstract class Object3
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
80 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
81 [Nullable(false)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
82 public abstract string Str1 { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
83 public abstract string Str2 { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
84 [NullValue("(null)")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
85 public abstract string Str3 { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
86 [NullValue(typeof(DBNull))]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
87 public abstract string Str4 { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
88 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
89
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
90 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
91 public void TestString3()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
92 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
93 ObjectMapper om = Map.GetObjectMapper(typeof(Object3));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
94
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
95 Object3 o = (Object3)om.CreateInstance();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
96
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
97 om.SetValue(o, "Str1", null);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
98 om.SetValue(o, "Str2", null);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
99 om.SetValue(o, "Str3", null);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
100 om.SetValue(o, "Str4", null);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
101
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
102 Assert.AreEqual("", o.Str1);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
103 Assert.AreEqual("", o.Str2);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
104 Assert.AreEqual("(null)", o.Str3);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
105 Assert.IsNull (o.Str4);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
106
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
107 Assert.IsNotNull(om.GetValue(o, "Str1"));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
108 Assert.IsNull (om.GetValue(o, "Str2"));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
109 Assert.IsNull (om.GetValue(o, "Str3"));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
110 Assert.IsNull (om.GetValue(o, "Str4"));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
111 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
112
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
113 [NullValue("(null)")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
114 public abstract class Object4
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
115 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
116 [Nullable(false)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
117 public abstract string Str1 { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
118 [NullValue("")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
119 public abstract string Str2 { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
120 public abstract string Str3 { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
121 [NullValue(typeof(DBNull))]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
122 public abstract string Str4 { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
123 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
124
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
125 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
126 public void TestString4()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
127 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
128 ObjectMapper om = Map.GetObjectMapper(typeof(Object2));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
129
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
130 Object2 o = (Object2)om.CreateInstance();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
131
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
132 om.SetValue(o, "Str1", null);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
133 om.SetValue(o, "Str2", "2");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
134 om.SetValue(o, "Str3", null);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
135 om.SetValue(o, "Str4", null);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
136
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
137 Assert.AreEqual("", o.Str1);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
138 Assert.AreEqual("2", o.Str2);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
139 Assert.AreEqual("(null)", o.Str3);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
140 Assert.IsNull (o.Str4);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
141
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
142 Assert.IsNotNull( om.GetValue(o, "Str1"));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
143 Assert.AreEqual ("2", om.GetValue(o, "Str2"));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
144 Assert.IsNull ( om.GetValue(o, "Str3"));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
145 Assert.IsNull ( om.GetValue(o, "Str4"));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
146 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
147
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
148 public class Object5
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
149 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
150 public int Int1;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
151 [Nullable]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
152 public int Int2;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
153 [NullValue(int.MinValue)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
154 public int Int3;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
155 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
156
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
157 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
158 public void TestPrimitive()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
159 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
160 ObjectMapper om = Map.GetObjectMapper(typeof(Object5));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
161
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
162 Object5 o = (Object5)om.CreateInstance();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
163
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
164 om.SetValue(o, "Int1", null);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
165 om.SetValue(o, "Int2", null);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
166 om.SetValue(o, "Int3", null);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
167
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
168 Assert.AreEqual(0, o.Int1);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
169 Assert.AreEqual(0, o.Int2);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
170 Assert.AreEqual(int.MinValue, o.Int3);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
171
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
172 Assert.IsNotNull(om.GetValue(o, "Int1"));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
173 Assert.IsNull (om.GetValue(o, "Int2"));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
174 Assert.IsNull (om.GetValue(o, "Int3"));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
175 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
176
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
177 [NullValue("(null)")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
178 public class Object6
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
179 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
180 public string String1;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
181 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
182
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
183 [NullValue("(derived null)")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
184 public class Object6Derived : Object6
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
185 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
186 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
187
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
188 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
189 public void TestDerivedNull()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
190 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
191 ObjectMapper om = Map.GetObjectMapper(typeof(Object6Derived));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
192 Object6Derived o = (Object6Derived) om.CreateInstance();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
193
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
194 om.SetValue(o, "String1", null);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
195 Console.WriteLine(o.String1);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
196 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
197 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
198 }