Skip to content

Commit

Permalink
Workaround typing changes in dotty/#14043
Browse files Browse the repository at this point in the history
  • Loading branch information
nicolasstucki committed Dec 16, 2021
1 parent 41532f2 commit 5ed25aa
Show file tree
Hide file tree
Showing 13 changed files with 94 additions and 94 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ class ArrayAsyncEncodingSpec extends ArrayEncodingBaseSpec {
inline def q = quote(query[ArraysTestEntity])

"Support all sql base types and `Iterable` implementers" in {
await(ctx.run(q.insert(lift(e))))
await(ctx.run(q.insertValue(lift(e))))
val actual = await(ctx.run(q)).head
actual mustEqual e
baseEntityDeepCheck(actual, e)
Expand All @@ -28,7 +28,7 @@ class ArrayAsyncEncodingSpec extends ArrayEncodingBaseSpec {
case class JodaTimes(timestamps: Seq[JodaLocalDateTime], dates: Seq[JodaLocalDate])
val jE = JodaTimes(Seq(JodaLocalDateTime.now()), Seq(JodaLocalDate.now()))
inline def jQ = quote(querySchema[JodaTimes]("ArraysTestEntity"))
await(ctx.run(jQ.insert(lift(jE))))
await(ctx.run(jQ.insertValue(lift(jE))))
val actual = await(ctx.run(jQ)).head
actual.timestamps mustBe jE.timestamps
actual.dates mustBe jE.dates
Expand All @@ -38,7 +38,7 @@ class ArrayAsyncEncodingSpec extends ArrayEncodingBaseSpec {
case class JodaTimes(timestamps: Seq[JodaDateTime])
val jE = JodaTimes(Seq(JodaDateTime.now()))
inline def jQ = quote(querySchema[JodaTimes]("ArraysTestEntity"))
await(ctx.run(jQ.insert(lift(jE))))
await(ctx.run(jQ.insertValue(lift(jE))))
val actual = await(ctx.run(jQ)).head
actual.timestamps mustBe jE.timestamps
}
Expand All @@ -47,15 +47,15 @@ class ArrayAsyncEncodingSpec extends ArrayEncodingBaseSpec {
case class Java8Times(timestamps: Seq[LocalDateTime], dates: Seq[LocalDate])
val jE = Java8Times(Seq(LocalDateTime.now()), Seq(LocalDate.now()))
inline def jQ = quote(querySchema[Java8Times]("ArraysTestEntity"))
await(ctx.run(jQ.insert(lift(jE))))
await(ctx.run(jQ.insertValue(lift(jE))))
val actual = await(ctx.run(jQ)).head
actual.timestamps mustBe jE.timestamps
actual.dates mustBe jE.dates
}

"Support Iterable encoding basing on MappedEncoding" in {
inline def wrapQ = quote(querySchema[WrapEntity]("ArraysTestEntity"))
await(ctx.run(wrapQ.insert(lift(wrapE))))
await(ctx.run(wrapQ.insertValue(lift(wrapE))))
await(ctx.run(wrapQ)).head mustBe wrapE
}

Expand All @@ -66,7 +66,7 @@ class ArrayAsyncEncodingSpec extends ArrayEncodingBaseSpec {
arrayDecoder[LocalDate, LocalDate, Col](identity)
}
import newCtx._
inline def insertQ = quote { query[ArraysTestEntity].insert(lift(e)) }
inline def insertQ = quote { query[ArraysTestEntity].insertValue(lift(e)) }
await(newCtx.run(insertQ))
intercept[IllegalStateException] {
await(newCtx.run(query[ArraysTestEntity])).head mustBe e
Expand All @@ -75,7 +75,7 @@ class ArrayAsyncEncodingSpec extends ArrayEncodingBaseSpec {
}

"Arrays in where clause" in {
await(ctx.run(q.insert(lift(e))))
await(ctx.run(q.insertValue(lift(e))))
val actual1 = await(ctx.run(q.filter(_.texts == lift(List("test")))))
val actual2 = await(ctx.run(q.filter(_.texts == lift(List("test2")))))
baseEntityDeepCheck(actual1.head, e)
Expand Down Expand Up @@ -154,7 +154,7 @@ class ArrayAsyncEncodingSpec extends ArrayEncodingBaseSpec {
inline def realEntity = quote {
querySchema[RealEncodingTestEntity]("EncodingTestEntity")
}
await(ctx.run(realEntity.insert(lift(insertValue))))
await(ctx.run(realEntity.insertValue(lift(insertValue))))

case class EncodingTestEntity(v1: List[String])
intercept[IllegalStateException](await(ctx.run(query[EncodingTestEntity])))
Expand All @@ -165,7 +165,7 @@ class ArrayAsyncEncodingSpec extends ArrayEncodingBaseSpec {
val q = quote(query[ArraysTestEntity])

"Support all sql base types and `Iterable` implementers" in {
await(ctx.run(q.insert(lift(e))))
await(ctx.run(q.insertValue(lift(e))))
val actual = await(ctx.run(q)).head
actual mustEqual e
baseEntityDeepCheck(actual, e)
Expand All @@ -175,7 +175,7 @@ class ArrayAsyncEncodingSpec extends ArrayEncodingBaseSpec {
case class JodaTimes(timestamps: Seq[JodaLocalDateTime], dates: Seq[JodaLocalDate])
val jE = JodaTimes(Seq(JodaLocalDateTime.now()), Seq(JodaLocalDate.now()))
val jQ = quote(querySchema[JodaTimes]("ArraysTestEntity"))
await(ctx.run(jQ.insert(lift(jE))))
await(ctx.run(jQ.insertValue(lift(jE))))
val actual = await(ctx.run(jQ)).head
actual.timestamps mustBe jE.timestamps
actual.dates mustBe jE.dates
Expand All @@ -185,7 +185,7 @@ class ArrayAsyncEncodingSpec extends ArrayEncodingBaseSpec {
case class JodaTimes(timestamps: Seq[JodaDateTime])
val jE = JodaTimes(Seq(JodaDateTime.now()))
val jQ = quote(querySchema[JodaTimes]("ArraysTestEntity"))
await(ctx.run(jQ.insert(lift(jE))))
await(ctx.run(jQ.insertValue(lift(jE))))
val actual = await(ctx.run(jQ)).head
actual.timestamps mustBe jE.timestamps
}
Expand All @@ -194,15 +194,15 @@ class ArrayAsyncEncodingSpec extends ArrayEncodingBaseSpec {
case class Java8Times(timestamps: Seq[LocalDateTime], dates: Seq[LocalDate])
val jE = Java8Times(Seq(LocalDateTime.now()), Seq(LocalDate.now()))
val jQ = quote(querySchema[Java8Times]("ArraysTestEntity"))
await(ctx.run(jQ.insert(lift(jE))))
await(ctx.run(jQ.insertValue(lift(jE))))
val actual = await(ctx.run(jQ)).head
actual.timestamps mustBe jE.timestamps
actual.dates mustBe jE.dates
}

"Support Iterable encoding basing on MappedEncoding" in {
val wrapQ = quote(querySchema[WrapEntity]("ArraysTestEntity"))
await(ctx.run(wrapQ.insert(lift(wrapE))))
await(ctx.run(wrapQ.insertValue(lift(wrapE))))
await(ctx.run(wrapQ)).head mustBe wrapE
}

Expand All @@ -213,7 +213,7 @@ class ArrayAsyncEncodingSpec extends ArrayEncodingBaseSpec {
arrayDecoder[LocalDate, LocalDate, Col](identity)
}
import newCtx._
val insertQ = quote { query[ArraysTestEntity].insert(lift(e)) }
val insertQ = quote { query[ArraysTestEntity].insertValue(lift(e)) }
await(newCtx.run(insertQ))
intercept[IllegalStateException] {
await(newCtx.run(query[ArraysTestEntity])).head mustBe e
Expand All @@ -222,7 +222,7 @@ class ArrayAsyncEncodingSpec extends ArrayEncodingBaseSpec {
}

"Arrays in where clause" in {
await(ctx.run(q.insert(lift(e))))
await(ctx.run(q.insertValue(lift(e))))
val actual1 = await(ctx.run(q.filter(_.texts == lift(List("test")))))
val actual2 = await(ctx.run(q.filter(_.texts == lift(List("test2")))))
baseEntityDeepCheck(actual1.head, e)
Expand Down Expand Up @@ -301,7 +301,7 @@ class ArrayAsyncEncodingSpec extends ArrayEncodingBaseSpec {
val realEntity = quote {
querySchema[RealEncodingTestEntity]("EncodingTestEntity")
}
await(ctx.run(realEntity.insert(lift(insertValue))))
await(ctx.run(realEntity.insertValue(lift(insertValue))))

case class EncodingTestEntity(v1: List[String])
intercept[IllegalStateException](await(ctx.run(query[EncodingTestEntity])))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ class PostgresAsyncEncodingSpec extends EncodingSpec {
val rez0 = Await.result(testContext.run(q0), Duration.Inf)

//insert new uuid
val rez1 = Await.result(testContext.run(query[EncodingUUIDTestEntity].insert(lift(EncodingUUIDTestEntity(testUUID)))), Duration.Inf)
val rez1 = Await.result(testContext.run(query[EncodingUUIDTestEntity].insertValue(lift(EncodingUUIDTestEntity(testUUID)))), Duration.Inf)

//verify you can get the uuid back from the db
val q2 = quote(query[EncodingUUIDTestEntity].map(p => p.v1))
Expand Down Expand Up @@ -95,7 +95,7 @@ class PostgresAsyncEncodingSpec extends EncodingSpec {
val entity = DateEncodingTestEntity(JodaLocalDate.now, JodaLocalDateTime.now, JodaDateTime.now)
val r = for {
_ <- testContext.run(query[DateEncodingTestEntity].delete)
_ <- testContext.run(query[DateEncodingTestEntity].insert(lift(entity)))
_ <- testContext.run(query[DateEncodingTestEntity].insertValue(lift(entity)))
result <- testContext.run(query[DateEncodingTestEntity])
} yield result
Await.result(r, Duration.Inf) mustBe Seq(entity)
Expand All @@ -106,7 +106,7 @@ class PostgresAsyncEncodingSpec extends EncodingSpec {
val entity = DateEncodingTestEntity(LocalDate.now, LocalDateTime.now, ZonedDateTime.now)
val r = for {
_ <- testContext.run(query[DateEncodingTestEntity].delete)
_ <- testContext.run(query[DateEncodingTestEntity].insert(lift(entity)))
_ <- testContext.run(query[DateEncodingTestEntity].insertValue(lift(entity)))
result <- testContext.run(query[DateEncodingTestEntity])
} yield result
Await.result(r, Duration.Inf) mustBe Seq(entity)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,15 @@ class PostgresJAsyncContextSpec extends Spec {

"Insert with returning with single column table" in {
val inserted: Long = await(testContext.run {
qr4.insert(lift(TestEntity4(0))).returningGenerated(_.i)
qr4.insertValue(lift(TestEntity4(0))).returningGenerated(_.i)
})
await(testContext.run(qr4.filter(_.i == lift(inserted))))
.head.i mustBe inserted
}
"Insert with returning with multiple columns" in {
await(testContext.run(qr1.delete))
val inserted = await(testContext.run {
qr1.insert(lift(TestEntity("foo", 1, 18L, Some(123), true))).returning(r => (r.i, r.s, r.o))
qr1.insertValue(lift(TestEntity("foo", 1, 18L, Some(123), true))).returning(r => (r.i, r.s, r.o))
})
(1, "foo", Some(123)) mustBe inserted
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,16 +27,16 @@ class TransactionSpec extends PeopleSpec {
for {
_ <- testContext.run(query[Couple].delete)
_ <- testContext.run(query[Person].delete)
} yield {}
} yield {}
}
}
Try {
await {
testContext.transaction { implicit ec =>
for {
_ <- testContext.run(query[Couple].insert(lift(Couple("Alex", "Bert"))))
_ <- testContext.run(query[Couple].insertValue(lift(Couple("Alex", "Bert"))))
_ <- scala.concurrent.Future { throw new RuntimeException("Blahblahblah") }
_ <- testContext.run(query[Person].insert(lift(Person("Alex", 60))))
_ <- testContext.run(query[Person].insertValue(lift(Person("Alex", 60))))
} yield {}
}
}
Expand All @@ -54,18 +54,18 @@ class TransactionSpec extends PeopleSpec {
for {
_ <- testContext.run(query[Couple].delete)
_ <- testContext.run(query[Person].delete)
} yield {}
} yield {}
}
}
await {
testContext.transaction { implicit ec =>
for {
_ <- testContext.run(query[Couple].insert(lift(Couple("Alex", "Bert"))))
_ <- testContext.run(query[Person].insert(lift(Person("Alex", 60))))
_ <- testContext.run(query[Couple].insertValue(lift(Couple("Alex", "Bert"))))
_ <- testContext.run(query[Person].insertValue(lift(Person("Alex", 60))))
} yield {}
}
}

await(testContext.run(query[Couple])) mustEqual List(Couple("Alex", "Bert"))
await(testContext.run(query[Person])) mustEqual List(Person("Alex", 60))
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,23 +15,23 @@ class ArrayJdbcEncodingSpec extends ArrayEncodingBaseSpec {
val corrected = e.copy(timestamps = e.timestamps.map(d => new Timestamp(d.getTime)))

"Support all sql base types and `Seq` implementers" in {
ctx.run(q.insert(lift(corrected)))
ctx.run(q.insertValue(lift(corrected)))
val actual = ctx.run(q).head
actual mustEqual corrected
baseEntityDeepCheck(actual, corrected)
}

"Support Seq encoding basing on MappedEncoding" in {
val wrapQ = quote(querySchema[WrapEntity]("ArraysTestEntity"))
ctx.run(wrapQ.insert(lift(wrapE)))
ctx.run(wrapQ.insertValue(lift(wrapE)))
ctx.run(wrapQ).head.texts mustBe wrapE.texts
}

"Timestamps" in {
case class Timestamps(timestamps: List[Timestamp])
val tE = Timestamps(List(new Timestamp(System.currentTimeMillis())))
val tQ = quote(querySchema[Timestamps]("ArraysTestEntity"))
ctx.run(tQ.insert(lift(tE)))
ctx.run(tQ.insertValue(lift(tE)))
ctx.run(tQ).head.timestamps mustBe tE.timestamps
}

Expand All @@ -42,7 +42,7 @@ class ArrayJdbcEncodingSpec extends ArrayEncodingBaseSpec {
arrayDecoder[LocalDate, LocalDate, Col](identity)
}
import newCtx._
newCtx.run(query[ArraysTestEntity].insert(lift(corrected)))
newCtx.run(query[ArraysTestEntity].insertValue(lift(corrected)))
intercept[IllegalStateException] {
newCtx.run(query[ArraysTestEntity]).head mustBe corrected
}
Expand All @@ -57,12 +57,12 @@ class ArrayJdbcEncodingSpec extends ArrayEncodingBaseSpec {
implicit def arrayUUIDEncoder[Col <: Seq[UUID]]: Encoder[Col] = arrayRawEncoder[UUID, Col]("uuid")
implicit def arrayUUIDDecoder[Col <: Seq[UUID]](implicit bf: CBF[UUID, Col]): Decoder[Col] = arrayRawDecoder[UUID, Col]

ctx.run(q.insert(lift(e)))
ctx.run(q.insertValue(lift(e)))
ctx.run(q).head.uuids mustBe e.uuids
}

"Arrays in where clause" in {
ctx.run(q.insert(lift(corrected)))
ctx.run(q.insertValue(lift(corrected)))
val actual1 = ctx.run(q.filter(_.texts == lift(List("test"))))
val actual2 = ctx.run(q.filter(_.texts == lift(List("test2"))))
actual1 mustEqual List(corrected)
Expand All @@ -71,7 +71,7 @@ class ArrayJdbcEncodingSpec extends ArrayEncodingBaseSpec {

"empty array on found null" in {
case class ArraysTestEntity(texts: Option[List[String]])
ctx.run(query[ArraysTestEntity].insert(lift(ArraysTestEntity(None))))
ctx.run(query[ArraysTestEntity].insertValue(lift(ArraysTestEntity(None))))

case class E(texts: List[String])
ctx.run(querySchema[E]("ArraysTestEntity")).headOption.map(_.texts) mustBe Some(Nil)
Expand Down
Loading

0 comments on commit 5ed25aa

Please sign in to comment.