From 2691a7f6e939a439e868948d467bb423710cffb2 Mon Sep 17 00:00:00 2001 From: Ananya Garg Date: Wed, 5 Mar 2025 17:21:08 +0530 Subject: [PATCH] Fix pipeline failure by handling strict mode exceptions for null values. (#2628) * Ensure test cases handle: non-null values throwing exceptions, null values returning null (except in strict mode, where exceptions are handled). * Updated test cases --- .../jdbc/unit/lobs/LobsStreamingTest.java | 36 ++++++------------- 1 file changed, 11 insertions(+), 25 deletions(-) diff --git a/src/test/java/com/microsoft/sqlserver/jdbc/unit/lobs/LobsStreamingTest.java b/src/test/java/com/microsoft/sqlserver/jdbc/unit/lobs/LobsStreamingTest.java index 098534bc4..b7daa9039 100644 --- a/src/test/java/com/microsoft/sqlserver/jdbc/unit/lobs/LobsStreamingTest.java +++ b/src/test/java/com/microsoft/sqlserver/jdbc/unit/lobs/LobsStreamingTest.java @@ -1,6 +1,7 @@ package com.microsoft.sqlserver.jdbc.unit.lobs; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNull; import static org.junit.jupiter.api.Assertions.assertTrue; import static org.junit.jupiter.api.Assertions.fail; @@ -310,23 +311,15 @@ public void testGetAsciiStreamOnXml() { stmt.executeUpdate("INSERT INTO " + tableName + " (col1) VALUES (NULL)"); try (ResultSet rs = stmt.executeQuery("SELECT col1 FROM " + tableName)) { - int rowIndex = 0; while (rs.next()) { - rowIndex++; try { InputStream asciiStream = rs.getAsciiStream(1); - if (rowIndex == 1) { - fail("Expected SQLException was not thrown for non-null value"); // Non-null value: Should throw an exception - } else { - assertNull(asciiStream, "Expected null for NULL value, but got a non-null InputStream"); // Null value: Should return null without throwing an exception - } + // If no exception is thrown, assert the value is null + assertNull(asciiStream, "Expected null for NULL value, but got a non-null InputStream"); } catch (SQLException e) { - if (rowIndex == 1) { - assertTrue(e.getMessage().contains("The conversion from xml to AsciiStream is unsupported."), - "Unexpected SQLException message: " + e.getMessage()); - } else { - fail("Unexpected SQLException for NULL value: " + e.getMessage()); - } + // Ensure that only expected exceptions occur + assertTrue(e.getMessage().contains("The conversion from xml to AsciiStream is unsupported."), + "Unexpected SQLException message: " + e.getMessage()); } } } @@ -345,22 +338,15 @@ public void testGetBinaryStreamOnVarchar() { stmt.executeUpdate("INSERT INTO " + tableName + " (col1) VALUES (NULL)"); try (ResultSet rs = stmt.executeQuery("SELECT col1 FROM " + tableName)) { - int rowIndex = 0; while (rs.next()) { - rowIndex++; try { InputStream binaryStream = rs.getBinaryStream(1); - if (rowIndex == 1) - fail("Expected SQLException was not thrown for non-null value"); // Non-null value - else - assertNull(binaryStream, "Expected null for NULL value, but got a non-null InputStream"); // Null value + // If no exception is thrown, assert the value is null + assertNull(binaryStream, "Expected null for NULL value, but got a non-null InputStream"); } catch (SQLException e) { - if (rowIndex == 1) { - assertTrue(e.getMessage().contains("The conversion from varchar to BinaryStream is unsupported."), - "Unexpected SQLException message: " + e.getMessage()); - } else { - fail("Unexpected SQLException for NULL value: " + e.getMessage()); - } + // Ensure that only expected exceptions occur + assertTrue(e.getMessage().contains("The conversion from varchar to BinaryStream is unsupported."), + "Unexpected SQLException message: " + e.getMessage()); } } }