8
8
9
9
namespace NHibernate . Test . Linq
10
10
{
11
- [ TestFixture ( typeof ( EnumType < TestEnum > ) , "0" ) ]
11
+ [ TestFixture ( typeof ( EnumType < TestEnum > ) , "0" ) ]
12
12
[ TestFixture ( typeof ( EnumStringType < TestEnum > ) , "'Unspecified'" ) ]
13
13
[ TestFixture ( typeof ( EnumAnsiStringType < TestEnum > ) , "'Unspecified'" ) ]
14
14
public class EnumTests : TestCaseMappingByCode
@@ -29,18 +29,17 @@ protected override HbmMapping GetMappings()
29
29
rc =>
30
30
{
31
31
rc . Table ( "EnumEntity" ) ;
32
- rc . Id ( x => x . Id , m => m . Generator ( Generators . Identity ) ) ;
32
+ rc . Id ( x => x . Id , m => m . Generator ( Generators . Guid ) ) ;
33
33
rc . Property ( x => x . Name ) ;
34
- rc . Property ( x => x . Enum , m => m . Type ( _enumType ) ) ;
35
- rc . Property ( x => x . NullableEnum , m =>
34
+ rc . Property ( x => x . Enum1 , m => m . Type ( _enumType ) ) ;
35
+ rc . Property ( x => x . NullableEnum1 , m =>
36
36
{
37
37
m . Type ( _enumType ) ;
38
- m . Formula ( $ "(case when Enum = { _unspecifiedValue } then null else Enum end)") ;
38
+ m . Formula ( $ "(case when Enum1 = { _unspecifiedValue } then null else Enum1 end)") ;
39
39
} ) ;
40
40
rc . ManyToOne ( x => x . Other , m => m . Cascade ( Mapping . ByCode . Cascade . All ) ) ;
41
41
} ) ;
42
42
43
-
44
43
return mapper . CompileMappingForAllExplicitlyAddedEntities ( ) ;
45
44
}
46
45
@@ -50,16 +49,16 @@ protected override void OnSetUp()
50
49
using ( var session = OpenSession ( ) )
51
50
using ( var trans = session . BeginTransaction ( ) )
52
51
{
53
- session . Save ( new EnumEntity { Enum = TestEnum . Unspecified } ) ;
54
- session . Save ( new EnumEntity { Enum = TestEnum . Small } ) ;
55
- session . Save ( new EnumEntity { Enum = TestEnum . Small } ) ;
56
- session . Save ( new EnumEntity { Enum = TestEnum . Medium } ) ;
57
- session . Save ( new EnumEntity { Enum = TestEnum . Medium } ) ;
58
- session . Save ( new EnumEntity { Enum = TestEnum . Medium } ) ;
59
- session . Save ( new EnumEntity { Enum = TestEnum . Large } ) ;
60
- session . Save ( new EnumEntity { Enum = TestEnum . Large } ) ;
61
- session . Save ( new EnumEntity { Enum = TestEnum . Large } ) ;
62
- session . Save ( new EnumEntity { Enum = TestEnum . Large } ) ;
52
+ session . Save ( new EnumEntity { Enum1 = TestEnum . Unspecified } ) ;
53
+ session . Save ( new EnumEntity { Enum1 = TestEnum . Small } ) ;
54
+ session . Save ( new EnumEntity { Enum1 = TestEnum . Small } ) ;
55
+ session . Save ( new EnumEntity { Enum1 = TestEnum . Medium } ) ;
56
+ session . Save ( new EnumEntity { Enum1 = TestEnum . Medium } ) ;
57
+ session . Save ( new EnumEntity { Enum1 = TestEnum . Medium } ) ;
58
+ session . Save ( new EnumEntity { Enum1 = TestEnum . Large } ) ;
59
+ session . Save ( new EnumEntity { Enum1 = TestEnum . Large } ) ;
60
+ session . Save ( new EnumEntity { Enum1 = TestEnum . Large } ) ;
61
+ session . Save ( new EnumEntity { Enum1 = TestEnum . Large } ) ;
63
62
trans . Commit ( ) ;
64
63
}
65
64
}
@@ -105,7 +104,7 @@ private void CanQueryOnEnum(TestEnum type, int expectedCount)
105
104
using ( var session = OpenSession ( ) )
106
105
using ( var trans = session . BeginTransaction ( ) )
107
106
{
108
- var query = session . Query < EnumEntity > ( ) . Where ( x => x . Enum == type ) . ToList ( ) ;
107
+ var query = session . Query < EnumEntity > ( ) . Where ( x => x . Enum1 == type ) . ToList ( ) ;
109
108
110
109
Assert . AreEqual ( expectedCount , query . Count ) ;
111
110
}
@@ -118,7 +117,7 @@ public void CanQueryWithContainsOnTestEnum_Small_1()
118
117
using ( var session = OpenSession ( ) )
119
118
using ( var trans = session . BeginTransaction ( ) )
120
119
{
121
- var query = session . Query < EnumEntity > ( ) . Where ( x => values . Contains ( x . Enum ) ) . ToList ( ) ;
120
+ var query = session . Query < EnumEntity > ( ) . Where ( x => values . Contains ( x . Enum1 ) ) . ToList ( ) ;
122
121
123
122
Assert . AreEqual ( 5 , query . Count ) ;
124
123
}
@@ -132,17 +131,17 @@ public void ConditionalNavigationProperty()
132
131
using ( var trans = session . BeginTransaction ( ) )
133
132
{
134
133
var entities = session . Query < EnumEntity > ( ) ;
135
- entities . Where ( o => o . Enum == TestEnum . Large ) . ToList ( ) ;
136
- entities . Where ( o => TestEnum . Large != o . Enum ) . ToList ( ) ;
137
- entities . Where ( o => ( o . NullableEnum ?? TestEnum . Large ) == TestEnum . Medium ) . ToList ( ) ;
138
- entities . Where ( o => ( ( o . NullableEnum ?? type ) ?? o . Enum ) == TestEnum . Medium ) . ToList ( ) ;
139
-
140
- entities . Where ( o => ( o . NullableEnum . HasValue ? o . Enum : TestEnum . Unspecified ) == TestEnum . Medium ) . ToList ( ) ;
141
- entities . Where ( o => ( o . Enum != TestEnum . Large
142
- ? ( o . NullableEnum . HasValue ? o . Enum : TestEnum . Unspecified )
134
+ entities . Where ( o => o . Enum1 == TestEnum . Large ) . ToList ( ) ;
135
+ entities . Where ( o => TestEnum . Large != o . Enum1 ) . ToList ( ) ;
136
+ entities . Where ( o => ( o . NullableEnum1 ?? TestEnum . Large ) == TestEnum . Medium ) . ToList ( ) ;
137
+ entities . Where ( o => ( ( o . NullableEnum1 ?? type ) ?? o . Enum1 ) == TestEnum . Medium ) . ToList ( ) ;
138
+
139
+ entities . Where ( o => ( o . NullableEnum1 . HasValue ? o . Enum1 : TestEnum . Unspecified ) == TestEnum . Medium ) . ToList ( ) ;
140
+ entities . Where ( o => ( o . Enum1 != TestEnum . Large
141
+ ? ( o . NullableEnum1 . HasValue ? o . Enum1 : TestEnum . Unspecified )
143
142
: TestEnum . Small ) == TestEnum . Medium ) . ToList ( ) ;
144
143
145
- entities . Where ( o => ( o . Enum == TestEnum . Large ? o . Other : o . Other ) . Name == "test" ) . ToList ( ) ;
144
+ entities . Where ( o => ( o . Enum1 == TestEnum . Large ? o . Other : o . Other ) . Name == "test" ) . ToList ( ) ;
146
145
}
147
146
}
148
147
@@ -157,59 +156,59 @@ public void CanQueryComplexExpressionOnTestEnum()
157
156
var entities = session . Query < EnumEntity > ( ) ;
158
157
159
158
var query = ( from user in entities
160
- where ( user . NullableEnum == TestEnum . Large
159
+ where ( user . NullableEnum1 == TestEnum . Large
161
160
? TestEnum . Medium
162
- : user . NullableEnum ?? user . Enum
161
+ : user . NullableEnum1 ?? user . Enum1
163
162
) == type
164
163
select new
165
164
{
166
165
user ,
167
- simple = user . Enum ,
168
- condition = user . Enum == TestEnum . Large ? TestEnum . Medium : user . Enum ,
169
- coalesce = user . NullableEnum ?? TestEnum . Medium
166
+ simple = user . Enum1 ,
167
+ condition = user . Enum1 == TestEnum . Large ? TestEnum . Medium : user . Enum1 ,
168
+ coalesce = user . NullableEnum1 ?? TestEnum . Medium
170
169
} ) . ToList ( ) ;
171
170
172
171
Assert . That ( query . Count , Is . EqualTo ( 0 ) ) ;
173
172
}
174
173
}
174
+ }
175
175
176
- public class EnumEntity
177
- {
178
- public virtual int Id { get ; set ; }
179
- public virtual string Name { get ; set ; }
176
+ public class EnumEntity
177
+ {
178
+ public virtual Guid Id { get ; set ; }
179
+ public virtual string Name { get ; set ; }
180
180
181
- public virtual TestEnum Enum { get ; set ; }
182
- public virtual TestEnum ? NullableEnum { get ; set ; }
181
+ public virtual TestEnum Enum1 { get ; set ; }
182
+ public virtual TestEnum ? NullableEnum1 { get ; set ; }
183
183
184
- public virtual EnumEntity Other { get ; set ; }
185
- }
184
+ public virtual EnumEntity Other { get ; set ; }
185
+ }
186
186
187
- public enum TestEnum
187
+ public enum TestEnum
188
+ {
189
+ Unspecified ,
190
+ Small ,
191
+ Medium ,
192
+ Large
193
+ }
194
+
195
+ [ Serializable ]
196
+ public class EnumAnsiStringType < T > : EnumStringType
197
+ {
198
+ private readonly string typeName ;
199
+
200
+ public EnumAnsiStringType ( )
201
+ : base ( typeof ( T ) )
188
202
{
189
- Unspecified ,
190
- Small ,
191
- Medium ,
192
- Large
203
+ System . Type type = GetType ( ) ;
204
+ typeName = type . FullName + ", " + type . Assembly . GetName ( ) . Name ;
193
205
}
194
206
195
- [ Serializable ]
196
- public class EnumAnsiStringType < T > : EnumStringType
207
+ public override string Name
197
208
{
198
- private readonly string typeName ;
199
-
200
- public EnumAnsiStringType ( )
201
- : base ( typeof ( T ) )
202
- {
203
- System . Type type = GetType ( ) ;
204
- typeName = type . FullName + ", " + type . Assembly . GetName ( ) . Name ;
205
- }
206
-
207
- public override string Name
208
- {
209
- get { return typeName ; }
210
- }
211
-
212
- public override SqlType SqlType => SqlTypeFactory . GetAnsiString ( 255 ) ;
209
+ get { return typeName ; }
213
210
}
211
+
212
+ public override SqlType SqlType => SqlTypeFactory . GetAnsiString ( 255 ) ;
214
213
}
215
214
}
0 commit comments