@@ -68,15 +68,15 @@ public void Settings_should_be_set()
68
68
}
69
69
70
70
[ Test ]
71
- public void CreateCollection_should_execute_the_CreateCollectionOperation (
71
+ public void CreateCollection_should_execute_the_CreateCollectionOperation_when_options_is_generic (
72
72
[ Values ( false , true ) ] bool async )
73
73
{
74
74
var storageEngine = new BsonDocument ( "awesome" , true ) ;
75
75
var options = new CreateCollectionOptions < BsonDocument >
76
76
{
77
77
AutoIndexId = false ,
78
78
Capped = true ,
79
- IndexOptionDefaults = new IndexOptionDefaults { StorageEngine = new BsonDocument ( "x" , 1 ) } ,
79
+ IndexOptionDefaults = new IndexOptionDefaults { StorageEngine = new BsonDocument ( "x" , 1 ) } ,
80
80
MaxDocuments = 10 ,
81
81
MaxSize = 11 ,
82
82
StorageEngine = storageEngine ,
@@ -115,6 +115,83 @@ public void CreateCollection_should_execute_the_CreateCollectionOperation(
115
115
op . Validator . Should ( ) . Be( renderedValidator ) ;
116
116
}
117
117
118
+ [ Test ]
119
+ public void CreateCollection_should_execute_the_CreateCollectionOperation_when_options_is_not_generic (
120
+ [ Values ( false , true ) ] bool async )
121
+ {
122
+ var storageEngine = new BsonDocument ( "awesome", true ) ;
123
+ var options = new CreateCollectionOptions
124
+ {
125
+ AutoIndexId = false ,
126
+ Capped = true ,
127
+ IndexOptionDefaults = new IndexOptionDefaults { StorageEngine = new BsonDocument ( "x" , 1 ) } ,
128
+ MaxDocuments = 10 ,
129
+ MaxSize = 11 ,
130
+ StorageEngine = storageEngine ,
131
+ UsePowerOf2Sizes = false ,
132
+ ValidationAction = DocumentValidationAction . Warn ,
133
+ ValidationLevel = DocumentValidationLevel . Off
134
+ } ;
135
+
136
+ if ( async)
137
+ {
138
+ _subject . CreateCollectionAsync ( "bar" , options , CancellationToken . None ) . GetAwaiter ( ) . GetResult ( ) ;
139
+ }
140
+ else
141
+ {
142
+ _subject . CreateCollection ( "bar" , options , CancellationToken . None ) ;
143
+ }
144
+
145
+ var call = _operationExecutor . GetWriteCall < BsonDocument > ( ) ;
146
+
147
+ call. Operation . Should ( ) . BeOfType < CreateCollectionOperation > ( ) ;
148
+ var op = ( CreateCollectionOperation ) call . Operation ;
149
+ op. CollectionNamespace . Should ( ) . Be ( new CollectionNamespace ( new DatabaseNamespace ( "foo" ) , "bar" ) ) ;
150
+ op . AutoIndexId . Should ( ) . Be ( options . AutoIndexId ) ;
151
+ op . Capped . Should ( ) . Be ( options . Capped ) ;
152
+ op . IndexOptionDefaults . ToBsonDocument ( ) . Should ( ) . Be ( options . IndexOptionDefaults . ToBsonDocument ( ) ) ;
153
+ op . MaxDocuments . Should ( ) . Be ( options . MaxDocuments ) ;
154
+ op . MaxSize . Should ( ) . Be ( options . MaxSize ) ;
155
+ op . StorageEngine . Should ( ) . Be ( storageEngine ) ;
156
+ op . UsePowerOf2Sizes . Should ( ) . Be ( options . UsePowerOf2Sizes ) ;
157
+ op . ValidationAction . Should ( ) . Be ( options . ValidationAction ) ;
158
+ op . ValidationLevel . Should ( ) . Be ( options . ValidationLevel ) ;
159
+ op . Validator . Should ( ) . BeNull ( ) ;
160
+ }
161
+
162
+ [ Test ]
163
+ public void CreateCollection_should_execute_the_CreateCollectionOperation_when_options_is_null(
164
+ [ Values ( false , true ) ] bool async)
165
+ {
166
+ var storageEngine = new BsonDocument ( "awesome" , true ) ;
167
+ CreateCollectionOptions options = null ;
168
+
169
+ if ( async)
170
+ {
171
+ _subject . CreateCollectionAsync ( "bar" , options , CancellationToken . None ) . GetAwaiter ( ) . GetResult ( ) ;
172
+ }
173
+ else
174
+ {
175
+ _subject . CreateCollection ( "bar" , options , CancellationToken . None ) ;
176
+ }
177
+
178
+ var call = _operationExecutor . GetWriteCall < BsonDocument > ( ) ;
179
+
180
+ call. Operation . Should ( ) . BeOfType < CreateCollectionOperation > ( ) ;
181
+ var op = ( CreateCollectionOperation ) call . Operation ;
182
+ op. CollectionNamespace . Should ( ) . Be ( new CollectionNamespace ( new DatabaseNamespace ( "foo" ) , "bar" ) ) ;
183
+ op . AutoIndexId . Should ( ) . NotHaveValue ( ) ;
184
+ op . Capped . Should ( ) . NotHaveValue ( ) ;
185
+ op . IndexOptionDefaults . Should ( ) . BeNull ( ) ;
186
+ op . MaxDocuments . Should ( ) . NotHaveValue ( ) ;
187
+ op . MaxSize . Should ( ) . NotHaveValue ( ) ;
188
+ op . StorageEngine . Should ( ) . BeNull ( ) ;
189
+ op . UsePowerOf2Sizes . Should ( ) . NotHaveValue ( ) ;
190
+ op . ValidationAction . Should ( ) . BeNull ( ) ;
191
+ op . ValidationLevel . Should ( ) . BeNull ( ) ;
192
+ op . Validator . Should ( ) . BeNull ( ) ;
193
+ }
194
+
118
195
[ Test ]
119
196
public void DropCollection_should_execute_the_DropCollectionOperation(
120
197
[ Values ( false , true ) ] bool async)
0 commit comments