Skip to content

Commit

Permalink
IGNITE-20677 Sql. Improve error reporting in assertThrowsSqlException.
Browse files Browse the repository at this point in the history
  • Loading branch information
lowka committed Oct 17, 2023
1 parent c44bbbb commit be0102b
Showing 1 changed file with 9 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

package org.apache.ignite.internal.sql.engine.util;

import static org.apache.ignite.internal.lang.IgniteStringFormatter.format;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.StringContains.containsString;
import static org.junit.jupiter.api.Assertions.assertEquals;
Expand All @@ -43,6 +44,8 @@
import org.apache.calcite.sql.type.SqlTypeName;
import org.apache.ignite.Ignite;
import org.apache.ignite.internal.sql.engine.type.UuidType;
import org.apache.ignite.lang.ErrorGroup;
import org.apache.ignite.lang.ErrorGroups;
import org.apache.ignite.sql.ColumnType;
import org.apache.ignite.sql.ResultSet;
import org.apache.ignite.sql.Session;
Expand Down Expand Up @@ -87,8 +90,13 @@ public static <T extends SqlException> T assertThrowsSqlException(
String expectedMessage,
Executable executable) {
T ex = assertThrows(expectedType, executable);
assertEquals(expectedCode, ex.code(), ex.toString());

int expectedErrorCode = ErrorGroup.extractErrorCode(expectedCode);
ErrorGroup expectedErrorGroup = ErrorGroups.errorGroupByCode(expectedCode);
String expectedError = format("{}#{}", expectedErrorGroup.name(), expectedErrorCode);
String actualError = format("{}#{}", ex.groupName(), ex.errorCode());

assertEquals(expectedError, actualError, "Error does not match. " + ex);
assertThat("Error message", ex.getMessage(), containsString(expectedMessage));

return ex;
Expand Down

0 comments on commit be0102b

Please sign in to comment.