Compare commits

..

3 Commits

Author SHA1 Message Date
Marvin AUBERT 50dd02423d réussite des test des de conversions 2026-06-09 21:41:25 +02:00
Marvin AUBERT 6e3750e275 changement de nol de dossier 2026-06-09 21:24:39 +02:00
Marvin AUBERT 58e4a53196 création des test du de conversion 2026-06-09 21:23:06 +02:00
5 changed files with 152 additions and 0 deletions
@@ -0,0 +1,18 @@
package fr.iut_fbleau.but3.dev62.mylibrary.review;
import lombok.Builder;
import lombok.Getter;
import java.time.LocalDate;
import java.util.UUID;
@Getter
@Builder
public class ReviewDTO {
private UUID customerId;
private UUID bookId;
private Integer note;
private String comment;
private LocalDate purchaseDate;
}
@@ -0,0 +1,6 @@
package fr.iut_fbleau.but3.dev62.mylibrary.review;
import java.time.LocalDate;
public record ReviewInfo(Integer note, String comment, LocalDate purchaseDate) {
}
@@ -0,0 +1,29 @@
package fr.iut_fbleau.but3.dev62.mylibrary.review.converter;
import fr.iut_fbleau.but3.dev62.mylibrary.review.ReviewDTO;
import fr.iut_fbleau.but3.dev62.mylibrary.review.ReviewInfo;
import fr.iut_fbleau.but3.dev62.mylibrary.review.entity.Review;
public class ReviewConverter {
private ReviewConverter() {
}
public static Review toDomain(ReviewInfo newReview) {
return Review.builder()
.note(newReview.note())
.comment(newReview.comment())
.purchaseDate(newReview.purchaseDate())
.build();
}
public static ReviewDTO toDTO(Review review) {
return ReviewDTO.builder()
.customerId(review.getCustomerId())
.bookId(review.getBookId())
.note(review.getNote())
.comment(review.getComment())
.purchaseDate(review.getPurchaseDate())
.build();
}
}
@@ -0,0 +1,18 @@
package fr.iut_fbleau.but3.dev62.mylibrary.review.entity;
import lombok.Builder;
import lombok.Getter;
import java.time.LocalDate;
import java.util.UUID;
@Getter
@Builder
public class Review {
private UUID customerId;
private UUID bookId;
private Integer note;
private String comment;
private LocalDate purchaseDate;
}
@@ -0,0 +1,81 @@
package fr.iut_fbleau.but3.dev62.mylibrary.review.converter;
import java.time.LocalDate;
import java.util.UUID;
import fr.iut_fbleau.but3.dev62.mylibrary.review.ReviewDTO;
import fr.iut_fbleau.but3.dev62.mylibrary.review.ReviewInfo;
import fr.iut_fbleau.but3.dev62.mylibrary.review.entity.Review;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
@DisplayName("ReviewConverterTest Unit Tests")
public class ReviewConverterTest {
@Nested
@DisplayName("toDomain() method tests")
class ToDomainTests {
@Test
@DisplayName("Should convert ReviewInfo to Review domain object")
void shouldConvertReviewInfoToDomain() {
// Given
LocalDate date = LocalDate.of(2026, 3, 24);
ReviewInfo reviewInfo = new ReviewInfo(5, "tres bon livre", date);
// When
Review result = ReviewConverter.toDomain(reviewInfo);
// Then
assertNotNull(result);
assertEquals(reviewInfo.note(), result.getNote());
assertEquals(reviewInfo.comment(), result.getComment());
assertEquals(reviewInfo.purchaseDate(), result.getPurchaseDate());
}
}
@Nested
@DisplayName("toDTO() method tests")
class ToDTOTests {
@Test
@DisplayName("Should convert Review domain object to ReviewDTO with all fields mapped correctly")
void shouldConvertReviewToDTO() {
LocalDate date = LocalDate.of(2026, 3, 24);
Review review = Review.builder()
.customerId(UUID.randomUUID())
.bookId(UUID.randomUUID())
.note(5)
.comment("très bon livre")
.purchaseDate(date)
.build();
ReviewDTO result = ReviewConverter.toDTO(review);
assertNotNull(result);
assertEquals(review.getCustomerId(), result.getCustomerId());
assertEquals(review.getBookId(), result.getBookId());
assertEquals(review.getNote(), result.getNote());
assertEquals(review.getComment(), result.getComment());
assertEquals(review.getPurchaseDate(), result.getPurchaseDate());
}
}
@Test
@DisplayName("Should preserve empty string values during conversion")
void shouldPreserveEmptyStrings() {
LocalDate date = LocalDate.of(2026, 3, 24);
ReviewInfo reviewInfo = new ReviewInfo(5, "", date);
Review domainResult = ReviewConverter.toDomain(reviewInfo);
ReviewDTO dtoResult = ReviewConverter.toDTO(domainResult);
assertEquals(5, dtoResult.getNote());
assertEquals("", dtoResult.getComment());
assertEquals(date, dtoResult.getPurchaseDate());
}
}