Skip to content

Commit

Permalink
Add integration test for array parameter in MySQL (cashapp#1700)
Browse files Browse the repository at this point in the history
* Add integration test for array parameter in MySQL

* Clean up Before/After

* Fix test after rebase
  • Loading branch information
JGulbronson committed May 31, 2020
1 parent 39fbc6b commit c384a2c
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,9 @@ VALUES (?, ?, ?);
selectDogs:
SELECT *
FROM dog;

selectDogsByBreedAndNames:
SELECT *
FROM dog
WHERE breed = ?
AND name IN ?;
Original file line number Diff line number Diff line change
Expand Up @@ -2,28 +2,64 @@ package com.squareup.sqldelight.mysql.integration

import com.google.common.truth.Truth.assertThat
import com.squareup.sqldelight.sqlite.driver.JdbcDriver
import java.sql.Connection
import java.sql.DriverManager
import org.junit.After
import org.junit.Before
import org.junit.Test

class MySqlTest {
val conn = DriverManager.getConnection("jdbc:tc:mysql:///myDb")
val driver = object : JdbcDriver() {
override fun getConnection() = conn
}
val database = MyDatabase(driver)
lateinit var connection: Connection
lateinit var dogQueries: DogQueries

@Before
fun before() {
connection = DriverManager.getConnection("jdbc:tc:mysql:///myDb")
val driver = object : JdbcDriver() {
override fun getConnection() = connection
}
val database = MyDatabase(driver)

@Before fun before() {
MyDatabase.Schema.create(driver)
dogQueries = database.dogQueries
}

@After
fun after() {
connection.close()
}

@Test fun simpleSelect() {
database.dogQueries.insertDog("Tilda", "Pomeranian", true)
assertThat(database.dogQueries.selectDogs().executeAsOne())
dogQueries.insertDog("Tilda", "Pomeranian", true)
assertThat(dogQueries.selectDogs().executeAsOne())
.isEqualTo(Dog(
name = "Tilda",
breed = "Pomeranian",
is_good = true
))
}

@Test
fun simpleSelectWithIn() {
dogQueries.insertDog("Tilda", "Pomeranian", true)
dogQueries.insertDog("Tucker", "Portuguese Water Dog", true)
dogQueries.insertDog("Cujo", "Pomeranian", false)
dogQueries.insertDog("Buddy", "Pomeranian", true)
assertThat(dogQueries.selectDogsByBreedAndNames(
breed = "Pomeranian",
name = listOf("Tilda", "Buddy")
).executeAsList())
.containsExactly(
Dog(
name = "Tilda",
breed = "Pomeranian",
is_good = true
),
Dog(
name = "Buddy",
breed = "Pomeranian",
is_good = true
)
)
}
}

0 comments on commit c384a2c

Please sign in to comment.