réussite des test sur la validation des valeurs et de l'exception

This commit is contained in:
2026-06-10 21:23:20 +02:00
parent 07b9357829
commit 6e2bf9aab9
5 changed files with 67 additions and 5 deletions
+5
View File
@@ -117,6 +117,11 @@
<version>${mockito.version}</version> <version>${mockito.version}</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<scope>test</scope>
</dependency>
</dependencies> </dependencies>
<build> <build>
@@ -0,0 +1,7 @@
package fr.iut_fbleau.but3.dev62.mylibrary.review.exception;
public class NotValidReviewException extends RuntimeException {
public NotValidReviewException(String message) {
super(message);
}
}
@@ -0,0 +1,52 @@
package fr.iut_fbleau.but3.dev62.mylibrary.review.validator;
import fr.iut_fbleau.but3.dev62.mylibrary.book.exception.NotValidBookException;
import fr.iut_fbleau.but3.dev62.mylibrary.review.ReviewInfo;
import fr.iut_fbleau.but3.dev62.mylibrary.review.exception.NotValidReviewException;
import java.time.LocalDate;
public class ReviewValidator {
public static final String NOTE_CANNOT_BE_LOWER_THAN_1 = "Note is greater than or equal to 1";
public static final String NOTE_CANNOT_BE_UPPER_THAN_5 = "Note is less than or equal to 5";
public static final String COMMENT_CANNOT_BE_BLANK = "Comment cannot be blank";
public static final String PURCHASE_DATE_IS_NOT_VALID = "Date is not valid";
public ReviewValidator() {
}
public static void validate(ReviewInfo newReview) throws NotValidReviewException {
validateNoteLower1(newReview);
validateNoteUpper5(newReview);
validateComment(newReview);
validatePurchaseDate(newReview);
}
private static void validateNoteLower1(ReviewInfo newReview)
throws NotValidReviewException {
if (newReview.note() <= 1) {
throw new NotValidReviewException(NOTE_CANNOT_BE_LOWER_THAN_1);
}
}
private static void validateNoteUpper5(ReviewInfo newReview)
throws NotValidReviewException {
if (newReview.note() >= 5) {
throw new NotValidReviewException("Note is less than or equal to 5");
}
}
private static void validateComment(ReviewInfo newReview) throws NotValidReviewException {
if (newReview.comment().isBlank()) {
throw new NotValidReviewException(COMMENT_CANNOT_BE_BLANK);
}
}
private static void validatePurchaseDate(ReviewInfo newReview) throws NotValidReviewException {
if (newReview.purchaseDate().isAfter(LocalDate.now())) {
throw new NotValidReviewException(PURCHASE_DATE_IS_NOT_VALID);
}
}
}
@@ -1,6 +1,5 @@
package fr.iut_fbleau.but3.dev62.mylibrary.review.exception; package fr.iut_fbleau.but3.dev62.mylibrary.review.exception;
import fr.iut_fbleau.but3.dev62.mylibrary.customer.exception.NotValidCustomerException;
import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.ParameterizedTest;
@@ -1,8 +1,7 @@
package fr.iut_fbleau.but3.dev62.mylibrary.review.validator; package fr.iut_fbleau.but3.dev62.mylibrary.review.validator;
import fr.iut_fbleau.but3.dev62.mylibrary.book.exception.NotValidBookException;
import fr.iut_fbleau.but3.dev62.mylibrary.book.validator.BookValidator;
import fr.iut_fbleau.but3.dev62.mylibrary.review.ReviewInfo; import fr.iut_fbleau.but3.dev62.mylibrary.review.ReviewInfo;
import fr.iut_fbleau.but3.dev62.mylibrary.review.exception.NotValidReviewException;
import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
@@ -67,7 +66,7 @@ public class ReviewValidatorTest {
@DisplayName("Should throw exception when comment is blank") @DisplayName("Should throw exception when comment is blank")
void testValidateBlankComment() { void testValidateBlankComment() {
LocalDate purchaseDate = LocalDate.of(2026, 3, 24); LocalDate purchaseDate = LocalDate.of(2026, 3, 24);
ReviewInfo reviewWithBlankComment = new ReviewInfo(6, "", purchaseDate); ReviewInfo reviewWithBlankComment = new ReviewInfo(3, "", purchaseDate);
NotValidReviewException exception = assertThrows( NotValidReviewException exception = assertThrows(
NotValidReviewException.class, NotValidReviewException.class,
@@ -82,7 +81,7 @@ public class ReviewValidatorTest {
@DisplayName("Should throw exception when last name contains only whitespace") @DisplayName("Should throw exception when last name contains only whitespace")
void testValidateWhitespaceLastName(String whitespace) { void testValidateWhitespaceLastName(String whitespace) {
LocalDate purchaseDate = LocalDate.of(2026, 3, 24); LocalDate purchaseDate = LocalDate.of(2026, 3, 24);
ReviewInfo reviewWithBlankComment = new ReviewInfo(6, whitespace, purchaseDate); ReviewInfo reviewWithBlankComment = new ReviewInfo(3, whitespace, purchaseDate);
NotValidReviewException exception = assertThrows( NotValidReviewException exception = assertThrows(
NotValidReviewException.class, NotValidReviewException.class,