Loading src/main/java/es/redmic/ais/exceptions/ExceptionType.java 0 → 100644 +45 −0 Original line number Diff line number Diff line package es.redmic.ais.exceptions; import es.redmic.exception.common.ExceptionTypeItfc; public enum ExceptionType implements ExceptionTypeItfc { // @formatter:off // EventSource INVALID_USERNAME_OR_PASSWORD(Constants.INVALID_USERNAME_OR_PASSWORD), TOO_FREQUENT_REQUESTS(Constants.TOO_FREQUENT_REQUESTS); // @formatter:on final String type; ExceptionType(String type) { this.type = type; } public static ExceptionType fromString(String text) { if (text != null) { for (ExceptionType b : ExceptionType.values()) { if (text.equalsIgnoreCase(b.type)) { return b; } } } throw new IllegalArgumentException(text + " has no corresponding value"); } @Override public String toString() { return type; } private static class Constants { // @formatter:off public static final String INVALID_USERNAME_OR_PASSWORD = "InvalidUsernameException", TOO_FREQUENT_REQUESTS = "TooFrequentRequestsException"; // @formatter:on } } src/main/java/es/redmic/ais/exceptions/InvalidUsernameException.java 0 → 100644 +12 −0 Original line number Diff line number Diff line package es.redmic.ais.exceptions; import es.redmic.exception.common.BadRequestException; public class InvalidUsernameException extends BadRequestException { private static final long serialVersionUID = 1L; public InvalidUsernameException() { super(ExceptionType.INVALID_USERNAME_OR_PASSWORD); } } src/main/java/es/redmic/ais/exceptions/TooFrequentRequestsException.java 0 → 100644 +13 −0 Original line number Diff line number Diff line package es.redmic.ais.exceptions; import es.redmic.exception.common.BadRequestException; public class TooFrequentRequestsException extends BadRequestException { private static final long serialVersionUID = 1L; public TooFrequentRequestsException() { super(ExceptionType.TOO_FREQUENT_REQUESTS); } } src/main/resources/i18n/messages_es_ES.properties 0 → 100644 +3 −0 Original line number Diff line number Diff line #Ais exceptions InvalidUsernameException=Error obteniendo datos. Usuario o contraseña no válido TooFrequentRequestsException=Error obteniendo datos. Peticiones demasiado frecuentes No newline at end of file src/test/java/es/redmic/test/ais/unit/exceptions/BaseExceptionTest.java 0 → 100644 +46 −0 Original line number Diff line number Diff line package es.redmic.test.ais.unit.exceptions; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import java.text.MessageFormat; import java.util.List; import es.redmic.exception.common.BaseException; import es.redmic.exception.common.PatternUtils; public abstract class BaseExceptionTest { private final String resourcePath = "classpath*:i18n/messages_es_ES.properties"; protected void checkMessage(BaseException ex, String i18nKey, List<String> fields) { // @formatter:off String message = ex.getMessage(), pattern = PatternUtils.getPattern(i18nKey, resourcePath), expectedMessage = replaceFields(pattern, fields); // @formatter:on assertNotNull(message); assertNotEquals("", message); assertEquals(expectedMessage, message); if (fields != null && fields.size() > 0) { for (String field : fields) { assertTrue(message.contains(field)); } } } private String replaceFields(String pattern, List<String> fields) { if (fields == null || fields.size() == 0) return pattern; Object[] fieldsArray = fields.toArray(); MessageFormat format = new MessageFormat(pattern); return format.format(fieldsArray); } } Loading
src/main/java/es/redmic/ais/exceptions/ExceptionType.java 0 → 100644 +45 −0 Original line number Diff line number Diff line package es.redmic.ais.exceptions; import es.redmic.exception.common.ExceptionTypeItfc; public enum ExceptionType implements ExceptionTypeItfc { // @formatter:off // EventSource INVALID_USERNAME_OR_PASSWORD(Constants.INVALID_USERNAME_OR_PASSWORD), TOO_FREQUENT_REQUESTS(Constants.TOO_FREQUENT_REQUESTS); // @formatter:on final String type; ExceptionType(String type) { this.type = type; } public static ExceptionType fromString(String text) { if (text != null) { for (ExceptionType b : ExceptionType.values()) { if (text.equalsIgnoreCase(b.type)) { return b; } } } throw new IllegalArgumentException(text + " has no corresponding value"); } @Override public String toString() { return type; } private static class Constants { // @formatter:off public static final String INVALID_USERNAME_OR_PASSWORD = "InvalidUsernameException", TOO_FREQUENT_REQUESTS = "TooFrequentRequestsException"; // @formatter:on } }
src/main/java/es/redmic/ais/exceptions/InvalidUsernameException.java 0 → 100644 +12 −0 Original line number Diff line number Diff line package es.redmic.ais.exceptions; import es.redmic.exception.common.BadRequestException; public class InvalidUsernameException extends BadRequestException { private static final long serialVersionUID = 1L; public InvalidUsernameException() { super(ExceptionType.INVALID_USERNAME_OR_PASSWORD); } }
src/main/java/es/redmic/ais/exceptions/TooFrequentRequestsException.java 0 → 100644 +13 −0 Original line number Diff line number Diff line package es.redmic.ais.exceptions; import es.redmic.exception.common.BadRequestException; public class TooFrequentRequestsException extends BadRequestException { private static final long serialVersionUID = 1L; public TooFrequentRequestsException() { super(ExceptionType.TOO_FREQUENT_REQUESTS); } }
src/main/resources/i18n/messages_es_ES.properties 0 → 100644 +3 −0 Original line number Diff line number Diff line #Ais exceptions InvalidUsernameException=Error obteniendo datos. Usuario o contraseña no válido TooFrequentRequestsException=Error obteniendo datos. Peticiones demasiado frecuentes No newline at end of file
src/test/java/es/redmic/test/ais/unit/exceptions/BaseExceptionTest.java 0 → 100644 +46 −0 Original line number Diff line number Diff line package es.redmic.test.ais.unit.exceptions; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import java.text.MessageFormat; import java.util.List; import es.redmic.exception.common.BaseException; import es.redmic.exception.common.PatternUtils; public abstract class BaseExceptionTest { private final String resourcePath = "classpath*:i18n/messages_es_ES.properties"; protected void checkMessage(BaseException ex, String i18nKey, List<String> fields) { // @formatter:off String message = ex.getMessage(), pattern = PatternUtils.getPattern(i18nKey, resourcePath), expectedMessage = replaceFields(pattern, fields); // @formatter:on assertNotNull(message); assertNotEquals("", message); assertEquals(expectedMessage, message); if (fields != null && fields.size() > 0) { for (String field : fields) { assertTrue(message.contains(field)); } } } private String replaceFields(String pattern, List<String> fields) { if (fields == null || fields.size() == 0) return pattern; Object[] fieldsArray = fields.toArray(); MessageFormat format = new MessageFormat(pattern); return format.format(fieldsArray); } }