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());
+ }
}