Début de la feature avec des tests de base sur les variables #3

Open
Patrick FELIX-VIMALARATNAM wants to merge 19 commits from lebretonm/Projet_Pierront_Maxime_Marvin_Patrick:feature/RegisterNewBook into main
5 changed files with 34 additions and 11 deletions
Showing only changes of commit aca81b68db - Show all commits
@@ -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())
@@ -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,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;