mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-06-23 02:48:26 +00:00
Minor refactorings
This commit is contained in:
@ -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)
|
||||
|
@ -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 = ? )")"""
|
||||
)
|
||||
}
|
||||
|
@ -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 =
|
||||
|
@ -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 =
|
||||
|
Reference in New Issue
Block a user