From 4ee9ecedf776e7553abe13259a9c074b4dc572d5 Mon Sep 17 00:00:00 2001 From: "angelo.andreussi" Date: Mon, 13 Jan 2025 16:00:42 +0100 Subject: [PATCH] fix: added some scenarios to test "convertPersistenceDatabase" on new SQL integrity constraint violation exceptions --- .../commons/util/KapuaExceptionUtilsTest.java | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/commons/src/test/java/org/eclipse/kapua/commons/util/KapuaExceptionUtilsTest.java b/commons/src/test/java/org/eclipse/kapua/commons/util/KapuaExceptionUtilsTest.java index 96cef19661d..d839c131df1 100644 --- a/commons/src/test/java/org/eclipse/kapua/commons/util/KapuaExceptionUtilsTest.java +++ b/commons/src/test/java/org/eclipse/kapua/commons/util/KapuaExceptionUtilsTest.java @@ -13,6 +13,7 @@ package org.eclipse.kapua.commons.util; import java.lang.reflect.Constructor; +import java.sql.SQLIntegrityConstraintViolationException; import javax.persistence.OptimisticLockException; import javax.persistence.PersistenceException; @@ -22,6 +23,7 @@ import org.eclipse.kapua.KapuaException; import org.eclipse.kapua.KapuaIllegalNullArgumentException; import org.eclipse.kapua.KapuaOptimisticLockingException; +import org.eclipse.kapua.KapuaSQLIntegrityConstraintViolationException; import org.eclipse.kapua.qa.markers.junit.JUnitTests; import org.eclipse.persistence.exceptions.DatabaseException; @@ -111,9 +113,21 @@ public void convertPersistenceDatabaseExceptionTest() { Mockito.when(mockedDatabaseException.getInternalException()).thenReturn(mockedDatabaseException); Assert.assertEquals("ComparisonFailure not expected for: " + exception,kapuaException.toString(), KapuaExceptionUtils.convertPersistenceException(exception).toString()); - Mockito.verify(mockedDatabaseException, Mockito.times(13)).getInternalException(); - Mockito.verify(mockedDatabaseException, Mockito.times(12)).getMessage(); - Mockito.verify(mockedDatabaseException, Mockito.times(13)).getErrorCode(); + //SQL foreign key constraint violation + SQLIntegrityConstraintViolationException mockedDatabaseException2 = Mockito.mock(SQLIntegrityConstraintViolationException.class); + Mockito.when(mockedDatabaseException.getInternalException()).thenReturn(mockedDatabaseException2); + Mockito.when(mockedDatabaseException.getMessage()).thenReturn("FOREIGN KEY"); + KapuaSQLIntegrityConstraintViolationException ke = new KapuaSQLIntegrityConstraintViolationException("Check if some foreign key relation exists between this entity and another one in the platform"); + Assert.assertEquals("ComparisonFailure not expected for: " + exception,ke.toString(), KapuaExceptionUtils.convertPersistenceException(exception).toString()); + + //generic SQL constraint violation + Mockito.when(mockedDatabaseException.getMessage()).thenReturn("another message different from for3ign key but always SQL integrity constraint violation stuff"); + KapuaSQLIntegrityConstraintViolationException ke2 = new KapuaSQLIntegrityConstraintViolationException(""); + Assert.assertEquals("ComparisonFailure not expected for: " + exception,ke2.toString(), KapuaExceptionUtils.convertPersistenceException(exception).toString()); + + Mockito.verify(mockedDatabaseException, Mockito.times(15)).getInternalException(); + Mockito.verify(mockedDatabaseException, Mockito.times(14)).getMessage(); + Mockito.verify(mockedDatabaseException, Mockito.times(15)).getErrorCode(); } @Test