From 80c2b82c98ccca80d62269767c173b20a7767e64 Mon Sep 17 00:00:00 2001 From: felix-vi Date: Wed, 25 Mar 2026 09:40:02 +0100 Subject: [PATCH] =?UTF-8?q?D=C3=A9but=20de=20la=20feature=20avec=20des=20t?= =?UTF-8?q?ests=20de=20base=20sur=20les=20variables?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- interface-contracts.json | 1 + .../dev62/mylibrary/book/BookDetails.java | 17 +++++ .../but3/dev62/mylibrary/book/BookInfo.java | 6 ++ .../dev62/mylibrary/book/entity/Book.java | 21 ++++++ .../book/converter/BookConverterTest.java | 73 +++++++++++++++++++ 5 files changed, 118 insertions(+) create mode 100644 src/main/java/fr/iut_fbleau/but3/dev62/mylibrary/book/BookDetails.java create mode 100644 src/main/java/fr/iut_fbleau/but3/dev62/mylibrary/book/BookInfo.java create mode 100644 src/main/java/fr/iut_fbleau/but3/dev62/mylibrary/book/entity/Book.java create mode 100644 src/test/java/fr/iut_fbleau/but3/dev62/mylibrary/book/converter/BookConverterTest.java diff --git a/interface-contracts.json b/interface-contracts.json index 98f304b..c5375c0 100644 --- a/interface-contracts.json +++ b/interface-contracts.json @@ -14,6 +14,7 @@ "langue": "string" }, "output": { + "_comment": "c'est ce qui affiche quand tu crée avec la usecase (regarde register de customer)", "isbn": "string(13)" } }, diff --git a/src/main/java/fr/iut_fbleau/but3/dev62/mylibrary/book/BookDetails.java b/src/main/java/fr/iut_fbleau/but3/dev62/mylibrary/book/BookDetails.java new file mode 100644 index 0000000..15aa3fc --- /dev/null +++ b/src/main/java/fr/iut_fbleau/but3/dev62/mylibrary/book/BookDetails.java @@ -0,0 +1,17 @@ +package fr.iut_fbleau.but3.dev62.mylibrary.book; + + +import lombok.Builder; +import lombok.Getter; + +import java.util.ArrayList; + +@Builder +@Getter +public class BookDetails { + private ArrayList categories = new ArrayList<>(); + private String description ; + private String language; + + +} diff --git a/src/main/java/fr/iut_fbleau/but3/dev62/mylibrary/book/BookInfo.java b/src/main/java/fr/iut_fbleau/but3/dev62/mylibrary/book/BookInfo.java new file mode 100644 index 0000000..0ecc1b8 --- /dev/null +++ b/src/main/java/fr/iut_fbleau/but3/dev62/mylibrary/book/BookInfo.java @@ -0,0 +1,6 @@ +package fr.iut_fbleau.but3.dev62.mylibrary.book; + +import java.time.LocalDate; + +public record BookInfo(String title, String author, String editor, LocalDate date) { +} diff --git a/src/main/java/fr/iut_fbleau/but3/dev62/mylibrary/book/entity/Book.java b/src/main/java/fr/iut_fbleau/but3/dev62/mylibrary/book/entity/Book.java new file mode 100644 index 0000000..e7ef3db --- /dev/null +++ b/src/main/java/fr/iut_fbleau/but3/dev62/mylibrary/book/entity/Book.java @@ -0,0 +1,21 @@ +package fr.iut_fbleau.but3.dev62.mylibrary.book.entity; + + +import lombok.Builder; +import lombok.Getter; + +import java.time.LocalDate; +import java.util.ArrayList; + +@Getter +@Builder +public class Book { + private ArrayList categories = new ArrayList<>(); + private String description ; + private String language; + private String title; + private String author; + private String editor; + private LocalDate date; + +} diff --git a/src/test/java/fr/iut_fbleau/but3/dev62/mylibrary/book/converter/BookConverterTest.java b/src/test/java/fr/iut_fbleau/but3/dev62/mylibrary/book/converter/BookConverterTest.java new file mode 100644 index 0000000..e517aef --- /dev/null +++ b/src/test/java/fr/iut_fbleau/but3/dev62/mylibrary/book/converter/BookConverterTest.java @@ -0,0 +1,73 @@ +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.BookInfo; +import fr.iut_fbleau.but3.dev62.mylibrary.book.BookDetails; +import fr.iut_fbleau.but3.dev62.mylibrary.book.entity.Book; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; + +import java.util.ArrayList; +import java.time.LocalDate; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +@DisplayName("BookConverterTest Unit Tests") +public class BookConverterTest { + + @Nested + @DisplayName("toDomain() method tests") + class ToDomainTests { + + @Test + void ShouldConvertBookToDomain(){ + LocalDate date = LocalDate.of(2026, 3, 24); + BookInfo bookinfo = new BookInfo("La vie de Maxime", "Marvin Aubert", "Kioon", date); + ArrayList categories = new ArrayList<>(); + categories.add("Thriller"); + categories.add("Biographie"); + BookDetails.builder() + .categories(categories) + .description("C'était un brave partit trop tôt") + .language("Français") + .build(); + + Book result = BookConvert.ToDomain(bookinfo,bookdetails); + + //assertNotNull(result); + assertEquals(bookinfo.title(), result.getTitle()); + assertEquals(bookinfo.author(), result.getAuthor()); + assertEquals(bookinfo.editor(), result.getEditor()); + assertEquals(bookinfo.date(), result.getDate()); + assertEquals(categories, result.getCategories()); + assertEquals(bookdetails.getDescription(), result.getDescription()); + assertEquals(bookdetails.getLanguage(), result.getLanguage()); + } + } +/** + @Nested + @DisplayName("toDTO() method tests") + class ToDTOTests { + LocalDate date = LocalDate.of(2026, 3, 24); + ArrayList categories = new ArrayList(); + categories.add("Thriller"); + categories.add("Biographie"); + Book book = Book.builder() + .isbn(1234567891012) + .title("La vie de Maxime") + .author("Marvin Aubert") + .editor("Kioon") + .date(date) + .price() + .stock() + .categories(categories) + .Description() + .language() + .build(); + + BookDTO result = BookConvert.ToDTO(book); + + }**/ +}