From 64f5c89be1fa51bc27b117cbca2df7ad8ec4f874 Mon Sep 17 00:00:00 2001 From: rene-ye Date: Thu, 14 Jun 2018 11:38:53 -0700 Subject: [PATCH 1/5] fix to enable data verification in junit tests. Also addresses intermitent failures with Time/Timestamp where the precision was being inaccurately judged. --- .../sqlserver/testframework/DBResultSet.java | 34 ++++++++++++++----- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/src/test/java/com/microsoft/sqlserver/testframework/DBResultSet.java b/src/test/java/com/microsoft/sqlserver/testframework/DBResultSet.java index d281effca..44e8b7738 100644 --- a/src/test/java/com/microsoft/sqlserver/testframework/DBResultSet.java +++ b/src/test/java/com/microsoft/sqlserver/testframework/DBResultSet.java @@ -19,10 +19,14 @@ import java.sql.SQLException; import java.sql.Time; import java.sql.Timestamp; +import java.text.DateFormat; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.time.LocalTime; import java.util.Arrays; import java.util.Calendar; +import java.util.Date; import java.util.logging.Level; import java.util.logging.Logger; @@ -210,10 +214,13 @@ public void verifydata(int ordinal, // getXXX - default mapping Object retrieved = this.getXXX(ordinal + 1, coercion); + if (retrieved instanceof java.sql.Time) { + System.out.println(); + } // Verify // TODO: Check the intermittent verification error - // verifydata(ordinal, coercion, expectedData, retrieved); + verifydata(ordinal, coercion, expectedData, retrieved); } /** @@ -268,7 +275,10 @@ public void verifydata(int ordinal, break; case java.sql.Types.REAL: - assertTrue((((Float) expectedData).floatValue() == ((Float) retrieved).floatValue()), + if (expectedData instanceof Double) { + expectedData = (Float) (((Double) expectedData).floatValue()); + } + assertTrue(((Float) expectedData).floatValue() == ((Float) retrieved).floatValue(), "Unexpected real value, expected: " + (Float) expectedData + " received: " + (Float) retrieved); break; @@ -297,10 +307,14 @@ else if (metaData.getColumnTypeName(ordinal + 1).equalsIgnoreCase("smalldatetime + " ,received: " + (((Timestamp) retrieved).getTime())); break; } - else - assertTrue(("" + Timestamp.valueOf((LocalDateTime) expectedData)).equalsIgnoreCase("" + retrieved), "Unexpected datetime2 value, " - + "expected: " + Timestamp.valueOf((LocalDateTime) expectedData) + " ,received: " + retrieved); - break; + else { + String retrivedTimestamp = retrieved.toString(); + String expectedTimestamp = expectedData.toString().substring(0,retrivedTimestamp.length()); + assertTrue(expectedTimestamp.equalsIgnoreCase(retrivedTimestamp), "Unexpected datetime2 value, " + "expected: " + + expectedTimestamp + " ,received: " + retrivedTimestamp); + break; + } + case java.sql.Types.DATE: assertTrue((("" + expectedData).equalsIgnoreCase("" + retrieved)), @@ -308,8 +322,10 @@ else if (metaData.getColumnTypeName(ordinal + 1).equalsIgnoreCase("smalldatetime break; case java.sql.Types.TIME: - assertTrue(("" + Time.valueOf((LocalTime) expectedData)).equalsIgnoreCase("" + retrieved), - "Unexpected time value, exptected: " + Time.valueOf((LocalTime) expectedData) + " ,received: " + retrieved); + String retrievedTime = retrieved.toString(); + String expectedTime = expectedData.toString().substring(0,retrievedTime.length()); + assertTrue(expectedTime.equalsIgnoreCase(retrievedTime), + "Unexpected time value, expected: " + expectedTime + " ,received: " + retrievedTime); break; case microsoft.sql.Types.DATETIMEOFFSET: @@ -446,7 +462,7 @@ private static Object roundSmallDateTimeValue(Object value) { cal = (Calendar) value; } else { - ts = (java.sql.Timestamp) value; + ts = Timestamp.valueOf((String) value); cal = Calendar.getInstance(); cal.setTimeInMillis(ts.getTime()); nanos = ts.getNanos(); From ae2c7dedab8565fb9a2f20fa9b724ad5f47a3282 Mon Sep 17 00:00:00 2001 From: rene-ye Date: Thu, 14 Jun 2018 11:41:59 -0700 Subject: [PATCH 2/5] removed imports --- .../com/microsoft/sqlserver/testframework/DBResultSet.java | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/test/java/com/microsoft/sqlserver/testframework/DBResultSet.java b/src/test/java/com/microsoft/sqlserver/testframework/DBResultSet.java index 44e8b7738..351290c1e 100644 --- a/src/test/java/com/microsoft/sqlserver/testframework/DBResultSet.java +++ b/src/test/java/com/microsoft/sqlserver/testframework/DBResultSet.java @@ -17,16 +17,9 @@ import java.sql.JDBCType; import java.sql.ResultSet; import java.sql.SQLException; -import java.sql.Time; import java.sql.Timestamp; -import java.text.DateFormat; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.time.LocalDateTime; -import java.time.LocalTime; import java.util.Arrays; import java.util.Calendar; -import java.util.Date; import java.util.logging.Level; import java.util.logging.Logger; From c50c5036813dc16cf3ca5ceeb947df3c40c97cf1 Mon Sep 17 00:00:00 2001 From: rene-ye Date: Thu, 14 Jun 2018 11:44:27 -0700 Subject: [PATCH 3/5] removed temporary debugging code --- .../com/microsoft/sqlserver/testframework/DBResultSet.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/test/java/com/microsoft/sqlserver/testframework/DBResultSet.java b/src/test/java/com/microsoft/sqlserver/testframework/DBResultSet.java index 351290c1e..1feb241a1 100644 --- a/src/test/java/com/microsoft/sqlserver/testframework/DBResultSet.java +++ b/src/test/java/com/microsoft/sqlserver/testframework/DBResultSet.java @@ -207,9 +207,6 @@ public void verifydata(int ordinal, // getXXX - default mapping Object retrieved = this.getXXX(ordinal + 1, coercion); - if (retrieved instanceof java.sql.Time) { - System.out.println(); - } // Verify // TODO: Check the intermittent verification error From 6d5bcf5288f7efb19dbe75423da4a8926a730ba7 Mon Sep 17 00:00:00 2001 From: v-reye Date: Fri, 15 Jun 2018 15:10:40 -0700 Subject: [PATCH 4/5] Update DBResultSet.java spelling mistake on variable --- .../microsoft/sqlserver/testframework/DBResultSet.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/test/java/com/microsoft/sqlserver/testframework/DBResultSet.java b/src/test/java/com/microsoft/sqlserver/testframework/DBResultSet.java index 1feb241a1..95d0959ac 100644 --- a/src/test/java/com/microsoft/sqlserver/testframework/DBResultSet.java +++ b/src/test/java/com/microsoft/sqlserver/testframework/DBResultSet.java @@ -298,10 +298,10 @@ else if (metaData.getColumnTypeName(ordinal + 1).equalsIgnoreCase("smalldatetime break; } else { - String retrivedTimestamp = retrieved.toString(); - String expectedTimestamp = expectedData.toString().substring(0,retrivedTimestamp.length()); - assertTrue(expectedTimestamp.equalsIgnoreCase(retrivedTimestamp), "Unexpected datetime2 value, " + "expected: " - + expectedTimestamp + " ,received: " + retrivedTimestamp); + String retrievedTimestamp = retrieved.toString(); + String expectedTimestamp = expectedData.toString().substring(0,retrievedTimestamp.length()); + assertTrue(expectedTimestamp.equalsIgnoreCase(retrievedTimestamp), "Unexpected datetime2 value, " + "expected: " + + expectedTimestamp + " ,received: " + retrievedTimestamp); break; } @@ -552,4 +552,4 @@ public DBStatement statement() { return (null); } -} \ No newline at end of file +} From fafe3fe023a360a7797a8b8c294bf2e0eb377ce7 Mon Sep 17 00:00:00 2001 From: rene-ye Date: Wed, 20 Jun 2018 12:44:15 -0700 Subject: [PATCH 5/5] removed fixed comment --- .../java/com/microsoft/sqlserver/testframework/DBResultSet.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/test/java/com/microsoft/sqlserver/testframework/DBResultSet.java b/src/test/java/com/microsoft/sqlserver/testframework/DBResultSet.java index 95d0959ac..f9bd04e91 100644 --- a/src/test/java/com/microsoft/sqlserver/testframework/DBResultSet.java +++ b/src/test/java/com/microsoft/sqlserver/testframework/DBResultSet.java @@ -209,7 +209,6 @@ public void verifydata(int ordinal, Object retrieved = this.getXXX(ordinal + 1, coercion); // Verify - // TODO: Check the intermittent verification error verifydata(ordinal, coercion, expectedData, retrieved); }