WIP on tests and query migration

This commit is contained in:
2025-02-21 22:59:02 -05:00
parent cefd2daa52
commit ee4f25aec0
2 changed files with 262 additions and 43 deletions

View File

@@ -399,30 +399,78 @@ class QueryTest {
}
@Test
@DisplayName("count generates correctly")
fun count() =
assertEquals("SELECT COUNT(*) AS it FROM $tbl", Query.count(tbl), "Count query not constructed correctly")
@DisplayName("Count.all generates correctly")
fun countAll() =
assertEquals("SELECT COUNT(*) AS it FROM $tbl", Query.Count.all(tbl), "Count query not constructed correctly")
@Test
@DisplayName("exists generates correctly")
fun exists() =
assertEquals("SELECT EXISTS (SELECT 1 FROM $tbl WHERE turkey) AS it", Query.exists(tbl, "turkey"),
"Exists query not constructed correctly")
@DisplayName("Count.byFields generates correctly (PostgreSQL)")
fun countByFieldsPostgres() {
Configuration.connectionString = pg
assertEquals("SELECT COUNT(*) AS it FROM $tbl WHERE data->>'test' = :field0",
Query.Count.byFields(tbl, listOf(Field.equal("test", "", ":field0"))),
"Count query not constructed correctly")
}
@Test
@DisplayName("find generates correctly")
fun find() =
assertEquals("SELECT data FROM $tbl", Query.find(tbl), "Find query not constructed correctly")
@DisplayName("Count.byFields generates correctly (PostgreSQL)")
fun countByFieldsSQLite() {
Configuration.connectionString = lite
assertEquals("SELECT COUNT(*) AS it FROM $tbl WHERE data->>'test' = :field0",
Query.Count.byFields(tbl, listOf(Field.equal("test", "", ":field0"))),
"Count query not constructed correctly")
}
@Test
@DisplayName("Count.byContains generates correctly (PostgreSQL)")
fun countByContainsPostgres() {
Configuration.connectionString = pg
assertEquals("SELECT COUNT(*) AS it FROM $tbl WHERE data @> :criteria", Query.Count.byContains(tbl),
"Count query not constructed correctly")
}
@Test
@DisplayName("Count.byContains fails (SQLite)")
fun countByContainsSQLite() {
Configuration.connectionString = lite
assertThrows<DocumentException> { Query.Count.byContains(tbl) }
}
@Test
@DisplayName("Count.byJsonPath generates correctly (PostgreSQL)")
fun countByJsonPathPostgres() {
Configuration.connectionString = pg
assertEquals("SELECT COUNT(*) AS it FROM $tbl WHERE jsonb_path_exists(data, :path::jsonpath)",
Query.Count.byJsonPath(tbl), "Count query not constructed correctly")
}
@Test
@DisplayName("Count.byJsonPath fails (SQLite)")
fun countByJsonPathSQLite() {
Configuration.connectionString = lite
assertThrows<DocumentException> { Query.Count.byJsonPath(tbl) }
}
// @Test
// @DisplayName("exists generates correctly")
// fun exists() =
// assertEquals("SELECT EXISTS (SELECT 1 FROM $tbl WHERE turkey) AS it", Query.exists(tbl, "turkey"),
// "Exists query not constructed correctly")
@Test
@DisplayName("Find.all generates correctly")
fun findAll() =
assertEquals("SELECT data FROM $tbl", Query.Find.all(tbl), "Find query not constructed correctly")
@Test
@DisplayName("update generates successfully")
fun update() =
assertEquals("UPDATE $tbl SET data = :data", Query.update(tbl), "Update query not constructed correctly")
@Test
@DisplayName("delete generates successfully")
fun delete() =
assertEquals("DELETE FROM $tbl", Query.delete(tbl), "Delete query not constructed correctly")
// @Test
// @DisplayName("delete generates successfully")
// fun delete() =
// assertEquals("DELETE FROM $tbl", Query.delete(tbl), "Delete query not constructed correctly")
@Test
@DisplayName("orderBy generates for no fields")