Skip to content

Commit 4557779

Browse files
committed
date, datetime and timestamp tests
1 parent 6ee3392 commit 4557779

File tree

3 files changed

+67
-8
lines changed

3 files changed

+67
-8
lines changed

src/test/scala/io/vertx/asyncsql/test/BaseSqlTests.scala

Lines changed: 32 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ trait BaseSqlTests {
1313

1414
protected def isMysql: Boolean = false
1515

16-
private def failedTest: PartialFunction[Throwable, Unit] = {
16+
protected def failedTest: PartialFunction[Throwable, Unit] = {
1717
case ex: Throwable =>
1818
logger.warn("failed in test", ex)
1919
fail("test failed. see warning above")
@@ -49,10 +49,10 @@ trait BaseSqlTests {
4949
(msg._1, msg._2)
5050
}
5151

52-
private def sendOk(json: JsonObject): Future[(Message[JsonObject], JsonObject)] =
52+
protected def sendOk(json: JsonObject): Future[(Message[JsonObject], JsonObject)] =
5353
sendWithTimeout(json) map checkOkay(json)
5454

55-
private def sendFail(json: JsonObject): Future[(Message[JsonObject], JsonObject)] =
55+
protected def sendFail(json: JsonObject): Future[(Message[JsonObject], JsonObject)] =
5656
sendWithTimeout(json) map checkError(json)
5757

5858
private def replyOk(msg: Message[JsonObject], json: JsonObject): Future[(Message[JsonObject], JsonObject)] =
@@ -439,4 +439,32 @@ trait BaseSqlTests {
439439
testComplete()
440440
}) recover failedTest
441441
}
442-
}
442+
443+
@Test
444+
def dateTest(): Unit = (for {
445+
_ <- setupTableTest()
446+
(msg, insertReply) <- sendOk(raw("INSERT INTO some_test (name, wedding_date) VALUES ('tester', '2015-04-04');"))
447+
(msg, reply) <- sendOk(prepared("SELECT wedding_date FROM some_test WHERE name=?", Json.arr("tester")))
448+
} yield {
449+
val receivedFields = reply.getArray("fields")
450+
assertEquals(Json.arr("wedding_date"), receivedFields)
451+
assertEquals("2015-04-04", reply.getArray("results").get[JsonArray](0).get[String](0))
452+
testComplete()
453+
}) recover failedTest
454+
455+
@Test
456+
def timestampTest(): Unit = (for {
457+
(m, r) <- sendOk(raw("DROP TABLE IF EXISTS date_test"))
458+
(msg, r2) <- sendOk(raw(createDateTable("timestamp")))
459+
(msg, insertReply) <- sendOk(raw("INSERT INTO date_test (test_date) VALUES ('2015-04-04T10:04:00.000');"))
460+
(msg, reply) <- sendOk(raw("SELECT test_date FROM date_test"))
461+
} yield {
462+
val receivedFields = reply.getArray("fields")
463+
assertEquals(Json.arr("test_date"), receivedFields)
464+
logger.info("date is: " + reply.getArray("results").get[JsonArray](0).get[String](0))
465+
assertEquals("2015-04-04T10:04:00.000", reply.getArray("results").get[JsonArray](0).get[String](0))
466+
testComplete()
467+
}) recover failedTest
468+
469+
}
470+

src/test/scala/io/vertx/asyncsql/test/SqlTestVerticle.scala

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ abstract class SqlTestVerticle extends TestVerticle with BaseVertxIntegrationTes
1515
val p = Promise[Unit]
1616
container.deployModule(System.getProperty("vertx.modulename"), getConfig(), 1, { deploymentID: AsyncResult[String] =>
1717
if (deploymentID.failed()) {
18-
logger.info(deploymentID.cause())
18+
logger.info(s"Deployment failed, cause: ${deploymentID.cause()}")
1919
p.failure(deploymentID.cause())
2020
}
2121
assertTrue("deploymentID should not be null", deploymentID.succeeded())
@@ -67,6 +67,13 @@ abstract class SqlTestVerticle extends TestVerticle with BaseVertxIntegrationTes
6767
reply
6868
}
6969

70+
protected def createDateTable(dateDataType :String) = s"""
71+
| CREATE TABLE date_test (
72+
| id SERIAL,
73+
| test_date $dateDataType
74+
| );
75+
""".stripMargin
76+
7077
protected def createTableStatement(tableName: String) = """
7178
DROP TABLE IF EXISTS """ + tableName + """;
7279
CREATE TABLE """ + tableName + """ (

src/test/scala/io/vertx/asyncsql/test/mysql/MySqlTest.scala

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
package io.vertx.asyncsql.test.mysql
22

3-
import org.vertx.scala.core.json.Json
43
import io.vertx.asyncsql.test.{BaseSqlTests, SqlTestVerticle}
4+
import org.junit.Test
5+
import org.vertx.scala.core.json._
6+
import org.vertx.testtools.VertxAssert._
57

68
class MySqlTest extends SqlTestVerticle with BaseSqlTests {
79

@@ -14,6 +16,14 @@ class MySqlTest extends SqlTestVerticle with BaseSqlTests {
1416

1517
override def getConfig = config
1618

19+
override def createDateTable(dateDataType: String) = s"""
20+
| CREATE TABLE date_test (
21+
| id INT NOT NULL AUTO_INCREMENT,
22+
| test_date $dateDataType,
23+
| PRIMARY KEY(id)
24+
| );
25+
""".stripMargin
26+
1727
override def createTableStatement(tableName: String) = """
1828
CREATE TABLE """ + tableName + """ (
1929
id INT NOT NULL AUTO_INCREMENT,
@@ -24,7 +34,21 @@ CREATE TABLE """ + tableName + """ (
2434
money FLOAT,
2535
wedding_date DATE,
2636
PRIMARY KEY (id)
27-
);
28-
"""
37+
);"""
38+
39+
@Test
40+
def datetimeTest(): Unit =
41+
(for {
42+
(m, r) <- sendOk(raw("DROP TABLE IF EXISTS date_test"))
43+
(msg, r2) <- sendOk(raw(createDateTable("datetime")))
44+
(msg, insertReply) <- sendOk(raw("INSERT INTO date_test (test_date) VALUES ('2015-04-04');"))
45+
(msg, reply) <- sendOk(raw("SELECT test_date FROM date_test"))
46+
} yield {
47+
val receivedFields = reply.getArray("fields")
48+
assertEquals(Json.arr("test_date"), receivedFields)
49+
logger.info("date is: " + reply.getArray("results").get[JsonArray](0).get[String](0));
50+
assertEquals("2015-04-04T00:00:00.000", reply.getArray("results").get[JsonArray](0).get[String](0))
51+
testComplete()
52+
}) recover failedTest
2953

3054
}

0 commit comments

Comments
 (0)