Skip to content

Commit

Permalink
DOPE-246: added assertions for all rows
Browse files Browse the repository at this point in the history
  • Loading branch information
martinagallati committed Nov 27, 2024
1 parent 3aec4d7 commit c27fbca
Show file tree
Hide file tree
Showing 4 changed files with 52 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ import ch.ergon.dope.integrationTest.BaseIntegrationTest
import ch.ergon.dope.integrationTest.TestCouchbaseDatabase.testBucket
import ch.ergon.dope.integrationTest.toMapValues
import ch.ergon.dope.integrationTest.tryUntil
import ch.ergon.dope.resolvable.clause.model.OrderByType.ASC
import ch.ergon.dope.resolvable.clause.model.OrderByType.DESC
import ch.ergon.dope.resolvable.clause.model.joinHint.HashOrNestedLoopHint.NESTED_LOOP
import ch.ergon.dope.resolvable.clause.model.joinHint.indexHint
import ch.ergon.dope.resolvable.expression.alias
Expand Down Expand Up @@ -34,16 +36,20 @@ class JoinIntegrationTest : BaseIntegrationTest() {
.join(
orderAlias,
orderEmployeeIdField.isEqualTo(meta(employeeAlias).id),
)
.build()
).orderBy(
orderNumberField,
ASC,
).build()

tryUntil {
val queryResult = queryWithoutParameters(dopeQuery)
val result = queryResult.toMapValues()

assertEquals(5, queryResult.rows.size)
assertEquals("employee1", result["name"])
assertEquals("order1", result["orderNumber"])
assertEquals(mapOf("name" to "employee1", "orderNumber" to "order1"), queryResult.toMapValues(rowNumber = 0))
assertEquals(mapOf("name" to "employee2", "orderNumber" to "order2"), queryResult.toMapValues(rowNumber = 1))
assertEquals(mapOf("name" to "employee3", "orderNumber" to "order3"), queryResult.toMapValues(rowNumber = 2))
assertEquals(mapOf("name" to "employee4", "orderNumber" to "order4"), queryResult.toMapValues(rowNumber = 3))
assertEquals(mapOf("name" to "employee5", "orderNumber" to "order5"), queryResult.toMapValues(rowNumber = 4))
}
}

Expand Down Expand Up @@ -75,17 +81,36 @@ class JoinIntegrationTest : BaseIntegrationTest() {
clientAlias,
orderClientIdField.isEqualTo(meta(clientAlias).id),
keysOrIndexHint = indexHint(),
).orderBy(
orderNumberField,
DESC,
)
.build()

tryUntil {
val queryResult = queryWithoutParameters(dopeQuery)
val result = queryResult.toMapValues()

assertEquals(5, queryResult.rows.size)
assertEquals("order1", result["orderNumber"])
assertEquals("employee1", result["employeeName"])
assertEquals("client1", result["clientName"])
assertEquals(
mapOf("employeeName" to "employee5", "orderNumber" to "order5", "clientName" to "client5"),
queryResult.toMapValues(rowNumber = 0),
)
assertEquals(
mapOf("employeeName" to "employee4", "orderNumber" to "order4", "clientName" to "client4"),
queryResult.toMapValues(rowNumber = 1),
)
assertEquals(
mapOf("employeeName" to "employee3", "orderNumber" to "order3", "clientName" to "client3"),
queryResult.toMapValues(rowNumber = 2),
)
assertEquals(
mapOf("employeeName" to "employee2", "orderNumber" to "order2", "clientName" to "client2"),
queryResult.toMapValues(rowNumber = 3),
)
assertEquals(
mapOf("employeeName" to "employee1", "orderNumber" to "order1", "clientName" to "client1"),
queryResult.toMapValues(rowNumber = 4),
)
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -133,11 +133,18 @@ class SelectQueryIntegrationTest : BaseIntegrationTest() {
)
.from(
testBucket,
).orderBy(
idField,
).build()

val queryResult = queryWithoutParameters(dopeQuery)

assertEquals(5, queryResult.rows.size)
assertEquals(mapOf("id" to 1), queryResult.toMapValues(rowNumber = 0))
assertEquals(mapOf("id" to 2), queryResult.toMapValues(rowNumber = 1))
assertEquals(mapOf("id" to 3), queryResult.toMapValues(rowNumber = 2))
assertEquals(mapOf("id" to 4), queryResult.toMapValues(rowNumber = 3))
assertEquals(mapOf("id" to 5), queryResult.toMapValues(rowNumber = 4))
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import ch.ergon.dope.integrationTest.BaseIntegrationTest
import ch.ergon.dope.integrationTest.TestCouchbaseDatabase.nameField
import ch.ergon.dope.integrationTest.TestCouchbaseDatabase.resetDatabase
import ch.ergon.dope.integrationTest.TestCouchbaseDatabase.testBucket
import ch.ergon.dope.integrationTest.toMapValues
import ch.ergon.dope.integrationTest.tryUntil
import ch.ergon.dope.resolvable.expression.unaliased.type.Field
import ch.ergon.dope.resolvable.fromable.useKeys
Expand Down Expand Up @@ -41,7 +42,7 @@ class UpdateIntegrationTest : BaseIntegrationTest() {

tryUntil {
val queryResult = queryWithoutParameters(dopeQuery)
val result = queryResult.rows[0].contentAs<Map<String, String>>()
val result = queryResult.toMapValues()

assertEquals("newName", result["newField"])
assertNull(result["nameField"])
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,11 +76,17 @@ class ArrayFunctionsIntegrationTest : BaseIntegrationTest() {
arrayRepeat("value".toDopeType(), 10),
),
),
).build()
).orderBy(
meta().id,
)
.build()

val queryResult = queryWithoutParameters(dopeQuery)
val result = queryResult.toRawValues(rowNumber = 2)

assertEquals("employee:3", result)
assertEquals("employee:1", queryResult.toRawValues(rowNumber = 0))
assertEquals("employee:2", queryResult.toRawValues(rowNumber = 1))
assertEquals("employee:3", queryResult.toRawValues(rowNumber = 2))
assertEquals("employee:4", queryResult.toRawValues(rowNumber = 3))
assertEquals("employee:5", queryResult.toRawValues(rowNumber = 4))
}
}

0 comments on commit c27fbca

Please sign in to comment.