diff --git a/src/test/java/com/microsoft/sqlserver/testframework/DBResultSet.java b/src/test/java/com/microsoft/sqlserver/testframework/DBResultSet.java index d281effca..f9bd04e91 100644 --- a/src/test/java/com/microsoft/sqlserver/testframework/DBResultSet.java +++ b/src/test/java/com/microsoft/sqlserver/testframework/DBResultSet.java @@ -17,10 +17,7 @@ import java.sql.JDBCType; import java.sql.ResultSet; import java.sql.SQLException; -import java.sql.Time; import java.sql.Timestamp; -import java.time.LocalDateTime; -import java.time.LocalTime; import java.util.Arrays; import java.util.Calendar; import java.util.logging.Level; @@ -212,8 +209,7 @@ public void verifydata(int ordinal, Object retrieved = this.getXXX(ordinal + 1, coercion); // Verify - // TODO: Check the intermittent verification error - // verifydata(ordinal, coercion, expectedData, retrieved); + verifydata(ordinal, coercion, expectedData, retrieved); } /** @@ -268,7 +264,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 +296,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 retrievedTimestamp = retrieved.toString(); + String expectedTimestamp = expectedData.toString().substring(0,retrievedTimestamp.length()); + assertTrue(expectedTimestamp.equalsIgnoreCase(retrievedTimestamp), "Unexpected datetime2 value, " + "expected: " + + expectedTimestamp + " ,received: " + retrievedTimestamp); + break; + } + case java.sql.Types.DATE: assertTrue((("" + expectedData).equalsIgnoreCase("" + retrieved)), @@ -308,8 +311,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 +451,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(); @@ -546,4 +551,4 @@ public DBStatement statement() { return (null); } -} \ No newline at end of file +}