Search in sources :

Example 11 with ServerErrorMessage

use of org.postgresql.util.ServerErrorMessage in project molgenis by molgenis.

the class PostgreSqlExceptionTranslatorTest method translateDependentObjectsStillExistOneDependentTableMultipleDependencies.

@Test
public void translateDependentObjectsStillExistOneDependentTableMultipleDependencies() {
    ServerErrorMessage serverErrorMessage = mock(ServerErrorMessage.class);
    when(serverErrorMessage.getSQLState()).thenReturn("2BP01");
    when(serverErrorMessage.getDetail()).thenReturn("constraint my_foreign_key_constraint on table \"myTable\" depends on table \"myDependentTable\"\nconstraint myOther_foreign_key_constraint on table \"myTable\" depends on table \"myDependentTable\"");
    // noinspection ThrowableResultOfMethodCallIgnored
    MolgenisValidationException e = postgreSqlExceptionTranslator.translateDependentObjectsStillExist(new PSQLException(serverErrorMessage));
    assertEquals(e.getMessage(), "Cannot delete entity 'myRefEntity' because entity 'myEntity' depends on it.");
}
Also used : ServerErrorMessage(org.postgresql.util.ServerErrorMessage) PSQLException(org.postgresql.util.PSQLException) MolgenisValidationException(org.molgenis.data.validation.MolgenisValidationException) Test(org.testng.annotations.Test)

Example 12 with ServerErrorMessage

use of org.postgresql.util.ServerErrorMessage in project molgenis by molgenis.

the class PostgreSqlExceptionTranslatorTest method translateUndefinedColumnException.

@Test
public void translateUndefinedColumnException() {
    ServerErrorMessage serverErrorMessage = mock(ServerErrorMessage.class);
    when(serverErrorMessage.getSQLState()).thenReturn("42703");
    when(serverErrorMessage.getMessage()).thenReturn("Undefined column: 7 ERROR: column \"test\" does not exist");
    // noinspection ThrowableResultOfMethodCallIgnored
    MolgenisValidationException e = PostgreSqlExceptionTranslator.translateUndefinedColumnException(new PSQLException(serverErrorMessage));
    assertEquals(e.getMessage(), "Undefined column: 7 ERROR: column \"test\" does not exist");
}
Also used : ServerErrorMessage(org.postgresql.util.ServerErrorMessage) PSQLException(org.postgresql.util.PSQLException) MolgenisValidationException(org.molgenis.data.validation.MolgenisValidationException) Test(org.testng.annotations.Test)

Example 13 with ServerErrorMessage

use of org.postgresql.util.ServerErrorMessage in project molgenis by molgenis.

the class PostgreSqlExceptionTranslatorTest method translateInvalidIntegerExceptionDouble.

@Test
public void translateInvalidIntegerExceptionDouble() {
    ServerErrorMessage serverErrorMessage = mock(ServerErrorMessage.class);
    when(serverErrorMessage.getMessage()).thenReturn("invalid input syntax for type double precision: \"str1\"");
    // noinspection ThrowableResultOfMethodCallIgnored
    MolgenisValidationException e = PostgreSqlExceptionTranslator.translateInvalidIntegerException(new PSQLException(serverErrorMessage));
    assertEquals(e.getMessage(), "Value [str1] of this entity attribute is not of type [DECIMAL].");
}
Also used : ServerErrorMessage(org.postgresql.util.ServerErrorMessage) PSQLException(org.postgresql.util.PSQLException) MolgenisValidationException(org.molgenis.data.validation.MolgenisValidationException) Test(org.testng.annotations.Test)

Example 14 with ServerErrorMessage

use of org.postgresql.util.ServerErrorMessage in project molgenis by molgenis.

the class PostgreSqlExceptionTranslatorTest method translateDependentObjectsStillExistNoDoubleQuotes.

@Test
public void translateDependentObjectsStillExistNoDoubleQuotes() {
    ServerErrorMessage serverErrorMessage = mock(ServerErrorMessage.class);
    when(serverErrorMessage.getSQLState()).thenReturn("2BP01");
    when(serverErrorMessage.getDetail()).thenReturn("constraint my_foreign_key_constraint on table myTable depends on table myDependentTable");
    // noinspection ThrowableResultOfMethodCallIgnored
    MolgenisValidationException e = postgreSqlExceptionTranslator.translateDependentObjectsStillExist(new PSQLException(serverErrorMessage));
    assertEquals(e.getMessage(), "Cannot delete entity 'myRefEntity' because entity 'myEntity' depends on it.");
}
Also used : ServerErrorMessage(org.postgresql.util.ServerErrorMessage) PSQLException(org.postgresql.util.PSQLException) MolgenisValidationException(org.molgenis.data.validation.MolgenisValidationException) Test(org.testng.annotations.Test)

Example 15 with ServerErrorMessage

use of org.postgresql.util.ServerErrorMessage in project molgenis by molgenis.

the class PostgreSqlExceptionTranslatorTest method translateUniqueKeyViolationKeyIsDuplicated.

@Test
public void translateUniqueKeyViolationKeyIsDuplicated() {
    ServerErrorMessage serverErrorMessage = mock(ServerErrorMessage.class);
    when(serverErrorMessage.getSQLState()).thenReturn("23505");
    when(serverErrorMessage.getTable()).thenReturn("myTable");
    when(serverErrorMessage.getDetail()).thenReturn("Key (myColumn)=(myValue) is duplicated.");
    // noinspection ThrowableResultOfMethodCallIgnored
    MolgenisValidationException e = postgreSqlExceptionTranslator.translateUniqueKeyViolation(new PSQLException(serverErrorMessage));
    assertEquals(e.getMessage(), "The attribute 'myAttr' of entity 'myEntity' contains duplicate value 'myValue'.");
}
Also used : ServerErrorMessage(org.postgresql.util.ServerErrorMessage) PSQLException(org.postgresql.util.PSQLException) MolgenisValidationException(org.molgenis.data.validation.MolgenisValidationException) Test(org.testng.annotations.Test)

Aggregations

ServerErrorMessage (org.postgresql.util.ServerErrorMessage)36 MolgenisValidationException (org.molgenis.data.validation.MolgenisValidationException)31 PSQLException (org.postgresql.util.PSQLException)28 Test (org.testng.annotations.Test)27 ConstraintViolation (org.molgenis.data.validation.ConstraintViolation)7 Matcher (java.util.regex.Matcher)6 EntityTypeDescription (org.molgenis.data.postgresql.identifier.EntityTypeDescription)2 String.format (java.lang.String.format)1 BatchUpdateException (java.sql.BatchUpdateException)1 SQLException (java.sql.SQLException)1 Collections.singleton (java.util.Collections.singleton)1 LinkedHashMap (java.util.LinkedHashMap)1 LinkedHashSet (java.util.LinkedHashSet)1 Map (java.util.Map)1 Objects.requireNonNull (java.util.Objects.requireNonNull)1 Set (java.util.Set)1 Pattern (java.util.regex.Pattern)1 Collectors.joining (java.util.stream.Collectors.joining)1 Collectors.toCollection (java.util.stream.Collectors.toCollection)1 DataSource (javax.sql.DataSource)1