/src/FluentNHibernate.Testing/FluentInterfaceTests/AnyMutablePropertyModelGenerationTests.cs
C# | 282 lines | 259 code | 23 blank | 0 comment | 0 complexity | 6aecb49994d125ad78522a64860c8994 MD5 | raw file
Possible License(s): BSD-3-Clause
1using System.Linq;
2using FluentNHibernate.MappingModel;
3using FluentNHibernate.Testing.DomainModel;
4using FluentNHibernate.Testing.DomainModel.Mapping;
5using NUnit.Framework;
6
7namespace FluentNHibernate.Testing.FluentInterfaceTests
8{
9 [TestFixture]
10 public class AnyMutablePropertyModelGenerationTests : BaseModelFixture
11 {
12 [Test]
13 public void AccessSetsModelAccessPropertyToValue()
14 {
15 Any<SecondMappedObject>()
16 .Mapping(m => m
17 .IdentityType<int>()
18 .EntityIdentifierColumn("col")
19 .EntityTypeColumn("col2")
20 .Access.Field())
21 .ModelShouldMatch(x => x.Access.ShouldEqual("field"));
22 }
23
24 [Test]
25 public void CascadeSetsModelCascadePropertyToValue()
26 {
27 Any<SecondMappedObject>()
28 .Mapping(m => m
29 .IdentityType<int>()
30 .EntityIdentifierColumn("col")
31 .EntityTypeColumn("col2")
32 .Cascade.All())
33 .ModelShouldMatch(x => x.Cascade.ShouldEqual("all"));
34 }
35
36 [Test]
37 public void IdentityTypeSetsModelIdTypePropertyToPropertyTypeName()
38 {
39 Any<SecondMappedObject>()
40 .Mapping(m => m
41 .IdentityType(x => x.Id)
42 .EntityIdentifierColumn("col")
43 .EntityTypeColumn("col2"))
44 .ModelShouldMatch(x => x.IdType.ShouldEqual(typeof(long).AssemblyQualifiedName));
45 }
46
47 [Test]
48 public void IdentityTypeSetsModelIdTypePropertyToTypeName()
49 {
50 Any<SecondMappedObject>()
51 .Mapping(m => m
52 .IdentityType<int>()
53 .EntityIdentifierColumn("col")
54 .EntityTypeColumn("col2"))
55 .ModelShouldMatch(x => x.IdType.ShouldEqual(typeof(int).AssemblyQualifiedName));
56 }
57
58 [Test]
59 public void InsertSetsModelInsertPropertyToTrue()
60 {
61 Any<SecondMappedObject>()
62 .Mapping(m => m
63 .IdentityType<int>()
64 .EntityIdentifierColumn("col")
65 .EntityTypeColumn("col2")
66 .Insert())
67 .ModelShouldMatch(x => x.Insert.ShouldBeTrue());
68 }
69
70 [Test]
71 public void NotInsertSetsModelInsertPropertyToFalse()
72 {
73 Any<SecondMappedObject>()
74 .Mapping(m => m
75 .IdentityType<int>()
76 .EntityIdentifierColumn("col")
77 .EntityTypeColumn("col2")
78 .Not.Insert())
79 .ModelShouldMatch(x => x.Insert.ShouldBeFalse());
80 }
81
82 [Test]
83 public void UpdateSetsModelUpdatePropertyToTrue()
84 {
85 Any<SecondMappedObject>()
86 .Mapping(m => m
87 .IdentityType<int>()
88 .EntityIdentifierColumn("col")
89 .EntityTypeColumn("col2")
90 .Update())
91 .ModelShouldMatch(x => x.Update.ShouldBeTrue());
92 }
93
94 [Test]
95 public void NotUpdateSetsModelUpdatePropertyToFalse()
96 {
97 Any<SecondMappedObject>()
98 .Mapping(m => m
99 .IdentityType<int>()
100 .EntityIdentifierColumn("col")
101 .EntityTypeColumn("col2")
102 .Not.Update())
103 .ModelShouldMatch(x => x.Update.ShouldBeFalse());
104 }
105
106 [Test]
107 public void ReadOnlySetsModelInsertPropertyToFalse()
108 {
109 Any<SecondMappedObject>()
110 .Mapping(m => m
111 .IdentityType<int>()
112 .EntityIdentifierColumn("col")
113 .EntityTypeColumn("col2")
114 .ReadOnly())
115 .ModelShouldMatch(x => x.Insert.ShouldBeFalse());
116 }
117
118 [Test]
119 public void NotReadOnlySetsModelInsertPropertyToTrue()
120 {
121 Any<SecondMappedObject>()
122 .Mapping(m => m
123 .IdentityType<int>()
124 .EntityIdentifierColumn("col")
125 .EntityTypeColumn("col2")
126 .Not.ReadOnly())
127 .ModelShouldMatch(x => x.Insert.ShouldBeTrue());
128 }
129
130 [Test]
131 public void ReadOnlySetsModelUpdatePropertyToFalse()
132 {
133 Any<SecondMappedObject>()
134 .Mapping(m => m
135 .IdentityType<int>()
136 .EntityIdentifierColumn("col")
137 .EntityTypeColumn("col2")
138 .ReadOnly())
139 .ModelShouldMatch(x => x.Update.ShouldBeFalse());
140 }
141
142 [Test]
143 public void NotReadOnlySetsModelUpdatePropertyToTrue()
144 {
145 Any<SecondMappedObject>()
146 .Mapping(m => m
147 .IdentityType<int>()
148 .EntityIdentifierColumn("col")
149 .EntityTypeColumn("col2")
150 .Not.ReadOnly())
151 .ModelShouldMatch(x => x.Update.ShouldBeTrue());
152 }
153
154 [Test]
155 public void LazyLoadSetsModelLazyPropertyToTrue()
156 {
157 Any<SecondMappedObject>()
158 .Mapping(m => m
159 .IdentityType<int>()
160 .EntityIdentifierColumn("col")
161 .EntityTypeColumn("col2")
162 .LazyLoad())
163 .ModelShouldMatch(x => x.Lazy.ShouldBeTrue());
164 }
165
166 [Test]
167 public void NotLazyLoadSetsModelLazyPropertyToFalse()
168 {
169 Any<SecondMappedObject>()
170 .Mapping(m => m
171 .IdentityType<int>()
172 .EntityIdentifierColumn("col")
173 .EntityTypeColumn("col2")
174 .Not.LazyLoad())
175 .ModelShouldMatch(x => x.Lazy.ShouldBeFalse());
176 }
177
178 [Test]
179 public void OptimisticLockSetsModelOptimisticLockPropertyToTrue()
180 {
181 Any<SecondMappedObject>()
182 .Mapping(m => m
183 .IdentityType<int>()
184 .EntityIdentifierColumn("col")
185 .EntityTypeColumn("col2")
186 .OptimisticLock())
187 .ModelShouldMatch(x => x.OptimisticLock.ShouldBeTrue());
188 }
189
190 [Test]
191 public void NotOptimisticLockSetsModelOptimisticLockPropertyToFalse()
192 {
193 Any<SecondMappedObject>()
194 .Mapping(m => m
195 .IdentityType<int>()
196 .EntityIdentifierColumn("col")
197 .EntityTypeColumn("col2")
198 .Not.OptimisticLock())
199 .ModelShouldMatch(x => x.OptimisticLock.ShouldBeFalse());
200 }
201
202 [Test]
203 public void MetaTypePropertyShouldBeSetToPropertyTypeIfNoMetaValuesSet()
204 {
205 Any<SecondMappedObject>()
206 .Mapping(m => m
207 .IdentityType<int>()
208 .EntityIdentifierColumn("col")
209 .EntityTypeColumn("col2"))
210 .ModelShouldMatch(x => x.MetaType.ShouldEqual(new TypeReference(typeof(SecondMappedObject))));
211 }
212
213 [Test]
214 public void MetaTypePropertyShouldBeSetToStringIfMetaValuesSet()
215 {
216 Any<SecondMappedObject>()
217 .Mapping(m => m
218 .IdentityType<int>()
219 .EntityIdentifierColumn("col")
220 .EntityTypeColumn("col2")
221 .AddMetaValue<Record>("Rec"))
222 .ModelShouldMatch(x => x.MetaType.ShouldEqual(new TypeReference(typeof(string))));
223 }
224
225 [Test]
226 public void NamePropertyShouldBeSetToPropertyName()
227 {
228 Any<SecondMappedObject>()
229 .Mapping(m => m
230 .IdentityType<int>()
231 .EntityIdentifierColumn("col")
232 .EntityTypeColumn("col2"))
233 .ModelShouldMatch(x => x.Name.ShouldEqual("Parent"));
234 }
235
236 [Test]
237 public void EntityIdentifierColumnShouldAddToModelColumnsCollection()
238 {
239 Any<SecondMappedObject>()
240 .Mapping(m => m
241 .IdentityType<int>()
242 .EntityIdentifierColumn("col")
243 .EntityTypeColumn("col2"))
244 .ModelShouldMatch(x => x.IdentifierColumns.Count().ShouldEqual(1));
245 }
246
247 [Test]
248 public void EntityTypeColumnShouldAddToModelColumnsCollection()
249 {
250 Any<SecondMappedObject>()
251 .Mapping(m => m
252 .IdentityType<int>()
253 .EntityIdentifierColumn("col")
254 .EntityTypeColumn("col2"))
255 .ModelShouldMatch(x => x.TypeColumns.Count().ShouldEqual(1));
256 }
257
258 [Test]
259 public void AddMetaValueShouldAddToModelMetaValuesCollection()
260 {
261 Any<SecondMappedObject>()
262 .Mapping(m => m
263 .IdentityType<int>()
264 .EntityIdentifierColumn("col")
265 .EntityTypeColumn("col2")
266 .AddMetaValue<Record>("Rec"))
267 .ModelShouldMatch(x => x.MetaValues.Count().ShouldEqual(1));
268 }
269
270 [Test]
271 public void MetaTypeShouldSetMetaTypePropertyOnModel()
272 {
273 Any<SecondMappedObject>()
274 .Mapping(m => m
275 .IdentityType<int>()
276 .EntityIdentifierColumn("col")
277 .EntityTypeColumn("col2")
278 .MetaType<object>())
279 .ModelShouldMatch(x => x.MetaType.ShouldEqual(new TypeReference(typeof(object))));
280 }
281 }
282}