From be0102b94331690f7c6669640b3e01eb8b7d9d24 Mon Sep 17 00:00:00 2001 From: Max Zhuravkov Date: Tue, 17 Oct 2023 16:25:00 +0300 Subject: [PATCH] IGNITE-20677 Sql. Improve error reporting in assertThrowsSqlException. --- .../ignite/internal/sql/engine/util/SqlTestUtils.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/modules/sql-engine/src/testFixtures/java/org/apache/ignite/internal/sql/engine/util/SqlTestUtils.java b/modules/sql-engine/src/testFixtures/java/org/apache/ignite/internal/sql/engine/util/SqlTestUtils.java index 7c7f1e71a62..1040e1ccdc6 100644 --- a/modules/sql-engine/src/testFixtures/java/org/apache/ignite/internal/sql/engine/util/SqlTestUtils.java +++ b/modules/sql-engine/src/testFixtures/java/org/apache/ignite/internal/sql/engine/util/SqlTestUtils.java @@ -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; @@ -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; @@ -87,8 +90,13 @@ public static 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;