forked from uzabase/playtest
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
5 changed files
with
93 additions
and
12 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,9 +1,13 @@ | ||
# DBのテスト | ||
|
||
* テスト用のスキーマ、テーブルを用意する | ||
|
||
## クエリを指定して、一意の値(文字列)を取得する | ||
tags: unimplemented | ||
* "schemaName"スキーマの"tableName"テーブルの、"columnName"を"whereString"で取得した一意の結果が文字列の"test"である | ||
* "schemaName"スキーマの"tableName"テーブルの、"id"を"bf9626ab-6ecd-4f15-be70-ac88fe4ba0f0"で取得した一意の"string_column"が文字列の"test"である | ||
|
||
## クエリを指定して、一意の値(整数)を取得する | ||
tags: unimplemented | ||
* "schemaName"スキーマの"tableName"テーブルの、"columnName"を"whereString"で取得した一意の結果が整数の"test"である | ||
|
||
___ | ||
* テスト用のスキーマ、テーブルを削除する |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,24 +1,79 @@ | ||
package com.uzabase | ||
|
||
import com.thoughtworks.gauge.Step | ||
import com.uzabase.playtest.db.Table | ||
import org.amshove.kluent.shouldBeEqualTo | ||
import java.sql.Connection | ||
import java.sql.DriverManager | ||
|
||
class Database { | ||
@Step("<schemaName>スキーマの<tableName>テーブルの、<columnName>を<whereString>で取得した一意の結果が文字列の<vale>である") | ||
fun getStringParameterFromDatabase(schemaName: String, tableName: String, columnName: String, whereString: String, value: String) { | ||
val query = """ | ||
class Database( | ||
private val url: String = "jdbc:h2:mem:test;MODE=PostgreSQL;DB_CLOSE_DELAY=-1", | ||
private val username: String = "sa", | ||
private val password: String = "", | ||
) { | ||
@Step("<schemaName>スキーマの<tableName>テーブルの、<columnName>を<whereString>で取得した一意の<valueColumn>が文字列の<vale>である") | ||
fun getStringParameterFromDatabase( | ||
schemaName: String, | ||
tableName: String, | ||
columnName: String, | ||
whereString: String, | ||
valueColumn: String, | ||
value: String | ||
) { | ||
val query = """ | ||
select $columnName from $schemaName.$tableName where $whereString; | ||
""".trimIndent() | ||
val result = TODO() //いい感じにSQLを実行する | ||
value shouldBeEqualTo result | ||
} | ||
val result = | ||
Table(url, username, password, schemaName, tableName).where( | ||
columnName, | ||
whereString | ||
).first().column(valueColumn).value | ||
value shouldBeEqualTo result | ||
} | ||
|
||
@Step("<schemaName>スキーマの<tableName>テーブルの、<columnName>を<whereString>で取得した一意の結果が整数の<vale>である") | ||
fun getIntParameterFromDatabase(schemaName: String, tableName: String, columnName: String, whereString: String, value: Int) { | ||
fun getIntParameterFromDatabase( | ||
schemaName: String, | ||
tableName: String, | ||
columnName: String, | ||
whereString: String, | ||
value: Int | ||
) { | ||
val query = """ | ||
select $columnName from $schemaName.$tableName where $whereString; | ||
""".trimIndent() | ||
val result = TODO() //いい感じにSQLを実行する | ||
value shouldBeEqualTo result | ||
} | ||
|
||
@Step("テスト用のスキーマ、テーブルを用意する") | ||
fun setupTable() { | ||
val test = this.javaClass | ||
.classLoader | ||
.getResourceAsStream("data.sql") | ||
?.bufferedReader() | ||
?.use { it.readText() } | ||
|
||
println(test) | ||
|
||
val conn: Connection = | ||
DriverManager.getConnection(url, username, password) | ||
|
||
conn.createStatement().execute(test) | ||
} | ||
|
||
@Step("テスト用のスキーマ、テーブルを削除する") | ||
fun truncateTable() { | ||
val test = this.javaClass | ||
.classLoader | ||
.getResourceAsStream("truncate.sql") | ||
?.bufferedReader() | ||
?.use { it.readText() } | ||
|
||
println(test) | ||
val conn: Connection = | ||
DriverManager.getConnection(url, username, password) | ||
|
||
conn.createStatement().execute(test) | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
CREATE SCHEMA IF NOT EXISTS schemaName; | ||
|
||
CREATE TABLE IF NOT EXISTS schemaName.tableName | ||
( | ||
id UUID primary key, | ||
string_column text | ||
); | ||
|
||
INSERT INTO schemaName.tableName VALUES ('bf9626ab-6ecd-4f15-be70-ac88fe4ba0f0', 'test'); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
TRUNCATE TABLE schemaName.tableName |