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