src/test/java/org/embulk/output/sqlserver/SQLServerOutputPluginTest.java in embulk-output-sqlserver-0.5.0 vs src/test/java/org/embulk/output/sqlserver/SQLServerOutputPluginTest.java in embulk-output-sqlserver-0.5.1
- old
+ new
@@ -202,10 +202,174 @@
tester.run(convertYml("/sqlserver/yml/test-string-timestamp.yml"));
assertTable(1, table, true);
}
+ @Test
+ public void testNativeString() throws Exception
+ {
+ if (!canTest) {
+ return;
+ }
+
+ String table = "TEST2";
+
+ dropTable(table);
+ executeSQL(String.format("CREATE TABLE %S (ITEM1 CHAR(4), ITEM2 VARCHAR(8), ITEM3 TEXT, ITEM4 NCHAR(4), ITEM5 NVARCHAR(8), ITEM6 NTEXT)", table));
+
+ tester.run(convertYml("/sqlserver/yml/test-native-string.yml"));
+
+ List<List<Object>> rows = select(table);
+ assertEquals(2, rows.size());
+ {
+ List<Object> row = rows.get(0);
+ assertEquals("A001", row.get(0));
+ assertEquals("TEST", row.get(1));
+ assertEquals("A", row.get(2));
+ assertEquals("あいうえ", row.get(3));
+ assertEquals("あいうえおかきく", row.get(4));
+ assertEquals("あいうえお", row.get(5));
+ }
+ {
+ List<Object> row = rows.get(1);
+ assertEquals("A002", row.get(0));
+ assertEquals(null, row.get(1));
+ assertEquals(null, row.get(2));
+ assertEquals(null, row.get(3));
+ assertEquals(null, row.get(4));
+ assertEquals(null, row.get(5));
+ }
+ }
+
+ @Test
+ public void testNativeInteger() throws Exception
+ {
+ if (!canTest) {
+ return;
+ }
+
+ String table = "TEST3";
+
+ dropTable(table);
+ executeSQL(String.format("CREATE TABLE %S (ITEM1 TINYINT, ITEM2 SMALLINT, ITEM3 INT, ITEM4 BIGINT, ITEM5 BIT)", table));
+
+ tester.run(convertYml("/sqlserver/yml/test-native-integer.yml"));
+
+ List<List<Object>> rows = select(table);
+ assertEquals(2, rows.size());
+ {
+ List<Object> row = rows.get(0);
+ assertEquals((short)1, row.get(0));
+ assertEquals((short)1111, row.get(1));
+ assertEquals(11111111, row.get(2));
+ assertEquals(111111111111L, row.get(3));
+ assertEquals(true, row.get(4));
+ }
+ {
+ List<Object> row = rows.get(1);
+ assertEquals((short)2, row.get(0));
+ assertEquals(null, row.get(1));
+ assertEquals(null, row.get(2));
+ assertEquals(null, row.get(3));
+ assertEquals(null, row.get(4));
+ }
+ }
+
+ @Test
+ public void testNativeDecimal() throws Exception
+ {
+ if (!canTest) {
+ return;
+ }
+
+ String table = "TEST4";
+
+ dropTable(table);
+ executeSQL(String.format("CREATE TABLE %S (ITEM1 DECIMAL(20,2), ITEM2 NUMERIC(20,2), ITEM3 SMALLMONEY, ITEM4 MONEY, ITEM5 REAL, ITEM6 FLOAT)", table));
+
+ tester.run(convertYml("/sqlserver/yml/test-native-decimal.yml"));
+
+ List<List<Object>> rows = select(table);
+ assertEquals(2, rows.size());
+ {
+ List<Object> row = rows.get(0);
+ assertEquals(new BigDecimal("1.20"), row.get(0));
+ assertEquals(new BigDecimal("12345678901234567.89"), row.get(1));
+ assertEquals(new BigDecimal("123.4500"), row.get(2));
+ assertEquals(new BigDecimal("678.9000"), row.get(3));
+ assertEquals(0.01234F, row.get(4));
+ assertEquals(0.05678D, row.get(5));
+ }
+ {
+ List<Object> row = rows.get(1);
+ assertEquals(new BigDecimal("2.30"), row.get(0));
+ assertEquals(null, row.get(1));
+ assertEquals(null, row.get(2));
+ assertEquals(null, row.get(3));
+ assertEquals(null, row.get(4));
+ assertEquals(null, row.get(5));
+ }
+ }
+
+ @Test
+ public void testNativeDate() throws Exception
+ {
+ if (!canTest) {
+ return;
+ }
+
+ String table = "TEST5";
+
+ dropTable(table);
+ executeSQL(String.format("CREATE TABLE %S (ITEM1 DATE, ITEM2 SMALLDATETIME, ITEM3 DATETIME, ITEM4 DATETIME2, ITEM5 DATETIME2(2), ITEM6 TIME, ITEM7 TIME(2))", table));
+
+ tester.run(convertYml("/sqlserver/yml/test-native-date.yml"));
+
+ List<List<Object>> rows = select(table);
+ assertEquals(2, rows.size());
+ {
+ List<Object> row = rows.get(0);
+ assertEquals(createDate("2016/01/23"), row.get(0));
+ assertEquals(createTimestamp("2016/01/24 11:23:00", 0), row.get(1));
+ assertEquals(createTimestamp("2016/01/25 11:22:33", 457000000), row.get(2));
+ // Embulk timestamp doesn't support values under microseconds.
+ assertEquals(createTimestamp("2016/01/26 11:22:33", 123456000), row.get(3));
+ assertEquals(createTimestamp("2016/01/27 11:22:33", 890000000), row.get(4));
+ // Embulk timestamp doesn't support values under microseconds.
+ assertEquals(createTime("11:22:33", 123456000), row.get(5));
+ assertEquals(createTime("11:22:33", 890000000), row.get(6));
+ }
+ {
+ List<Object> row = rows.get(1);
+ assertEquals(null, row.get(0));
+ assertEquals(null, row.get(1));
+ assertEquals(null, row.get(2));
+ assertEquals(null, row.get(3));
+ assertEquals(null, row.get(4));
+ assertEquals(null, row.get(5));
+ assertEquals(null, row.get(6));
+ }
+ }
+
+ @Test
+ public void testNative() throws Exception
+ {
+ if (!canTest) {
+ return;
+ }
+
+ String table = "TEST1";
+
+ dropTable(table);
+ createTable(table);
+ insertRecord(table);
+
+ tester.run(convertYml("/sqlserver/yml/test-native.yml"));
+
+ assertTable(1, table);
+ }
+
private void assertTable(int skip, String table) throws Exception
{
assertTable(skip, table, false);
}
@@ -217,15 +381,15 @@
Iterator<List<Object>> i1 = rows.iterator();
{
Iterator<Object> i2 = i1.next().iterator();
assertEquals("A001", i2.next());
- assertEquals(Short.valueOf((short)0), i2.next());
- assertEquals(Short.valueOf((short)1234), i2.next());
- assertEquals(Integer.valueOf(123456), i2.next());
- assertEquals(Long.valueOf(12345678901L), i2.next());
- assertEquals(Boolean.FALSE, i2.next());
+ assertEquals((short)0, i2.next());
+ assertEquals((short)1234, i2.next());
+ assertEquals(123456, i2.next());
+ assertEquals(12345678901L, i2.next());
+ assertEquals(false, i2.next());
assertEquals(new BigDecimal("1.23"), i2.next());
assertEquals(new BigDecimal("3.456"), i2.next());
assertEquals(new BigDecimal("12.3400"), i2.next());
assertEquals(new BigDecimal("123.4567"), i2.next());
assertEquals(Float.valueOf(0.1234567F), i2.next());
@@ -247,14 +411,14 @@
assertEquals(createTime("06:07:08", 120000000), i2.next());
}
{
Iterator<Object> i2 = i1.next().iterator();
assertEquals("A002", i2.next());
- assertEquals(Short.valueOf((short)255), i2.next());
- assertEquals(Short.valueOf((short)-32768), i2.next());
- assertEquals(Integer.valueOf(-2147483648), i2.next());
- assertEquals(Long.valueOf(-9223372036854775808L), i2.next());
- assertEquals(Boolean.TRUE, i2.next());
+ assertEquals((short)255, i2.next());
+ assertEquals((short)-32768, i2.next());
+ assertEquals(-2147483648, i2.next());
+ assertEquals(-9223372036854775808L, i2.next());
+ assertEquals(true, i2.next());
assertEquals(new BigDecimal("-9999999999.99"), i2.next());
assertEquals(new BigDecimal("-99.999"), i2.next());
assertEquals(new BigDecimal("-214748.3648"), i2.next());
assertEquals(new BigDecimal("-922337203685477.5808"), i2.next());
assertEquals(Float.valueOf(-9999000000F), i2.next());