Skip to content

Commit

Permalink
Add tests for BulkOperations extensions.
Browse files Browse the repository at this point in the history
Signed-off-by: audghks1996 <[email protected]>
  • Loading branch information
2tsumo-hitori committed Mar 3, 2025
1 parent 9239c51 commit 549b05d
Showing 1 changed file with 74 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
/*
* Copyright 2017-2025 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.data.mongodb.core

import io.mockk.mockk
import io.mockk.verify
import org.junit.Test
import org.springframework.data.mongodb.core.query.Criteria
import org.springframework.data.mongodb.core.query.Query
import org.springframework.data.mongodb.core.query.Update
import org.springframework.data.mongodb.core.query.UpdateDefinition
import org.springframework.data.util.Pair.of

/**
* @author 2tsumo-hitori
*/
class BulkOperationExtensionsTests {

private val bulkOperation = mockk<BulkOperations>(relaxed = true)

@Test // GH-4911
fun `BulkOperation#updateMulti#updates() using kotlin#Pair should call its Java counterpart`() {
val list : MutableList<Pair<Query, UpdateDefinition>> = mutableListOf()
list.add(where("value", "v2") to set("value", "v3"))

bulkOperation.updateMulti(list)

val expected = list.map { (query, update) -> of(query, update) }
verify { bulkOperation.updateMulti(expected) }
}

@Test // GH-4911
fun `BulkOperation#upsert#updates() using kotlin#Pair should call its Java counterpart`() {
val list : MutableList<Pair<Query, Update>> = mutableListOf()
list.add(where("value", "v2") to set("value", "v3"))

bulkOperation.upsert(list)

val expected = list.map { (query, update) -> of(query, update) }
verify { bulkOperation.upsert(expected) }
}

@Test // GH-4911
fun `BulkOperation#updateOne#updates() using kotlin#Pair should call its Java counterpart`() {
val list : MutableList<Pair<Query, UpdateDefinition>> = mutableListOf()
list.add(where("value", "v2") to set("value", "v3"))

bulkOperation.updateOne(list)

val expected = list.map { (query, update) -> of(query, update) }
verify { bulkOperation.updateOne(expected) }
}

private fun where(field: String, value: String): Query {
return Query().addCriteria(Criteria.where(field).`is`(value))
}

private fun set(field: String, value: String): Update {
return Update().set(field, value)
}
}

0 comments on commit 549b05d

Please sign in to comment.