Skip to content

Commit

Permalink
fix: add value for JSON in new test
Browse files Browse the repository at this point in the history
  • Loading branch information
olavloite committed Aug 24, 2021
1 parent d1749c7 commit e6411ff
Showing 1 changed file with 79 additions and 48 deletions.
Expand Up @@ -832,7 +832,7 @@ public void test08_InsertAllColumnTypes() throws SQLException {
assertNotNull(rs.getTime(++index)); // Commit timestamp
assertEquals(BigDecimal.TEN, rs.getBigDecimal(++index));
if (!EmulatorSpannerHelper.isUsingEmulator()) {
assertEquals("{\"test_value\": \"foo\"}", rs.getString(++index));
assertEquals("{\"test_value\":\"foo\"}", rs.getString(++index));
}
assertArrayEquals(new Long[] {1L, 2L, 3L}, (Long[]) rs.getArray(++index).getArray());
assertArrayEquals(
Expand Down Expand Up @@ -913,104 +913,135 @@ public void test10_MetaData_FromDML() throws SQLException {

@Test
public void test11_InsertDataUsingSpannerValue() throws SQLException {
String sql;
if (EmulatorSpannerHelper.isUsingEmulator()) {
sql =
"INSERT INTO TableWithAllColumnTypes ("
+ "ColInt64, ColFloat64, ColBool, ColString, ColStringMax, ColBytes, ColBytesMax, ColDate, ColTimestamp, ColCommitTS, ColNumeric, "
+ "ColInt64Array, ColFloat64Array, ColBoolArray, ColStringArray, ColStringMaxArray, ColBytesArray, ColBytesMaxArray, ColDateArray, ColTimestampArray, ColNumericArray"
+ ") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, PENDING_COMMIT_TIMESTAMP(), ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
} else {
sql =
"INSERT INTO TableWithAllColumnTypes ("
+ "ColInt64, ColFloat64, ColBool, ColString, ColStringMax, ColBytes, ColBytesMax, ColDate, ColTimestamp, ColCommitTS, ColNumeric, ColJson, "
+ "ColInt64Array, ColFloat64Array, ColBoolArray, ColStringArray, ColStringMaxArray, ColBytesArray, ColBytesMaxArray, ColDateArray, ColTimestampArray, ColNumericArray, ColJsonArray"
+ ") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, PENDING_COMMIT_TIMESTAMP(), ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
}
try (Connection con = createConnection()) {
try (PreparedStatement ps =
con.prepareStatement(
"INSERT INTO TableWithAllColumnTypes ("
+ "ColInt64, ColFloat64, ColBool, ColString, ColStringMax, ColBytes, ColBytesMax, ColDate, ColTimestamp, ColCommitTS, ColNumeric, "
+ "ColInt64Array, ColFloat64Array, ColBoolArray, ColStringArray, ColStringMaxArray, ColBytesArray, ColBytesMaxArray, ColDateArray, ColTimestampArray, ColNumericArray"
+ ") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, PENDING_COMMIT_TIMESTAMP(), ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)")) {
ps.setObject(1, Value.int64(2L));
ps.setObject(2, Value.float64(2D));
ps.setObject(3, Value.bool(true));
ps.setObject(4, Value.string("testvalues"));
ps.setObject(5, Value.string("2d37f522-e0a5-4f22-8e09-4d77d299c967"));
ps.setObject(6, Value.bytes(ByteArray.copyFrom("test".getBytes())));
ps.setObject(7, Value.bytes(ByteArray.copyFrom("testtest".getBytes())));
ps.setObject(8, Value.date(com.google.cloud.Date.fromYearMonthDay(2021, 5, 3)));
try (PreparedStatement ps = con.prepareStatement(sql)) {
int index = 1;
ps.setObject(index++, Value.int64(2L));
ps.setObject(index++, Value.float64(2D));
ps.setObject(index++, Value.bool(true));
ps.setObject(index++, Value.string("testvalues"));
ps.setObject(index++, Value.string("2d37f522-e0a5-4f22-8e09-4d77d299c967"));
ps.setObject(index++, Value.bytes(ByteArray.copyFrom("test".getBytes())));
ps.setObject(index++, Value.bytes(ByteArray.copyFrom("testtest".getBytes())));
ps.setObject(index++, Value.date(com.google.cloud.Date.fromYearMonthDay(2021, 5, 3)));
ps.setObject(
9, Value.timestamp(com.google.cloud.Timestamp.ofTimeSecondsAndNanos(99999L, 99)));
ps.setObject(10, Value.numeric(BigDecimal.TEN));
ps.setObject(11, Value.int64Array(new long[] {1L, 2L, 3L}));
ps.setObject(12, Value.float64Array(new double[] {1.1D, 2.2D, 3.3D}));
ps.setObject(13, Value.boolArray(Arrays.asList(Boolean.TRUE, null, Boolean.FALSE)));
ps.setObject(14, Value.stringArray(Arrays.asList("1", "2", "3")));
ps.setObject(15, Value.stringArray(Arrays.asList("3", "2", "1")));
index++, Value.timestamp(com.google.cloud.Timestamp.ofTimeSecondsAndNanos(99999L, 99)));
ps.setObject(index++, Value.numeric(BigDecimal.TEN));
if (!EmulatorSpannerHelper.isUsingEmulator()) {
ps.setObject(index++, Value.json("{\"test_value\": \"foo\"}"));
}
ps.setObject(index++, Value.int64Array(new long[] {1L, 2L, 3L}));
ps.setObject(index++, Value.float64Array(new double[] {1.1D, 2.2D, 3.3D}));
ps.setObject(index++, Value.boolArray(Arrays.asList(Boolean.TRUE, null, Boolean.FALSE)));
ps.setObject(index++, Value.stringArray(Arrays.asList("1", "2", "3")));
ps.setObject(index++, Value.stringArray(Arrays.asList("3", "2", "1")));
ps.setObject(
16,
index++,
Value.bytesArray(
Arrays.asList(
ByteArray.copyFrom("1"), ByteArray.copyFrom("2"), ByteArray.copyFrom("3"))));
ps.setObject(
17,
index++,
Value.bytesArray(
Arrays.asList(
ByteArray.copyFrom("333"),
ByteArray.copyFrom("222"),
ByteArray.copyFrom("111"))));
ps.setObject(
18,
index++,
Value.dateArray(
Arrays.asList(com.google.cloud.Date.fromYearMonthDay(2021, 5, 3), null)));
ps.setObject(
19,
index++,
Value.timestampArray(
Arrays.asList(com.google.cloud.Timestamp.ofTimeSecondsAndNanos(99999L, 99), null)));
ps.setObject(20, Value.numericArray(Arrays.asList(BigDecimal.ONE, null, BigDecimal.TEN)));
ps.setObject(
index++, Value.numericArray(Arrays.asList(BigDecimal.ONE, null, BigDecimal.TEN)));
if (!EmulatorSpannerHelper.isUsingEmulator()) {
ps.setObject(
index++,
Value.jsonArray(Arrays.asList("{\"key1\": \"val1\"}", null, "{\"key2\": \"val2\"}")));
}
assertEquals(1, ps.executeUpdate());
}
try (ResultSet rs =
con.createStatement()
.executeQuery("SELECT * FROM TableWithAllColumnTypes WHERE ColInt64=2")) {
assertTrue(rs.next());
assertEquals(Value.int64(2L), rs.getObject(1, Value.class));
assertEquals(Value.float64(2d), rs.getObject(2, Value.class));
assertEquals(Value.bool(true), rs.getObject(3, Value.class));
assertEquals(Value.string("testvalues"), rs.getObject(4, Value.class));
int index = 1;
assertEquals(Value.int64(2L), rs.getObject(index++, Value.class));
assertEquals(Value.float64(2d), rs.getObject(index++, Value.class));
assertEquals(Value.bool(true), rs.getObject(index++, Value.class));
assertEquals(Value.string("testvalues"), rs.getObject(index++, Value.class));
assertEquals(
Value.string("2d37f522-e0a5-4f22-8e09-4d77d299c967"),
rs.getObject(index++, Value.class));
assertEquals(Value.bytes(ByteArray.copyFrom("test")), rs.getObject(index++, Value.class));
assertEquals(
Value.string("2d37f522-e0a5-4f22-8e09-4d77d299c967"), rs.getObject(5, Value.class));
assertEquals(Value.bytes(ByteArray.copyFrom("test")), rs.getObject(6, Value.class));
assertEquals(Value.bytes(ByteArray.copyFrom("testtest")), rs.getObject(7, Value.class));
Value.bytes(ByteArray.copyFrom("testtest")), rs.getObject(index++, Value.class));
assertEquals(
Value.date(com.google.cloud.Date.fromYearMonthDay(2021, 5, 3)),
rs.getObject(8, Value.class));
rs.getObject(index++, Value.class));
assertEquals(
Value.timestamp(com.google.cloud.Timestamp.ofTimeSecondsAndNanos(99999L, 99)),
rs.getObject(9, Value.class));
assertNotNull(rs.getObject(10, Value.class)); // Commit timestamp
assertEquals(Value.numeric(BigDecimal.TEN), rs.getObject(11, Value.class));
assertEquals(Value.int64Array(new long[] {1L, 2L, 3L}), rs.getObject(12, Value.class));
rs.getObject(index++, Value.class));
assertNotNull(rs.getObject(index++, Value.class)); // Commit timestamp
assertEquals(Value.numeric(BigDecimal.TEN), rs.getObject(index++, Value.class));
if (!EmulatorSpannerHelper.isUsingEmulator()) {
assertEquals(Value.json("{\"test_value\":\"foo\"}"), rs.getObject(index++, Value.class));
}
assertEquals(Value.int64Array(new long[] {1L, 2L, 3L}), rs.getObject(index++, Value.class));
assertEquals(
Value.float64Array(new double[] {1.1D, 2.2D, 3.3D}), rs.getObject(13, Value.class));
Value.float64Array(new double[] {1.1D, 2.2D, 3.3D}),
rs.getObject(index++, Value.class));
assertEquals(
Value.boolArray(Arrays.asList(true, null, false)), rs.getObject(14, Value.class));
Value.boolArray(Arrays.asList(true, null, false)), rs.getObject(index++, Value.class));
assertEquals(
Value.stringArray(Arrays.asList("1", "2", "3")), rs.getObject(15, Value.class));
Value.stringArray(Arrays.asList("1", "2", "3")), rs.getObject(index++, Value.class));
assertEquals(
Value.stringArray(Arrays.asList("3", "2", "1")), rs.getObject(16, Value.class));
Value.stringArray(Arrays.asList("3", "2", "1")), rs.getObject(index++, Value.class));
assertEquals(
Value.bytesArray(
Arrays.asList(
ByteArray.copyFrom("1"), ByteArray.copyFrom("2"), ByteArray.copyFrom("3"))),
rs.getObject(17, Value.class));
rs.getObject(index++, Value.class));
assertEquals(
Value.bytesArray(
Arrays.asList(
ByteArray.copyFrom("333"),
ByteArray.copyFrom("222"),
ByteArray.copyFrom("111"))),
rs.getObject(18, Value.class));
rs.getObject(index++, Value.class));
assertEquals(
Value.dateArray(
Arrays.asList(com.google.cloud.Date.fromYearMonthDay(2021, 5, 3), null)),
rs.getObject(19, Value.class));
rs.getObject(index++, Value.class));
assertEquals(
Value.timestampArray(
Arrays.asList(com.google.cloud.Timestamp.ofTimeSecondsAndNanos(99999L, 99), null)),
rs.getObject(20, Value.class));
rs.getObject(index++, Value.class));
assertEquals(
Value.numericArray(Arrays.asList(BigDecimal.ONE, null, BigDecimal.TEN)),
rs.getObject(21, Value.class));
rs.getObject(index++, Value.class));
if (!EmulatorSpannerHelper.isUsingEmulator()) {
assertEquals(
Value.jsonArray(Arrays.asList("{\"key1\":\"val1\"}", null, "{\"key2\":\"val2\"}")),
rs.getObject(index++, Value.class));
}
assertFalse(rs.next());
}
}
Expand Down

0 comments on commit e6411ff

Please sign in to comment.