@@ -28,12 +28,13 @@ public void CanStoreEnumValue()
28
28
[ Test ]
29
29
public void CanGetEnumValue ( )
30
30
{
31
- using ( var con = OpenDbConnection ( ) )
31
+ using ( var db = OpenDbConnection ( ) )
32
32
{
33
- con . CreateTable < TypeWithEnum > ( true ) ;
33
+ db . DropAndCreateTable < TypeWithEnum > ( ) ;
34
+
34
35
var obj = new TypeWithEnum { Id = 1 , EnumValue = SomeEnum . Value1 } ;
35
- con . Save ( obj ) ;
36
- var target = con . SingleById < TypeWithEnum > ( obj . Id ) ;
36
+ db . Save ( obj ) ;
37
+ var target = db . SingleById < TypeWithEnum > ( obj . Id ) ;
37
38
Assert . AreEqual ( obj . Id , target . Id ) ;
38
39
Assert . AreEqual ( obj . EnumValue , target . EnumValue ) ;
39
40
}
@@ -42,31 +43,31 @@ public void CanGetEnumValue()
42
43
[ Test ]
43
44
public void CanQueryByEnumValue_using_select_with_expression ( )
44
45
{
45
- using ( var con = OpenDbConnection ( ) )
46
+ using ( var db = OpenDbConnection ( ) )
46
47
{
47
- con . CreateTable < TypeWithEnum > ( true ) ;
48
- con . Save ( new TypeWithEnum { Id = 1 , EnumValue = SomeEnum . Value1 } ) ;
49
- con . Save ( new TypeWithEnum { Id = 2 , EnumValue = SomeEnum . Value1 } ) ;
50
- con . Save ( new TypeWithEnum { Id = 3 , EnumValue = SomeEnum . Value2 } ) ;
48
+ db . DropAndCreateTable < TypeWithEnum > ( ) ;
49
+ db . Save ( new TypeWithEnum { Id = 1 , EnumValue = SomeEnum . Value1 } ) ;
50
+ db . Save ( new TypeWithEnum { Id = 2 , EnumValue = SomeEnum . Value1 } ) ;
51
+ db . Save ( new TypeWithEnum { Id = 3 , EnumValue = SomeEnum . Value2 } ) ;
51
52
52
- var results = con . Select < TypeWithEnum > ( q => q . EnumValue == SomeEnum . Value1 ) ;
53
+ var results = db . Select < TypeWithEnum > ( q => q . EnumValue == SomeEnum . Value1 ) ;
53
54
Assert . That ( results . Count , Is . EqualTo ( 2 ) ) ;
54
- results = con . Select < TypeWithEnum > ( q => q . EnumValue == SomeEnum . Value2 ) ;
55
+ results = db . Select < TypeWithEnum > ( q => q . EnumValue == SomeEnum . Value2 ) ;
55
56
Assert . That ( results . Count , Is . EqualTo ( 1 ) ) ;
56
57
}
57
58
}
58
59
59
60
[ Test ]
60
61
public void CanQueryByEnumValue_using_select_with_string ( )
61
62
{
62
- using ( var con = OpenDbConnection ( ) )
63
+ using ( var db = OpenDbConnection ( ) )
63
64
{
64
- con . CreateTable < TypeWithEnum > ( true ) ;
65
- con . Save ( new TypeWithEnum { Id = 1 , EnumValue = SomeEnum . Value1 } ) ;
66
- con . Save ( new TypeWithEnum { Id = 2 , EnumValue = SomeEnum . Value1 } ) ;
67
- con . Save ( new TypeWithEnum { Id = 3 , EnumValue = SomeEnum . Value2 } ) ;
65
+ db . DropAndCreateTable < TypeWithEnum > ( ) ;
66
+ db . Save ( new TypeWithEnum { Id = 1 , EnumValue = SomeEnum . Value1 } ) ;
67
+ db . Save ( new TypeWithEnum { Id = 2 , EnumValue = SomeEnum . Value1 } ) ;
68
+ db . Save ( new TypeWithEnum { Id = 3 , EnumValue = SomeEnum . Value2 } ) ;
68
69
69
- var target = con . SelectFmt < TypeWithEnum > (
70
+ var target = db . SelectFmt < TypeWithEnum > (
70
71
"EnumValue" . SqlColumn ( ) + " = {0}" , SomeEnum . Value1 ) ;
71
72
72
73
Assert . AreEqual ( 2 , target . Count ( ) ) ;
@@ -76,14 +77,14 @@ public void CanQueryByEnumValue_using_select_with_string()
76
77
[ Test ]
77
78
public void CanQueryByEnumValue_using_where_with_AnonType ( )
78
79
{
79
- using ( var con = OpenDbConnection ( ) )
80
+ using ( var db = OpenDbConnection ( ) )
80
81
{
81
- con . CreateTable < TypeWithEnum > ( true ) ;
82
- con . Save ( new TypeWithEnum { Id = 1 , EnumValue = SomeEnum . Value1 } ) ;
83
- con . Save ( new TypeWithEnum { Id = 2 , EnumValue = SomeEnum . Value1 } ) ;
84
- con . Save ( new TypeWithEnum { Id = 3 , EnumValue = SomeEnum . Value2 } ) ;
82
+ db . DropAndCreateTable < TypeWithEnum > ( ) ;
83
+ db . Save ( new TypeWithEnum { Id = 1 , EnumValue = SomeEnum . Value1 } ) ;
84
+ db . Save ( new TypeWithEnum { Id = 2 , EnumValue = SomeEnum . Value1 } ) ;
85
+ db . Save ( new TypeWithEnum { Id = 3 , EnumValue = SomeEnum . Value2 } ) ;
85
86
86
- var target = con . Where < TypeWithEnum > ( new { EnumValue = SomeEnum . Value1 } ) ;
87
+ var target = db . Where < TypeWithEnum > ( new { EnumValue = SomeEnum . Value1 } ) ;
87
88
88
89
Assert . AreEqual ( 2 , target . Count ( ) ) ;
89
90
}
@@ -161,6 +162,40 @@ public void Updates_enum_flags_with_int_value()
161
162
}
162
163
}
163
164
165
+ [ Test ]
166
+ public void Does_save_Enum_with_label_by_default ( )
167
+ {
168
+ using ( var db = OpenDbConnection ( ) )
169
+ {
170
+ db . DropAndCreateTable < TypeWithEnum > ( ) ;
171
+
172
+ db . Insert ( new TypeWithEnum { Id = 1 , EnumValue = SomeEnum . Value1 } ) ;
173
+ db . Insert ( new TypeWithEnum { Id = 2 , EnumValue = SomeEnum . Value2 } ) ;
174
+
175
+ var row = db . SingleFmt < TypeWithEnum > (
176
+ "EnumValue" . SqlColumn ( ) + " = {0}" , "Value2" ) ;
177
+
178
+ Assert . That ( row . Id , Is . EqualTo ( 2 ) ) ;
179
+ }
180
+ }
181
+
182
+ [ Test ]
183
+ public void Can_save_Enum_as_Integers ( )
184
+ {
185
+ using ( JsConfig . With ( treatEnumAsInteger : true ) )
186
+ using ( var db = OpenDbConnection ( ) )
187
+ {
188
+ db . DropAndCreateTable < TypeWithEnumAsInt > ( ) ;
189
+
190
+ db . Insert ( new TypeWithEnumAsInt { Id = 1 , EnumValue = SomeEnumAsInt . Value1 } ) ;
191
+ db . Insert ( new TypeWithEnumAsInt { Id = 2 , EnumValue = SomeEnumAsInt . Value2 } ) ;
192
+
193
+ var row = db . SingleFmt < TypeWithEnumAsInt > (
194
+ "EnumValue" . SqlColumn ( ) + " = {0}" , "2" ) ;
195
+
196
+ Assert . That ( row . Id , Is . EqualTo ( 2 ) ) ;
197
+ }
198
+ }
164
199
}
165
200
166
201
@@ -179,9 +214,9 @@ public enum State
179
214
180
215
public enum SomeEnum
181
216
{
182
- Value1 ,
183
- Value2 ,
184
- Value3
217
+ Value1 = 1 ,
218
+ Value2 = 2 ,
219
+ Value3 = 3
185
220
}
186
221
187
222
public class TypeWithEnum
@@ -190,6 +225,19 @@ public class TypeWithEnum
190
225
public SomeEnum EnumValue { get ; set ; }
191
226
}
192
227
228
+ public enum SomeEnumAsInt
229
+ {
230
+ Value1 = 1 ,
231
+ Value2 = 2 ,
232
+ Value3 = 3
233
+ }
234
+
235
+ public class TypeWithEnumAsInt
236
+ {
237
+ public int Id { get ; set ; }
238
+ public SomeEnumAsInt EnumValue { get ; set ; }
239
+ }
240
+
193
241
[ Flags ]
194
242
public enum FlagsEnum
195
243
{
0 commit comments