57 lines
1.8 KiB
Kotlin
57 lines
1.8 KiB
Kotlin
package solutions.bitbadger.documents.integration.sqlite
|
|
|
|
import org.junit.jupiter.api.DisplayName
|
|
import org.junit.jupiter.api.assertThrows
|
|
import solutions.bitbadger.documents.DocumentException
|
|
import solutions.bitbadger.documents.integration.common.RemoveFields
|
|
import kotlin.test.Test
|
|
|
|
/**
|
|
* SQLite integration tests for the `RemoveFields` object / `removeFieldsBy*` connection extension functions
|
|
*/
|
|
@DisplayName("SQLite - RemoveFields")
|
|
class RemoveFieldsIT {
|
|
|
|
@Test
|
|
@DisplayName("byId removes fields from an existing document")
|
|
fun byIdMatchFields() =
|
|
SQLiteDB().use(RemoveFields::byIdMatchFields)
|
|
|
|
@Test
|
|
@DisplayName("byId succeeds when fields do not exist on an existing document")
|
|
fun byIdMatchNoFields() =
|
|
SQLiteDB().use(RemoveFields::byIdMatchNoFields)
|
|
|
|
@Test
|
|
@DisplayName("byId succeeds when no document exists")
|
|
fun byIdNoMatch() =
|
|
SQLiteDB().use(RemoveFields::byIdNoMatch)
|
|
|
|
@Test
|
|
@DisplayName("byFields removes fields from matching documents")
|
|
fun byFieldsMatchFields() =
|
|
SQLiteDB().use(RemoveFields::byFieldsMatchFields)
|
|
|
|
@Test
|
|
@DisplayName("byFields succeeds when fields do not exist on matching documents")
|
|
fun byFieldsMatchNoFields() =
|
|
SQLiteDB().use(RemoveFields::byFieldsMatchNoFields)
|
|
|
|
@Test
|
|
@DisplayName("byFields succeeds when no matching documents exist")
|
|
fun byFieldsNoMatch() =
|
|
SQLiteDB().use(RemoveFields::byFieldsNoMatch)
|
|
|
|
@Test
|
|
@DisplayName("byContains fails")
|
|
fun byContainsFails() {
|
|
assertThrows<DocumentException> { SQLiteDB().use(RemoveFields::byContainsMatchFields) }
|
|
}
|
|
|
|
@Test
|
|
@DisplayName("byJsonPath fails")
|
|
fun byJsonPathFails() {
|
|
assertThrows<DocumentException> { SQLiteDB().use(RemoveFields::byJsonPathMatchFields) }
|
|
}
|
|
}
|