From 1b297621b8c24f46d554768ffdf5f7932a3e2367 Mon Sep 17 00:00:00 2001 From: 10micky10 <10miguel94@gmail.com> Date: Tue, 2 Mar 2021 18:11:24 -0800 Subject: [PATCH 1/5] add manifest --- pom.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pom.xml b/pom.xml index 72b7568..7665a55 100644 --- a/pom.xml +++ b/pom.xml @@ -60,6 +60,14 @@ maven-jar-plugin 3.0.2 + + + + true + org.fundacionjala.app.App + + + maven-install-plugin From 15c0a64e4f9a582946e30d27109946b1ca7d836b Mon Sep 17 00:00:00 2001 From: 10micky10 <10miguel94@gmail.com> Date: Tue, 2 Mar 2021 18:17:34 -0800 Subject: [PATCH 2/5] add numeric type --- .../app/quizz/model/QuestionType.java | 4 +++- .../configuration/NumericConfiguration.java | 10 ++++++++ .../quizz/model/validator/MaxValidator.java | 23 +++++++++++++++++++ .../quizz/model/validator/ValidatorType.java | 3 ++- 4 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 src/main/java/org/fundacionjala/app/quizz/model/configuration/NumericConfiguration.java create mode 100644 src/main/java/org/fundacionjala/app/quizz/model/validator/MaxValidator.java diff --git a/src/main/java/org/fundacionjala/app/quizz/model/QuestionType.java b/src/main/java/org/fundacionjala/app/quizz/model/QuestionType.java index 1e400d1..464ee91 100644 --- a/src/main/java/org/fundacionjala/app/quizz/model/QuestionType.java +++ b/src/main/java/org/fundacionjala/app/quizz/model/QuestionType.java @@ -5,11 +5,13 @@ import org.fundacionjala.app.quizz.model.validator.ValidatorType; import org.fundacionjala.app.quizz.model.configuration.DateConfiguration; import org.fundacionjala.app.quizz.model.configuration.PickOneConfiguration; +import org.fundacionjala.app.quizz.model.configuration.NumericConfiguration; public enum QuestionType { TEXT(1, "Text", new TextConfiguration()), DATE(2, "Date", new DateConfiguration()), - PICK_ONE(3, "Pick One", new PickOneConfiguration()); + PICK_ONE(3, "Pick One", new PickOneConfiguration()), + NUMERIC(4, "Numeric", new NumericConfiguration()); private final int code; private final String displayName; diff --git a/src/main/java/org/fundacionjala/app/quizz/model/configuration/NumericConfiguration.java b/src/main/java/org/fundacionjala/app/quizz/model/configuration/NumericConfiguration.java new file mode 100644 index 0000000..0185056 --- /dev/null +++ b/src/main/java/org/fundacionjala/app/quizz/model/configuration/NumericConfiguration.java @@ -0,0 +1,10 @@ +package org.fundacionjala.app.quizz.model.configuration; + +import org.fundacionjala.app.quizz.model.validator.ValidatorType; + +public class NumericConfiguration extends QuestionConfiguration{ + + public NumericConfiguration() { + super(false, ValidatorType.REQUIRED, ValidatorType.MIN, ValidatorType.MAX); + } +} diff --git a/src/main/java/org/fundacionjala/app/quizz/model/validator/MaxValidator.java b/src/main/java/org/fundacionjala/app/quizz/model/validator/MaxValidator.java new file mode 100644 index 0000000..5308c31 --- /dev/null +++ b/src/main/java/org/fundacionjala/app/quizz/model/validator/MaxValidator.java @@ -0,0 +1,23 @@ +package org.fundacionjala.app.quizz.model.validator; + +import java.util.List; + +public class MaxValidator implements Validator { + + private static final String ERROR_MESSAGE_SMALLER_THAN = "The value must be smaller than "; + + @Override + public void validate(String valueString, String conditionValueString, List errors) { + try { + int value = IntegerParser.parse(valueString); + int conditionValue = IntegerParser.parse(conditionValueString); + + if (value > conditionValue) { + errors.add(ERROR_MESSAGE_SMALLER_THAN + conditionValue); + } + } catch (NumberFormatException exception) { + exception.printStackTrace(); + errors.add(IntegerParser.ERROR_MESSAGE_INVALID_NUMBER); + } + } +} diff --git a/src/main/java/org/fundacionjala/app/quizz/model/validator/ValidatorType.java b/src/main/java/org/fundacionjala/app/quizz/model/validator/ValidatorType.java index 026d924..7dff42c 100644 --- a/src/main/java/org/fundacionjala/app/quizz/model/validator/ValidatorType.java +++ b/src/main/java/org/fundacionjala/app/quizz/model/validator/ValidatorType.java @@ -4,7 +4,8 @@ public enum ValidatorType { REQUIRED(1, "Required", new RequiredValidator()), DATE(2, "Date", new DateValidator()), MIN(3, "Min", new MinValidator()), - MIN_LENGTH(4, "Min Length", new MinLengthValidator()); + MIN_LENGTH(4, "Min Length", new MinLengthValidator()), + MAX(5, "Max", new MaxValidator()); private final int code; private final String displayName; From b46d44990dfe9357a6829409038ca5c302f05228 Mon Sep 17 00:00:00 2001 From: 10micky10 <10miguel94@gmail.com> Date: Tue, 2 Mar 2021 19:08:42 -0800 Subject: [PATCH 3/5] add valid --- .../model/validator/MaxLengthValidator.java | 23 +++++++++++++++++++ .../model/validator/MinLengthValidator.java | 2 +- .../model/validator/UpperCaseValidator.java | 15 ++++++++++++ 3 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 src/main/java/org/fundacionjala/app/quizz/model/validator/MaxLengthValidator.java create mode 100644 src/main/java/org/fundacionjala/app/quizz/model/validator/UpperCaseValidator.java diff --git a/src/main/java/org/fundacionjala/app/quizz/model/validator/MaxLengthValidator.java b/src/main/java/org/fundacionjala/app/quizz/model/validator/MaxLengthValidator.java new file mode 100644 index 0000000..696d6cc --- /dev/null +++ b/src/main/java/org/fundacionjala/app/quizz/model/validator/MaxLengthValidator.java @@ -0,0 +1,23 @@ +package org.fundacionjala.app.quizz.model.validator; + +import java.util.List; + +public class MaxLengthValidator implements Validator { + + private static final String ERROR_MESSAGE = "The value length must be less than "; + + @Override + public void validate(String value, String conditionValueString, List errors) { + try { + int conditionValue = IntegerParser.parse(conditionValueString); + + if (value.length() > conditionValue) { + errors.add(ERROR_MESSAGE + conditionValue); + } + } catch (NumberFormatException exception) { + exception.printStackTrace(); + errors.add(IntegerParser.ERROR_MESSAGE_INVALID_NUMBER); + } + + } +} diff --git a/src/main/java/org/fundacionjala/app/quizz/model/validator/MinLengthValidator.java b/src/main/java/org/fundacionjala/app/quizz/model/validator/MinLengthValidator.java index 2e7ed99..3deb3de 100644 --- a/src/main/java/org/fundacionjala/app/quizz/model/validator/MinLengthValidator.java +++ b/src/main/java/org/fundacionjala/app/quizz/model/validator/MinLengthValidator.java @@ -4,7 +4,7 @@ public class MinLengthValidator implements Validator { - private static final String ERROR_MESSAGE = "The value length must be less than "; + private static final String ERROR_MESSAGE = "The value length must be greater than "; @Override public void validate(String value, String conditionValueString, List errors) { diff --git a/src/main/java/org/fundacionjala/app/quizz/model/validator/UpperCaseValidator.java b/src/main/java/org/fundacionjala/app/quizz/model/validator/UpperCaseValidator.java new file mode 100644 index 0000000..9af1c2f --- /dev/null +++ b/src/main/java/org/fundacionjala/app/quizz/model/validator/UpperCaseValidator.java @@ -0,0 +1,15 @@ +package org.fundacionjala.app.quizz.model.validator; + +import java.util.List; + +public class UpperCaseValidator implements Validator { + + private static final String ERROR_MESSAGE = "The value text is only uppercase"; + + @Override + public void validate(String value, String conditionValueString, List errors) { + if (!(value.toUpperCase().equals(value))) { + errors.add(ERROR_MESSAGE); + } + } +} From 315becc9dce43bbbeefd75e678cf961a5401cc00 Mon Sep 17 00:00:00 2001 From: 10micky10 <10miguel94@gmail.com> Date: Tue, 2 Mar 2021 19:44:25 -0800 Subject: [PATCH 4/5] add show camp --- .../org/fundacionjala/app/quizz/console/QuizUIHandler.java | 5 ++++- src/main/java/org/fundacionjala/app/quizz/model/Answer.java | 4 ++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/fundacionjala/app/quizz/console/QuizUIHandler.java b/src/main/java/org/fundacionjala/app/quizz/console/QuizUIHandler.java index b1b1384..b21769e 100644 --- a/src/main/java/org/fundacionjala/app/quizz/console/QuizUIHandler.java +++ b/src/main/java/org/fundacionjala/app/quizz/console/QuizUIHandler.java @@ -33,7 +33,10 @@ public static void showQuiz(QuizAnswers quizAnswers) { System.out.println("============================================="); for (Answer answer : quizAnswers.getAnswers()) { - System.out.println(answer); + System.out.println("Answer title: " + answer.getQuestion().getTitle()); + System.out.println("Question Code: " + answer.getQuestion().getType().getCode()); + System.out.println("Question Name: " + answer.getQuestion().getType().getName()); + System.out.println(answer.toString()); } System.out.println("============================================="); diff --git a/src/main/java/org/fundacionjala/app/quizz/model/Answer.java b/src/main/java/org/fundacionjala/app/quizz/model/Answer.java index 334b5f6..ef5cda0 100644 --- a/src/main/java/org/fundacionjala/app/quizz/model/Answer.java +++ b/src/main/java/org/fundacionjala/app/quizz/model/Answer.java @@ -12,6 +12,10 @@ public Answer(Question question, Set answers) { this.answers = answers; } + public Question getQuestion(){ + return question; + } + @Override public String toString() { return question.getTitle() + ": " + Arrays.toString(answers.toArray()); From c7689cc3fb733ebc78be28c49f54bcf03de2ca6c Mon Sep 17 00:00:00 2001 From: 10micky10 <10miguel94@gmail.com> Date: Tue, 2 Mar 2021 19:53:49 -0800 Subject: [PATCH 5/5] end --- .../quizz/model/configuration/TextConfiguration.java | 2 +- .../app/quizz/model/validator/ValidatorType.java | 4 +++- .../app/quizz/model/validator/ValidatorIT.java | 10 ++++++++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/fundacionjala/app/quizz/model/configuration/TextConfiguration.java b/src/main/java/org/fundacionjala/app/quizz/model/configuration/TextConfiguration.java index ed1db26..39cb5c4 100644 --- a/src/main/java/org/fundacionjala/app/quizz/model/configuration/TextConfiguration.java +++ b/src/main/java/org/fundacionjala/app/quizz/model/configuration/TextConfiguration.java @@ -4,6 +4,6 @@ public class TextConfiguration extends QuestionConfiguration { public TextConfiguration() { - super(false, ValidatorType.REQUIRED, ValidatorType.MIN_LENGTH); + super(false, ValidatorType.REQUIRED, ValidatorType.MIN_LENGTH, ValidatorType.MAX_LENGTH, ValidatorType.UPPERCASE); } } diff --git a/src/main/java/org/fundacionjala/app/quizz/model/validator/ValidatorType.java b/src/main/java/org/fundacionjala/app/quizz/model/validator/ValidatorType.java index 7dff42c..fb49ec8 100644 --- a/src/main/java/org/fundacionjala/app/quizz/model/validator/ValidatorType.java +++ b/src/main/java/org/fundacionjala/app/quizz/model/validator/ValidatorType.java @@ -5,7 +5,9 @@ public enum ValidatorType { DATE(2, "Date", new DateValidator()), MIN(3, "Min", new MinValidator()), MIN_LENGTH(4, "Min Length", new MinLengthValidator()), - MAX(5, "Max", new MaxValidator()); + MAX(5, "Max", new MaxValidator()), + MAX_LENGTH(6, "Max Length", new MaxLengthValidator()), + UPPERCASE(7, "Uppercase", new UpperCaseValidator()); private final int code; private final String displayName; diff --git a/src/test/java/org/fundacionjala/app/quizz/model/validator/ValidatorIT.java b/src/test/java/org/fundacionjala/app/quizz/model/validator/ValidatorIT.java index 4ff023c..169585b 100644 --- a/src/test/java/org/fundacionjala/app/quizz/model/validator/ValidatorIT.java +++ b/src/test/java/org/fundacionjala/app/quizz/model/validator/ValidatorIT.java @@ -18,4 +18,14 @@ public void testDateValidator() { Assert.assertEquals(DateValidator.class, dateValidator.getClass()); Assert.assertTrue(errors.isEmpty()); } + + @Test + public void testTextValidator() { + List errors = new ArrayList<>(); + Validator validator = ValidatorType.UPPERCASE.getValidator(); + + validator.validate("HOLA", null, errors); + Assert.assertEquals(UpperCaseValidator.class, validator.getClass()); + Assert.assertTrue(errors.isEmpty()); + } }