Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,14 @@
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>org.fundacionjala.app.App</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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("=============================================");
Expand Down
4 changes: 4 additions & 0 deletions src/main/java/org/fundacionjala/app/quizz/model/Answer.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,10 @@ public Answer(Question question, Set<String> answers) {
this.answers = answers;
}

public Question getQuestion(){
return question;
}

@Override
public String toString() {
return question.getTitle() + ": " + Arrays.toString(answers.toArray());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
Original file line number Diff line number Diff line change
@@ -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);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
}
Original file line number Diff line number Diff line change
@@ -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<String> 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);
}

}
}
Original file line number Diff line number Diff line change
@@ -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<String> 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);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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<String> errors) {
Expand Down
Original file line number Diff line number Diff line change
@@ -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<String> errors) {
if (!(value.toUpperCase().equals(value))) {
errors.add(ERROR_MESSAGE);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,10 @@ 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()),
MAX_LENGTH(6, "Max Length", new MaxLengthValidator()),
UPPERCASE(7, "Uppercase", new UpperCaseValidator());

private final int code;
private final String displayName;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,14 @@ public void testDateValidator() {
Assert.assertEquals(DateValidator.class, dateValidator.getClass());
Assert.assertTrue(errors.isEmpty());
}

@Test
public void testTextValidator() {
List<String> errors = new ArrayList<>();
Validator validator = ValidatorType.UPPERCASE.getValidator();

validator.validate("HOLA", null, errors);
Assert.assertEquals(UpperCaseValidator.class, validator.getClass());
Assert.assertTrue(errors.isEmpty());
}
}