Minor refactorings

This commit is contained in:
Eike Kettner
2020-12-13 01:36:12 +01:00
parent d6f28d3eca
commit 613696539f
47 changed files with 450 additions and 326 deletions

View File

@ -1,7 +1,6 @@
package docspell.store.qb
import minitest._
import docspell.store.qb._
import docspell.store.qb.model._
import docspell.store.qb.DSL._
@ -31,9 +30,16 @@ object QueryBuilderTest extends SimpleTestSuite {
val q = Select(proj, tables, cond).orderBy(c.name.desc)
q match {
case Select.Ordered(Select.SimpleSelect(proj, from, where, group), sb, vempty) =>
case Select.Ordered(
Select.SimpleSelect(false, proj, from, where, group),
sb,
vempty
) =>
assert(vempty.isEmpty)
assertEquals(sb, OrderBy(SelectExpr.SelectColumn(c.name), OrderBy.OrderType.Desc))
assertEquals(
sb,
OrderBy(SelectExpr.SelectColumn(c.name, None), OrderBy.OrderType.Desc)
)
assertEquals(11, proj.size)
from match {
case FromExpr.From(_) =>
@ -55,6 +61,8 @@ object QueryBuilderTest extends SimpleTestSuite {
case _ =>
fail("Unexpected join result")
}
case _ =>
fail("Unexpected result")
}
assertEquals(group, None)
assert(where.isDefined)

View File

@ -5,7 +5,7 @@ import docspell.store.qb._
import docspell.store.qb.model._
import docspell.store.qb.DSL._
object DoobieQueryTest extends SimpleTestSuite {
object SelectBuilderTest extends SimpleTestSuite {
test("basic fragment") {
val c = CourseRecord.as("c")
@ -25,7 +25,7 @@ object DoobieQueryTest extends SimpleTestSuite {
val frag = SelectBuilder(q)
assertEquals(
frag.toString,
"""Fragment("SELECT c.id, c.name, c.owner_id, c.lecturer_id, c.lessons FROM course c INNER JOIN person o ON c.owner_id = o.id LEFT JOIN person l ON c.lecturer_id = l.id WHERE (LOWER(c.name) LIKE ? AND o.name = ? )")"""
"""Fragment("SELECT c.id, c.name, c.owner_id, c.lecturer_id, c.lessons FROM course c INNER JOIN person o ON c.owner_id = o.id LEFT JOIN person l ON c.lecturer_id = l.id WHERE (LOWER(c.name) LIKE ? AND o.name = ? )")"""
)
}

View File

@ -1,5 +1,6 @@
package docspell.store.qb.model
import cats.data.NonEmptyList
import docspell.store.qb._
case class CourseRecord(
@ -22,7 +23,7 @@ object CourseRecord {
val lecturerId = Column[Long]("lecturer_id", this)
val lessons = Column[Int]("lessons", this)
val all = List(id, name, ownerId, lecturerId, lessons)
val all = NonEmptyList.of[Column[_]](id, name, ownerId, lecturerId, lessons)
}
def as(alias: String): Table =

View File

@ -1,5 +1,6 @@
package docspell.store.qb.model
import cats.data.NonEmptyList
import docspell.store.qb._
import docspell.common._
@ -15,7 +16,7 @@ object PersonRecord {
val name = Column[String]("name", this)
val created = Column[Timestamp]("created", this)
val all = List(id, name, created)
val all = NonEmptyList.of[Column[_]](id, name, created)
}
def as(alias: String): Table =