forked from pierront/mylibrary-template
✅ revue de la sturcture de découpe des variable est reussite des test concerné par ce changement
This commit is contained in:
@@ -2,5 +2,5 @@ package fr.iut_fbleau.but3.dev62.mylibrary.book;
|
|||||||
|
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
|
|
||||||
public record BookInfo(String title, String author, String editor, LocalDate date) {
|
public record BookInfo(String isbn, String title, String author, String editor, LocalDate date) {
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package fr.iut_fbleau.but3.dev62.mylibrary.book;
|
||||||
|
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
@Builder
|
||||||
|
@Getter
|
||||||
|
public class BookSalesInfo {
|
||||||
|
private double price;
|
||||||
|
private Integer stock;
|
||||||
|
}
|
||||||
@@ -4,20 +4,21 @@ package fr.iut_fbleau.but3.dev62.mylibrary.book.converter;
|
|||||||
import fr.iut_fbleau.but3.dev62.mylibrary.book.BookDTO;
|
import fr.iut_fbleau.but3.dev62.mylibrary.book.BookDTO;
|
||||||
import fr.iut_fbleau.but3.dev62.mylibrary.book.BookDetails;
|
import fr.iut_fbleau.but3.dev62.mylibrary.book.BookDetails;
|
||||||
import fr.iut_fbleau.but3.dev62.mylibrary.book.BookInfo;
|
import fr.iut_fbleau.but3.dev62.mylibrary.book.BookInfo;
|
||||||
|
import fr.iut_fbleau.but3.dev62.mylibrary.book.BookSalesInfo;
|
||||||
import fr.iut_fbleau.but3.dev62.mylibrary.book.entity.Book;
|
import fr.iut_fbleau.but3.dev62.mylibrary.book.entity.Book;
|
||||||
|
|
||||||
public final class BookConverter {
|
public final class BookConverter {
|
||||||
private BookConverter(){}
|
private BookConverter(){}
|
||||||
|
|
||||||
public static Book ToDomain(BookInfo bookinfo, BookDetails bookdetails){
|
public static Book ToDomain(BookInfo bookinfo, BookSalesInfo booksalesinfo, BookDetails bookdetails){
|
||||||
return Book.builder()
|
return Book.builder()
|
||||||
.isbn("0000000000000")
|
.isbn(bookinfo.isbn())
|
||||||
.title(bookinfo.title())
|
.title(bookinfo.title())
|
||||||
.author(bookinfo.author())
|
.author(bookinfo.author())
|
||||||
.editor(bookinfo.editor())
|
.editor(bookinfo.editor())
|
||||||
.date(bookinfo.date())
|
.date(bookinfo.date())
|
||||||
.price(50.99)
|
.price(booksalesinfo.getPrice())
|
||||||
.stock(5)
|
.stock(booksalesinfo.getStock())
|
||||||
.categories(bookdetails.getCategories())
|
.categories(bookdetails.getCategories())
|
||||||
.description(bookdetails.getDescription())
|
.description(bookdetails.getDescription())
|
||||||
.language(bookdetails.getLanguage())
|
.language(bookdetails.getLanguage())
|
||||||
|
|||||||
+17
-5
@@ -3,6 +3,7 @@ package fr.iut_fbleau.but3.dev62.mylibrary.book.converter;
|
|||||||
import fr.iut_fbleau.but3.dev62.mylibrary.book.BookDTO;
|
import fr.iut_fbleau.but3.dev62.mylibrary.book.BookDTO;
|
||||||
import fr.iut_fbleau.but3.dev62.mylibrary.book.BookInfo;
|
import fr.iut_fbleau.but3.dev62.mylibrary.book.BookInfo;
|
||||||
import fr.iut_fbleau.but3.dev62.mylibrary.book.BookDetails;
|
import fr.iut_fbleau.but3.dev62.mylibrary.book.BookDetails;
|
||||||
|
import fr.iut_fbleau.but3.dev62.mylibrary.book.BookSalesInfo;
|
||||||
import fr.iut_fbleau.but3.dev62.mylibrary.book.entity.Book;
|
import fr.iut_fbleau.but3.dev62.mylibrary.book.entity.Book;
|
||||||
|
|
||||||
import org.junit.jupiter.api.DisplayName;
|
import org.junit.jupiter.api.DisplayName;
|
||||||
@@ -24,7 +25,11 @@ public class BookConverterTest {
|
|||||||
@Test
|
@Test
|
||||||
void ShouldConvertBookToDomain(){
|
void ShouldConvertBookToDomain(){
|
||||||
LocalDate date = LocalDate.of(2026, 3, 24);
|
LocalDate date = LocalDate.of(2026, 3, 24);
|
||||||
BookInfo bookinfo = new BookInfo("La vie de Maxime", "Marvin Aubert", "Kioon", date);
|
BookInfo bookinfo = new BookInfo("0000000000000","La vie de Maxime", "Marvin Aubert", "Kioon", date);
|
||||||
|
BookSalesInfo booksalesinfo = BookSalesInfo.builder()
|
||||||
|
.price(12)
|
||||||
|
.stock(10)
|
||||||
|
.build();
|
||||||
ArrayList<String> categories = new ArrayList<>();
|
ArrayList<String> categories = new ArrayList<>();
|
||||||
categories.add("Thriller");
|
categories.add("Thriller");
|
||||||
categories.add("Biographie");
|
categories.add("Biographie");
|
||||||
@@ -34,13 +39,16 @@ public class BookConverterTest {
|
|||||||
.language("Français")
|
.language("Français")
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
Book result = BookConverter.ToDomain(bookinfo, bookdetails);
|
Book result = BookConverter.ToDomain(bookinfo, booksalesinfo, bookdetails);
|
||||||
|
|
||||||
|
assertEquals(bookinfo.isbn(), result.getIsbn());
|
||||||
assertEquals(bookinfo.title(), result.getTitle());
|
assertEquals(bookinfo.title(), result.getTitle());
|
||||||
assertEquals(bookinfo.author(), result.getAuthor());
|
assertEquals(bookinfo.author(), result.getAuthor());
|
||||||
assertEquals(bookinfo.editor(), result.getEditor());
|
assertEquals(bookinfo.editor(), result.getEditor());
|
||||||
assertEquals(bookinfo.date(), result.getDate());
|
assertEquals(bookinfo.date(), result.getDate());
|
||||||
assertEquals(categories, result.getCategories());
|
assertEquals(booksalesinfo.getPrice(), result.getPrice());
|
||||||
|
assertEquals(booksalesinfo.getStock(), result.getStock());
|
||||||
|
assertEquals(bookdetails.getCategories(), result.getCategories());
|
||||||
assertEquals(bookdetails.getDescription(), result.getDescription());
|
assertEquals(bookdetails.getDescription(), result.getDescription());
|
||||||
assertEquals(bookdetails.getLanguage(), result.getLanguage());
|
assertEquals(bookdetails.getLanguage(), result.getLanguage());
|
||||||
}
|
}
|
||||||
@@ -88,7 +96,11 @@ public class BookConverterTest {
|
|||||||
@DisplayName("Should preserve empty string values during conversion")
|
@DisplayName("Should preserve empty string values during conversion")
|
||||||
void shouldPreserveEmptyStrings() {
|
void shouldPreserveEmptyStrings() {
|
||||||
LocalDate date = LocalDate.of(2026, 3, 24);
|
LocalDate date = LocalDate.of(2026, 3, 24);
|
||||||
BookInfo bookinfo = new BookInfo("La vie de Maxime", "Marvin Aubert", "Kioon", date);
|
BookInfo bookinfo = new BookInfo("0000000000000","La vie de Maxime", "Marvin Aubert", "Kioon", date);
|
||||||
|
BookSalesInfo booksalesinfo = BookSalesInfo.builder()
|
||||||
|
.price(12)
|
||||||
|
.stock(10)
|
||||||
|
.build();
|
||||||
ArrayList<String> categories = new ArrayList<>();
|
ArrayList<String> categories = new ArrayList<>();
|
||||||
categories.add("Thriller");
|
categories.add("Thriller");
|
||||||
categories.add("Biographie");
|
categories.add("Biographie");
|
||||||
@@ -98,7 +110,7 @@ public class BookConverterTest {
|
|||||||
.language("Français")
|
.language("Français")
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
Book book = BookConverter.ToDomain(bookinfo, bookdetails);
|
Book book = BookConverter.ToDomain(bookinfo, booksalesinfo, bookdetails);
|
||||||
BookDTO result = BookConverter.ToDTO(book);
|
BookDTO result = BookConverter.ToDTO(book);
|
||||||
|
|
||||||
assertEquals("", result.getDescription());
|
assertEquals("", result.getDescription());
|
||||||
|
|||||||
-1
@@ -1,6 +1,5 @@
|
|||||||
package fr.iut_fbleau.but3.dev62.mylibrary.book.exception;
|
package fr.iut_fbleau.but3.dev62.mylibrary.book.exception;
|
||||||
|
|
||||||
import fr.iut_fbleau.but3.dev62.mylibrary.customer.exception.IllegalCustomerPointException;
|
|
||||||
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;
|
||||||
|
|||||||
Reference in New Issue
Block a user