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 { SQLiteDB().use(RemoveFields::byContainsMatchFields) } } @Test @DisplayName("byJsonPath fails") fun byJsonPathFails() { assertThrows { SQLiteDB().use(RemoveFields::byJsonPathMatchFields) } } }