Skip to content

Commit 378cf98

Browse files
davin111oshai
authored andcommitted
add test
1 parent fcb963a commit 378cf98

File tree

2 files changed

+65
-22
lines changed

2 files changed

+65
-22
lines changed

r2dbc-mysql/src/test/java/com/github/jasync/r2dbc/mysql/integ/JasyncR2dbcIntegTest.kt

Lines changed: 51 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import io.r2dbc.spi.Parameter
1010
import io.r2dbc.spi.Result
1111
import io.r2dbc.spi.Type
1212
import mu.KotlinLogging
13-
import org.assertj.core.api.Assertions
13+
import org.assertj.core.api.Assertions.assertThat
1414
import org.awaitility.kotlin.await
1515
import org.hamcrest.core.IsEqual
1616
import org.junit.Test
@@ -44,15 +44,15 @@ class JasyncR2dbcIntegTest : R2dbcConnectionHelper() {
4444
.flatMap { result ->
4545
result
4646
.map { row, rowMetadata ->
47-
Assertions.assertThat(row.get("number_tinyint") as Byte).isEqualTo(-100)
48-
Assertions.assertThat(row.get("number_smallint") as Short).isEqualTo(32766)
49-
Assertions.assertThat(row.get("number_mediumint") as Int).isEqualTo(8388607)
50-
Assertions.assertThat(row.get("number_int") as Int).isEqualTo(2147483647)
51-
Assertions.assertThat(row.get("number_bigint") as Long).isEqualTo(9223372036854775807L)
52-
Assertions.assertThat(row.get("number_decimal")).isEqualTo(BigDecimal("450.764491"))
53-
Assertions.assertThat(row.get("number_float")).isEqualTo(14.7F)
54-
Assertions.assertThat(row.get("number_double")).isEqualTo(87650.9876)
55-
Assertions.assertThat(rowMetadata.columnMetadatas.map { it.name }).isEqualTo(
47+
assertThat(row.get("number_tinyint") as Byte).isEqualTo(-100)
48+
assertThat(row.get("number_smallint") as Short).isEqualTo(32766)
49+
assertThat(row.get("number_mediumint") as Int).isEqualTo(8388607)
50+
assertThat(row.get("number_int") as Int).isEqualTo(2147483647)
51+
assertThat(row.get("number_bigint") as Long).isEqualTo(9223372036854775807L)
52+
assertThat(row.get("number_decimal")).isEqualTo(BigDecimal("450.764491"))
53+
assertThat(row.get("number_float")).isEqualTo(14.7F)
54+
assertThat(row.get("number_double")).isEqualTo(87650.9876)
55+
assertThat(rowMetadata.columnMetadatas.map { it.name }).isEqualTo(
5656
listOf(
5757
"id",
5858
"number_tinyint",
@@ -78,8 +78,8 @@ class JasyncR2dbcIntegTest : R2dbcConnectionHelper() {
7878
withConnection { c ->
7979
var filtering = 0
8080
var rows = 0
81-
executeQuery(c, createTable)
82-
executeQuery(c, """INSERT INTO users (name) VALUES ('Boogie Man'),('Dambeldor')""")
81+
executeQuery(c, createUserTable)
82+
executeQuery(c, insertUsers)
8383
val cf = createJasyncConnectionFactory(c)
8484
Mono.from(cf.create())
8585
.flatMapMany { connection ->
@@ -109,8 +109,8 @@ class JasyncR2dbcIntegTest : R2dbcConnectionHelper() {
109109
fun `bind test`() {
110110
withConnection { c ->
111111
var rows = 0
112-
executeQuery(c, createTable)
113-
executeQuery(c, """INSERT INTO users (name) VALUES ('Boogie Man'),('Dambeldor')""")
112+
executeQuery(c, createUserTable)
113+
executeQuery(c, insertUsers)
114114
val cf = createJasyncConnectionFactory(c)
115115
Mono.from(cf.create())
116116
.flatMapMany { connection ->
@@ -139,8 +139,8 @@ class JasyncR2dbcIntegTest : R2dbcConnectionHelper() {
139139
fun `bind test for parametrized`() {
140140
withConnection { c ->
141141
var rows = 0
142-
executeQuery(c, createTable)
143-
executeQuery(c, """INSERT INTO users (name) VALUES ('Boogie Man'),('Dambeldor')""")
142+
executeQuery(c, createUserTable)
143+
executeQuery(c, insertUsers)
144144
val cf = createJasyncConnectionFactory(c)
145145
Mono.from(cf.create())
146146
.flatMapMany { connection ->
@@ -164,6 +164,41 @@ class JasyncR2dbcIntegTest : R2dbcConnectionHelper() {
164164
}
165165
}
166166

167+
@Test
168+
fun `join tables which have column with the same names test`() {
169+
withConnection { c ->
170+
var rows = 0
171+
executeQuery(c, createUserTable)
172+
executeQuery(c, insertUsers)
173+
executeQuery(c, createPostTable)
174+
executeQuery(c, insertPosts)
175+
val cf = createJasyncConnectionFactory(c)
176+
Mono.from(cf.create())
177+
.flatMapMany { connection ->
178+
connection
179+
.createStatement("SELECT * FROM users JOIN posts ON users.id = posts.user_id")
180+
.execute()
181+
}
182+
.flatMap { result ->
183+
result
184+
.map { row, rowMetadata ->
185+
assertThat(rowMetadata.columnMetadatas.map { it.name }).isEqualTo(
186+
listOf(
187+
"id",
188+
"name",
189+
"id",
190+
"title",
191+
"user_id",
192+
)
193+
)
194+
}
195+
}
196+
.doOnNext { rows++ }
197+
.subscribe()
198+
await.until { rows == 2 }
199+
}
200+
}
201+
167202
private fun String.createParam(): Parameter = object : Parameter {
168203
override fun getType(): Type {
169204
TODO("Not implemented")

r2dbc-mysql/src/test/java/com/github/jasync/r2dbc/mysql/integ/R2dbcConnectionHelper.kt

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -79,23 +79,31 @@ open class R2dbcConnectionHelper : R2dbcContainerHelper() {
7979
insert into posts (created_at_date, created_at_datetime, created_at_timestamp, created_at_time, created_at_year)
8080
values ( '2038-01-19', '2013-01-19 03:14:07', '2020-01-19 03:14:07', '03:14:07', '1999' )
8181
"""
82-
val createTable = """CREATE TEMPORARY TABLE users (
82+
83+
val createUserTable = """CREATE TEMPORARY TABLE users (
8384
id INT NOT NULL AUTO_INCREMENT ,
8485
name VARCHAR(255) CHARACTER SET 'utf8' NOT NULL ,
8586
PRIMARY KEY (id) );"""
86-
val insert = """INSERT INTO users (name) VALUES ('Boogie Man')"""
87-
val select = """SELECT * FROM users"""
87+
val insertUsers = """INSERT INTO users (name) VALUES ('Boogie Man'), ('Dambeldor')"""
88+
val selectUsers = """SELECT * FROM users"""
89+
90+
val createPostTable = """CREATE TEMPORARY TABLE posts (
91+
id INT NOT NULL AUTO_INCREMENT ,
92+
title VARCHAR(255) CHARACTER SET 'utf8' NOT NULL ,
93+
user_id INT NOT NULL ,
94+
PRIMARY KEY (id) );"""
95+
val insertPosts = """INSERT INTO posts (title, user_id) VALUES ('Hello World', 1), ('Hello World 2', 2)"""
8896

8997
fun getConfiguration(): Configuration {
90-
return R2dbcContainerHelper.defaultConfiguration
98+
return defaultConfiguration
9199
}
92100

93101
fun <T> awaitFuture(f: CompletableFuture<T>): T {
94102
return f.get(10, TimeUnit.SECONDS)
95103
}
96104

97105
fun <T> withPool(f: (ConnectionPool<MySQLConnection>) -> T): T {
98-
return withConfigurablePool(R2dbcContainerHelper.defaultConfiguration, f)
106+
return withConfigurablePool(defaultConfiguration, f)
99107
}
100108

101109
fun <T> withConfigurablePool(configuration: Configuration, f: (ConnectionPool<MySQLConnection>) -> T): T {
@@ -127,7 +135,7 @@ open class R2dbcConnectionHelper : R2dbcContainerHelper() {
127135
}
128136

129137
fun <T> withConnection(fn: (MySQLConnection) -> T): T {
130-
return withConfigurableConnection(R2dbcContainerHelper.defaultConfiguration, fn)
138+
return withConfigurableConnection(defaultConfiguration, fn)
131139
}
132140

133141
fun <T> withSSLConnection(

0 commit comments

Comments
 (0)