@@ -24,9 +24,13 @@ class UpdatesBuildersTest {
24
24
@BsonId val id : Int ,
25
25
val color : String ,
26
26
val qty : Int? ,
27
- val vendor : List <String >? ,
27
+ val vendor : List <Vendor >? ,
28
28
val lastModified : LocalDateTime ?
29
29
)
30
+
31
+ data class Vendor (
32
+ val name : String ,
33
+ )
30
34
// :snippet-end:
31
35
32
36
companion object {
@@ -51,7 +55,7 @@ class UpdatesBuildersTest {
51
55
fun beforeEach () {
52
56
runBlocking {
53
57
val date = LocalDateTime .of(2000 , 1 , 1 ,7 ,0 ,0 ) // Jan 1, 2000, 7:00:00
54
- val redPaint = PaintOrder (1 , " red" , 5 , listOf (" A" , " D" , " M" ), date)
58
+ val redPaint = PaintOrder (1 , " red" , 5 , listOf (Vendor ( " A" ), Vendor ( " D" ), Vendor ( " M" ) ), date)
55
59
collection.insertOne(redPaint)
56
60
}
57
61
}
@@ -193,10 +197,10 @@ class UpdatesBuildersTest {
193
197
fun addToSetUpdateTest () = runBlocking {
194
198
// :snippet-start: add-to-set-update
195
199
val filter = Filters .eq(" _id" , 1 )
196
- val update = Updates .addToSet(PaintOrder ::vendor.name, " C" )
200
+ val update = Updates .addToSet(PaintOrder ::vendor.name, Vendor ( " C" ) )
197
201
collection.updateOne(filter, update)
198
202
// :snippet-end:
199
- assertEquals(listOf (" A" , " D" , " M" , " C" ), getDocument().vendor)
203
+ assertEquals(listOf (Vendor ( " A" ), Vendor ( " D" ), Vendor ( " M" ), Vendor ( " C" ) ), getDocument().vendor)
200
204
}
201
205
202
206
@Test
@@ -206,37 +210,37 @@ class UpdatesBuildersTest {
206
210
val update = Updates .popFirst(PaintOrder ::vendor.name)
207
211
collection.updateOne(filter, update)
208
212
// :snippet-end:
209
- assertEquals(listOf (" D" , " M" ), getDocument().vendor)
213
+ assertEquals(listOf (Vendor ( " D" ), Vendor ( " M" ) ), getDocument().vendor)
210
214
}
211
215
212
216
@Test
213
217
fun pullAllUpdateTest () = runBlocking {
214
218
// :snippet-start: pull-all-update
215
219
val filter = Filters .eq(" _id" , 1 )
216
- val update = Updates .pullAll(PaintOrder ::vendor.name, listOf (" A" , " M" ))
220
+ val update = Updates .pullAll(PaintOrder ::vendor.name, listOf (Vendor ( " A" ), Vendor ( " M" ) ))
217
221
collection.updateOne(filter, update)
218
222
// :snippet-end:
219
- assertEquals(listOf (" D" ), getDocument().vendor)
223
+ assertEquals(listOf (Vendor ( " D" ) ), getDocument().vendor)
220
224
}
221
225
222
226
@Test
223
227
fun pullUpdateTest () = runBlocking {
224
228
// :snippet-start: pull-update
225
229
val filter = Filters .eq(" _id" , 1 )
226
- val update = Updates .pull(PaintOrder ::vendor.name, " D" )
230
+ val update = Updates .pull(PaintOrder ::vendor.name, Vendor ( " D" ) )
227
231
collection.updateOne(filter, update)
228
232
// :snippet-end:
229
- assertEquals(listOf (" A" , " M" ), getDocument().vendor)
233
+ assertEquals(listOf (Vendor ( " A" ), Vendor ( " M" ) ), getDocument().vendor)
230
234
}
231
235
232
236
@Test
233
237
fun pushUpdateTest () = runBlocking {
234
238
// :snippet-start: push-update
235
239
val filter = Filters .eq(" _id" , 1 )
236
- val update = Updates .push(PaintOrder ::vendor.name, " Q" )
240
+ val update = Updates .push(PaintOrder ::vendor.name, Vendor ( " Q" ) )
237
241
collection.updateOne(filter, update)
238
242
// :snippet-end:
239
- assertEquals(listOf (" A" , " D" , " M" , " Q" ), getDocument().vendor)
243
+ assertEquals(listOf (Vendor ( " A" ), Vendor ( " D" ), Vendor ( " M" ), Vendor ( " Q" ) ), getDocument().vendor)
240
244
}
241
245
242
246
@Test
@@ -246,13 +250,13 @@ class UpdatesBuildersTest {
246
250
val update = Updates .combine(
247
251
Updates .set(PaintOrder ::color.name, " purple" ),
248
252
Updates .inc(PaintOrder ::qty.name, 6 ),
249
- Updates .push(PaintOrder ::vendor.name, " R" )
253
+ Updates .push(PaintOrder ::vendor.name, Vendor ( " R" ) )
250
254
)
251
255
collection.updateOne(filter, update)
252
256
// :snippet-end:
253
257
val doc = getDocument()
254
258
assertEquals(" purple" , doc.color)
255
259
assertEquals(11 , doc.qty)
256
- assertEquals(listOf (" A" , " D" , " M" , " R" ), doc.vendor)
260
+ assertEquals(listOf (Vendor ( " A" ), Vendor ( " D" ), Vendor ( " M" ), Vendor ( " R" ) ), doc.vendor)
257
261
}
258
262
}
0 commit comments