From d80f5cf00c0fed366629546c526a2091211721dc Mon Sep 17 00:00:00 2001 From: Alexander Maier Date: Tue, 27 Jun 2023 15:56:21 +0200 Subject: [PATCH 01/17] created test class "OfferRetrieverTest" --- .../service/retriever/OfferRetrieverTest.java | 85 +++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 src/test/java/de/rwu/easydrop/service/retriever/OfferRetrieverTest.java diff --git a/src/test/java/de/rwu/easydrop/service/retriever/OfferRetrieverTest.java b/src/test/java/de/rwu/easydrop/service/retriever/OfferRetrieverTest.java new file mode 100644 index 0000000..f29059a --- /dev/null +++ b/src/test/java/de/rwu/easydrop/service/retriever/OfferRetrieverTest.java @@ -0,0 +1,85 @@ +package de.rwu.easydrop.service.retriever; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import javax.naming.ConfigurationException; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; + +import de.rwu.easydrop.api.client.AmazonProductDataSource; +import de.rwu.easydrop.api.client.DataSourceFactory; +import de.rwu.easydrop.api.client.EbayItemDataSource; +import de.rwu.easydrop.api.dto.OfferDTO; +import de.rwu.easydrop.data.connector.OfferPersistenceInterface; +import de.rwu.easydrop.model.Offer; +import de.rwu.easydrop.util.Config; + + + + +class OfferRetrieverTest { + + @Mock + private Config config; + @Mock + private DataSourceFactory dataSourceFactory; + @Mock + private AmazonProductDataSource amazonDataSource; + @Mock + private EbayItemDataSource ebayDataSource; + @Mock + private OfferDTO offerDTO; + @Mock + private Offer offer; + @Mock + private OfferPersistenceInterface persistence; + + private OfferRetriever offerRetriever; + + @BeforeEach + void setUp() throws ConfigurationException { + MockitoAnnotations.openMocks(this); + when(config.getProperty("AMAZON_API_URL")).thenReturn("https://api.amazon.com"); + when(config.getProperty("AMAZON_API_KEY")).thenReturn("amazon-api-key"); + dataSourceFactory.setConfig(config); + offerRetriever = new OfferRetriever(persistence); + } + + @Test + void getOfferFromPersistence(){ + //Arrange + String offerId = "187"; + String lastUpdate = "2023-01-01"; + when(persistence.getOfferDTOById(offerId)).thenReturn(offerDTO); + when(offerDTO.getOfferId()).thenReturn(offerId); + when(offerDTO.getLastUpdate()).thenReturn(lastUpdate); + + //Act + Offer result = offerRetriever.getOfferFromPersistence(offerId); + + //Assert + assertEquals(offerId, result.getOfferId()); + assertEquals(lastUpdate, result.getLastUpdate()); + + //Verify + verify(persistence, times(1)).getOfferDTOById(offerId); + + } + + + + + + + + + + + +} From e0f30e4710e0b1b139f5e21a86110a76e7f77d25 Mon Sep 17 00:00:00 2001 From: Alexander Maier Date: Tue, 27 Jun 2023 15:58:10 +0200 Subject: [PATCH 02/17] created test getOfferFromPersistence --- src/test/java/de/rwu/easydrop/model/ProductCatalogueTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/de/rwu/easydrop/model/ProductCatalogueTest.java b/src/test/java/de/rwu/easydrop/model/ProductCatalogueTest.java index ebdcab4..df78e3e 100644 --- a/src/test/java/de/rwu/easydrop/model/ProductCatalogueTest.java +++ b/src/test/java/de/rwu/easydrop/model/ProductCatalogueTest.java @@ -1,6 +1,6 @@ package de.rwu.easydrop.model; -import static org.mockito.Mockito.description; + import java.util.List; From 09cfb6adfab4983d8e6e5ac1f9df99b67407b6b6 Mon Sep 17 00:00:00 2001 From: Alexander Maier Date: Tue, 27 Jun 2023 16:14:55 +0200 Subject: [PATCH 03/17] created product mock object --- .../easydrop/service/retriever/OfferRetrieverTest.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/test/java/de/rwu/easydrop/service/retriever/OfferRetrieverTest.java b/src/test/java/de/rwu/easydrop/service/retriever/OfferRetrieverTest.java index f29059a..d994e46 100644 --- a/src/test/java/de/rwu/easydrop/service/retriever/OfferRetrieverTest.java +++ b/src/test/java/de/rwu/easydrop/service/retriever/OfferRetrieverTest.java @@ -1,6 +1,7 @@ package de.rwu.easydrop.service.retriever; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.mockito.Mockito.mock; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -16,6 +17,7 @@ import de.rwu.easydrop.api.client.AmazonProductDataSource; import de.rwu.easydrop.api.client.DataSourceFactory; import de.rwu.easydrop.api.client.EbayItemDataSource; import de.rwu.easydrop.api.dto.OfferDTO; +import de.rwu.easydrop.api.dto.ProductDTO; import de.rwu.easydrop.data.connector.OfferPersistenceInterface; import de.rwu.easydrop.model.Offer; import de.rwu.easydrop.util.Config; @@ -53,6 +55,12 @@ class OfferRetrieverTest { @Test void getOfferFromPersistence(){ + + // a mock ProductDTO object to return from the offerDTO mock + ProductDTO productDTO = mock(ProductDTO.class); + when(productDTO.isAvailable()).thenReturn(false); + + //Arrange String offerId = "187"; String lastUpdate = "2023-01-01"; From b1233922bdcf10fd74680303f68a065e8447d479 Mon Sep 17 00:00:00 2001 From: Alexander Maier Date: Tue, 27 Jun 2023 16:20:25 +0200 Subject: [PATCH 04/17] offerdto instance erstellt --- src/main/java/de/rwu/easydrop/api/dto/OfferDTO.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/main/java/de/rwu/easydrop/api/dto/OfferDTO.java b/src/main/java/de/rwu/easydrop/api/dto/OfferDTO.java index 8ffd6a8..479c052 100644 --- a/src/main/java/de/rwu/easydrop/api/dto/OfferDTO.java +++ b/src/main/java/de/rwu/easydrop/api/dto/OfferDTO.java @@ -28,4 +28,14 @@ public class OfferDTO { * Date of last update of the offer. */ private String lastUpdate; + + /** + * Creates OfferDTO instance. + * @param newofferId + * @param newLastUpdate + */ + public OfferDTO(final String newofferId, final String newLastUpdate){ + this.offerId = newofferId; + this.lastUpdate = newLastUpdate; + } } From 6ca2027123527eeb2bcec4c84e666613df0ef48c Mon Sep 17 00:00:00 2001 From: Alexander Maier Date: Tue, 27 Jun 2023 16:41:25 +0200 Subject: [PATCH 05/17] fixed test "getOfferFromPersistence" --- .../service/retriever/OfferRetrieverTest.java | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/src/test/java/de/rwu/easydrop/service/retriever/OfferRetrieverTest.java b/src/test/java/de/rwu/easydrop/service/retriever/OfferRetrieverTest.java index d994e46..aa95f42 100644 --- a/src/test/java/de/rwu/easydrop/service/retriever/OfferRetrieverTest.java +++ b/src/test/java/de/rwu/easydrop/service/retriever/OfferRetrieverTest.java @@ -23,8 +23,6 @@ import de.rwu.easydrop.model.Offer; import de.rwu.easydrop.util.Config; - - class OfferRetrieverTest { @Mock @@ -56,10 +54,9 @@ class OfferRetrieverTest { @Test void getOfferFromPersistence(){ - // a mock ProductDTO object to return from the offerDTO mock + //Mock ProductDTO object to return from the offerDTO mock ProductDTO productDTO = mock(ProductDTO.class); - when(productDTO.isAvailable()).thenReturn(false); - + when(productDTO.isAvailable()).thenReturn(true); //Arrange String offerId = "187"; @@ -67,6 +64,8 @@ class OfferRetrieverTest { when(persistence.getOfferDTOById(offerId)).thenReturn(offerDTO); when(offerDTO.getOfferId()).thenReturn(offerId); when(offerDTO.getLastUpdate()).thenReturn(lastUpdate); + when(offerDTO.getSourceProduct()).thenReturn(productDTO); + when(offerDTO.getTargetProduct()).thenReturn(productDTO); //Act Offer result = offerRetriever.getOfferFromPersistence(offerId); @@ -80,14 +79,4 @@ class OfferRetrieverTest { } - - - - - - - - - - } From b551f03d160dffc21e61858686d2f86f090d2529 Mon Sep 17 00:00:00 2001 From: Alexander Maier Date: Tue, 27 Jun 2023 16:42:49 +0200 Subject: [PATCH 06/17] fixed checkstyle problems --- src/main/java/de/rwu/easydrop/api/dto/OfferDTO.java | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/src/main/java/de/rwu/easydrop/api/dto/OfferDTO.java b/src/main/java/de/rwu/easydrop/api/dto/OfferDTO.java index 479c052..8dc04d0 100644 --- a/src/main/java/de/rwu/easydrop/api/dto/OfferDTO.java +++ b/src/main/java/de/rwu/easydrop/api/dto/OfferDTO.java @@ -29,13 +29,5 @@ public class OfferDTO { */ private String lastUpdate; - /** - * Creates OfferDTO instance. - * @param newofferId - * @param newLastUpdate - */ - public OfferDTO(final String newofferId, final String newLastUpdate){ - this.offerId = newofferId; - this.lastUpdate = newLastUpdate; - } + } From f9ea1f65ca3a7d68803d074385e6367d85f76a13 Mon Sep 17 00:00:00 2001 From: Alexander Maier Date: Tue, 27 Jun 2023 17:19:32 +0200 Subject: [PATCH 07/17] created test test for writeOffer --- .../service/writer/OfferWriterTest.java | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 src/test/java/de/rwu/easydrop/service/writer/OfferWriterTest.java diff --git a/src/test/java/de/rwu/easydrop/service/writer/OfferWriterTest.java b/src/test/java/de/rwu/easydrop/service/writer/OfferWriterTest.java new file mode 100644 index 0000000..2d966bd --- /dev/null +++ b/src/test/java/de/rwu/easydrop/service/writer/OfferWriterTest.java @@ -0,0 +1,62 @@ +package de.rwu.easydrop.service.writer; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import javax.sound.sampled.AudioFileFormat.Type; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; + +import de.rwu.easydrop.api.dto.OfferDTO; +import de.rwu.easydrop.api.dto.ProductDTO; +import de.rwu.easydrop.data.connector.OfferPersistenceInterface; +import de.rwu.easydrop.model.Offer; +import de.rwu.easydrop.model.Product; +import de.rwu.easydrop.model.Webshop; + +public class OfferWriterTest { + + @Mock + private OfferDTO offerDTO; + @Mock + private OfferPersistenceInterface persistence; + + private OfferWriter offerWriter; + + @BeforeEach + public void setup() { + MockitoAnnotations.openMocks(this); + offerWriter = new OfferWriter(persistence); + } + + + + + @Test + void writeOfferToPersistence_InvalidProduct_ThrowsException() { + //Arrange + Offer offer = new Offer(); + offer.setOfferId(""); + offer.setLastUpdate(""); + + //Act and Assert + assertThrows(Exception.class, () -> offerWriter.writeOfferToPersistence(offer)); + } + + + + + + + + + + +} From 23c8a8c95a94ce71cce2b753e625478487357591 Mon Sep 17 00:00:00 2001 From: Alexander Maier Date: Tue, 27 Jun 2023 17:23:05 +0200 Subject: [PATCH 08/17] created test write offer with validproduct --- .../service/writer/OfferWriterTest.java | 27 ++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/src/test/java/de/rwu/easydrop/service/writer/OfferWriterTest.java b/src/test/java/de/rwu/easydrop/service/writer/OfferWriterTest.java index 2d966bd..ef2d367 100644 --- a/src/test/java/de/rwu/easydrop/service/writer/OfferWriterTest.java +++ b/src/test/java/de/rwu/easydrop/service/writer/OfferWriterTest.java @@ -36,9 +36,6 @@ public class OfferWriterTest { offerWriter = new OfferWriter(persistence); } - - - @Test void writeOfferToPersistence_InvalidProduct_ThrowsException() { //Arrange @@ -50,6 +47,30 @@ public class OfferWriterTest { assertThrows(Exception.class, () -> offerWriter.writeOfferToPersistence(offer)); } + @Test + void writeOfferToPresistence_ValidProduct_CallsSaveProduct(){ + + // Arrange + Product product = new Product(); + product.setProductId("12345"); + product.setDataOrigin(Webshop.AMAZON); + product.setCurrentPrice(9.99); + + // Arrange + Offer offer = new Offer(); + offer.setOfferId("26876"); + offer.setLastUpdate("2022-12-25"); + offer.setSourceProduct(product); + offer.setTargetProduct(product); + + // Act + offerWriter.writeOfferToPersistence(offer); + + // Assert + Mockito.verify(persistence).writeOffer(any(OfferDTO.class)); + + } + From 1b30e29d145b90fdeacc9ad813166816efb4c0c7 Mon Sep 17 00:00:00 2001 From: Alexander Maier Date: Tue, 27 Jun 2023 17:23:36 +0200 Subject: [PATCH 09/17] created test for writeOffer with valid product --- .../java/de/rwu/easydrop/service/writer/OfferWriterTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/de/rwu/easydrop/service/writer/OfferWriterTest.java b/src/test/java/de/rwu/easydrop/service/writer/OfferWriterTest.java index ef2d367..1cbe974 100644 --- a/src/test/java/de/rwu/easydrop/service/writer/OfferWriterTest.java +++ b/src/test/java/de/rwu/easydrop/service/writer/OfferWriterTest.java @@ -47,7 +47,7 @@ public class OfferWriterTest { assertThrows(Exception.class, () -> offerWriter.writeOfferToPersistence(offer)); } - @Test + @Test void writeOfferToPresistence_ValidProduct_CallsSaveProduct(){ // Arrange From af000158fd19c60ca0de67487cca56cf39ac4d3e Mon Sep 17 00:00:00 2001 From: Alexander Maier Date: Tue, 27 Jun 2023 17:24:32 +0200 Subject: [PATCH 10/17] deleted unnecessary imports --- .../de/rwu/easydrop/service/writer/OfferWriterTest.java | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/test/java/de/rwu/easydrop/service/writer/OfferWriterTest.java b/src/test/java/de/rwu/easydrop/service/writer/OfferWriterTest.java index 1cbe974..70bf52a 100644 --- a/src/test/java/de/rwu/easydrop/service/writer/OfferWriterTest.java +++ b/src/test/java/de/rwu/easydrop/service/writer/OfferWriterTest.java @@ -1,12 +1,8 @@ package de.rwu.easydrop.service.writer; import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; -import static org.junit.jupiter.api.Assertions.assertThrows; -import javax.sound.sampled.AudioFileFormat.Type; +import static org.junit.jupiter.api.Assertions.assertThrows; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -15,7 +11,6 @@ import org.mockito.Mockito; import org.mockito.MockitoAnnotations; import de.rwu.easydrop.api.dto.OfferDTO; -import de.rwu.easydrop.api.dto.ProductDTO; import de.rwu.easydrop.data.connector.OfferPersistenceInterface; import de.rwu.easydrop.model.Offer; import de.rwu.easydrop.model.Product; From 41acb18dcbd0d5d760a5a471b95c2ef090063d6f Mon Sep 17 00:00:00 2001 From: Alexander Maier Date: Tue, 27 Jun 2023 17:26:14 +0200 Subject: [PATCH 11/17] new class for offer validator test --- .../rwu/easydrop/service/validation/OfferValidatorTest.java | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 src/test/java/de/rwu/easydrop/service/validation/OfferValidatorTest.java diff --git a/src/test/java/de/rwu/easydrop/service/validation/OfferValidatorTest.java b/src/test/java/de/rwu/easydrop/service/validation/OfferValidatorTest.java new file mode 100644 index 0000000..f2d4a4b --- /dev/null +++ b/src/test/java/de/rwu/easydrop/service/validation/OfferValidatorTest.java @@ -0,0 +1,5 @@ +package de.rwu.easydrop.service.validation; + +public class OfferValidatorTest { + +} From 0b403d73eab80e6952c9f0edd0bc13ca6eb46588 Mon Sep 17 00:00:00 2001 From: Alexander Maier Date: Tue, 27 Jun 2023 17:54:37 +0200 Subject: [PATCH 12/17] class OfferValidatorTest and test validate created --- .../service/validation/OfferValidatorTest.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/test/java/de/rwu/easydrop/service/validation/OfferValidatorTest.java b/src/test/java/de/rwu/easydrop/service/validation/OfferValidatorTest.java index f2d4a4b..e7d5b39 100644 --- a/src/test/java/de/rwu/easydrop/service/validation/OfferValidatorTest.java +++ b/src/test/java/de/rwu/easydrop/service/validation/OfferValidatorTest.java @@ -1,5 +1,23 @@ package de.rwu.easydrop.service.validation; +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; + +import org.junit.jupiter.api.Test; + +import de.rwu.easydrop.model.Offer; + + public class OfferValidatorTest { + + @Test + void validate_Offer_ValidProduct_NoExceptionThrown() { + // Arrange + Offer offer = new Offer(); + offer.setOfferId("3672"); + offer.setLastUpdate("2021-02-03"); + + // Act and Assert + assertDoesNotThrow(() -> OfferValidator.validate(offer)); + } } From 0eb0f903c6fbd8e7896687e208265b3f755dea34 Mon Sep 17 00:00:00 2001 From: Alexander Maier Date: Tue, 27 Jun 2023 18:10:25 +0200 Subject: [PATCH 13/17] added invalid offerexception test --- .../service/validation/OfferValidatorTest.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/test/java/de/rwu/easydrop/service/validation/OfferValidatorTest.java b/src/test/java/de/rwu/easydrop/service/validation/OfferValidatorTest.java index e7d5b39..f83c24e 100644 --- a/src/test/java/de/rwu/easydrop/service/validation/OfferValidatorTest.java +++ b/src/test/java/de/rwu/easydrop/service/validation/OfferValidatorTest.java @@ -1,9 +1,13 @@ package de.rwu.easydrop.service.validation; import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; +import static org.junit.jupiter.api.Assertions.assertThrows; import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; +import de.rwu.easydrop.exception.InvalidOfferException; import de.rwu.easydrop.model.Offer; @@ -19,5 +23,13 @@ public class OfferValidatorTest { // Act and Assert assertDoesNotThrow(() -> OfferValidator.validate(offer)); } + + @ParameterizedTest + @MethodSource("invalidOffer") + void validate_InvalidOffer_ThrowsInvalidOfferException(Offer offer) { + // Act and Assert + assertThrows(InvalidOfferException.class, () -> OfferValidator.validate(offer)); + } + } From 7056d34688fde4b2fe4baad758d12786949084b4 Mon Sep 17 00:00:00 2001 From: Alexander Maier Date: Tue, 27 Jun 2023 18:32:15 +0200 Subject: [PATCH 14/17] added ParameterizedTest for offer validator --- .../service/validation/OfferValidator.java | 3 +++ .../validation/OfferValidatorTest.java | 24 ++++++++++++++++++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/src/main/java/de/rwu/easydrop/service/validation/OfferValidator.java b/src/main/java/de/rwu/easydrop/service/validation/OfferValidator.java index 82fbd89..edf5491 100644 --- a/src/main/java/de/rwu/easydrop/service/validation/OfferValidator.java +++ b/src/main/java/de/rwu/easydrop/service/validation/OfferValidator.java @@ -28,6 +28,9 @@ public final class OfferValidator { if (offer.getOfferId().equals("")) { throw new InvalidOfferException("Offer ID cannot be empty"); } + if (offer.getLastUpdate().equals("")) { + throw new InvalidOfferException("LastUpdate cannot be empty"); + } } catch (NullPointerException e) { throw new InvalidOfferException("Required information is missing in the offer", e); } diff --git a/src/test/java/de/rwu/easydrop/service/validation/OfferValidatorTest.java b/src/test/java/de/rwu/easydrop/service/validation/OfferValidatorTest.java index f83c24e..bb16c4b 100644 --- a/src/test/java/de/rwu/easydrop/service/validation/OfferValidatorTest.java +++ b/src/test/java/de/rwu/easydrop/service/validation/OfferValidatorTest.java @@ -3,6 +3,8 @@ package de.rwu.easydrop.service.validation; import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; import static org.junit.jupiter.api.Assertions.assertThrows; +import java.util.stream.Stream; + import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; @@ -25,11 +27,31 @@ public class OfferValidatorTest { } @ParameterizedTest - @MethodSource("invalidOffer") + @MethodSource("invalidOfferProvider") void validate_InvalidOffer_ThrowsInvalidOfferException(Offer offer) { // Act and Assert assertThrows(InvalidOfferException.class, () -> OfferValidator.validate(offer)); + } + static Stream invalidOfferProvider() { + return Stream.of( + createOfferWithEmptylastUpdate(), + createOfferWithEmptyId()); + } + + private static Offer createOfferWithEmptylastUpdate() { + Offer offer = new Offer(); + offer.setOfferId("3729798"); + offer.setLastUpdate(""); + return offer; + } + + private static Offer createOfferWithEmptyId() { + Offer offer = new Offer(); + offer.setOfferId(""); + offer.setLastUpdate("8798476"); + return offer; + } } From 0151ceb00c3e21d4205c35eb0879b73c2eb748ce Mon Sep 17 00:00:00 2001 From: Alexander Maier Date: Tue, 27 Jun 2023 18:35:58 +0200 Subject: [PATCH 15/17] offermapper test added --- .../de/rwu/easydrop/service/mapping/OfferMapperTest.java | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 src/test/java/de/rwu/easydrop/service/mapping/OfferMapperTest.java diff --git a/src/test/java/de/rwu/easydrop/service/mapping/OfferMapperTest.java b/src/test/java/de/rwu/easydrop/service/mapping/OfferMapperTest.java new file mode 100644 index 0000000..02bfb7f --- /dev/null +++ b/src/test/java/de/rwu/easydrop/service/mapping/OfferMapperTest.java @@ -0,0 +1,5 @@ +package de.rwu.easydrop.service.mapping; + +public class OfferMapperTest { + +} From d05ea47e726137a1ed1a5ebbd87015808d4ab4c7 Mon Sep 17 00:00:00 2001 From: Alexander Maier Date: Tue, 27 Jun 2023 19:44:30 +0200 Subject: [PATCH 16/17] created mapOffer test --- .../service/mapping/OfferMapperTest.java | 60 ++++++++++++++++++- .../validation/OfferValidatorTest.java | 2 +- .../service/writer/OfferWriterTest.java | 2 +- 3 files changed, 61 insertions(+), 3 deletions(-) diff --git a/src/test/java/de/rwu/easydrop/service/mapping/OfferMapperTest.java b/src/test/java/de/rwu/easydrop/service/mapping/OfferMapperTest.java index 02bfb7f..099d63c 100644 --- a/src/test/java/de/rwu/easydrop/service/mapping/OfferMapperTest.java +++ b/src/test/java/de/rwu/easydrop/service/mapping/OfferMapperTest.java @@ -1,5 +1,63 @@ package de.rwu.easydrop.service.mapping; -public class OfferMapperTest { +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.lang.reflect.Constructor; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Modifier; + +import org.junit.jupiter.api.Test; + +import de.rwu.easydrop.api.dto.OfferDTO; +import de.rwu.easydrop.model.Offer; +import de.rwu.easydrop.model.Product; +import de.rwu.easydrop.model.Webshop; + +class OfferMapperTest { + + @Test + void testConstructorIsPrivate() + throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException { + // Check for private constructor + Constructor constructor = OfferMapper.class.getDeclaredConstructor(); + assertTrue(Modifier.isPrivate(constructor.getModifiers())); + + // Make sure exception is thrown when instantiating + constructor.setAccessible(true); + assertThrows(InvocationTargetException.class, () -> { + constructor.newInstance(); + }); + } + + + @Test + void mapOfferToDTO() { + // Arrange + Product product = new Product(); + product.setProductId("12345"); + product.setDataOrigin(Webshop.AMAZON); + product.setAvailable(true); + product.setCurrentPrice(9.99); + product.setDeliveryPrice(2.50); + product.setMerchant("Seller1"); + + Offer offer = new Offer(); + offer.setOfferId("68735"); + offer.setLastUpdate("2020-07-07"); + offer.setSourceProduct(product); + offer.setTargetProduct(product); + + // Act + OfferDTO dto = OfferMapper.mapOfferToDTO(offer); + + // Assert + assertEquals("68735", dto.getOfferId()); + assertEquals("2020-07-07", dto.getLastUpdate()); + + } + + } diff --git a/src/test/java/de/rwu/easydrop/service/validation/OfferValidatorTest.java b/src/test/java/de/rwu/easydrop/service/validation/OfferValidatorTest.java index bb16c4b..5982b83 100644 --- a/src/test/java/de/rwu/easydrop/service/validation/OfferValidatorTest.java +++ b/src/test/java/de/rwu/easydrop/service/validation/OfferValidatorTest.java @@ -13,7 +13,7 @@ import de.rwu.easydrop.exception.InvalidOfferException; import de.rwu.easydrop.model.Offer; -public class OfferValidatorTest { +class OfferValidatorTest { @Test void validate_Offer_ValidProduct_NoExceptionThrown() { diff --git a/src/test/java/de/rwu/easydrop/service/writer/OfferWriterTest.java b/src/test/java/de/rwu/easydrop/service/writer/OfferWriterTest.java index 70bf52a..62ef077 100644 --- a/src/test/java/de/rwu/easydrop/service/writer/OfferWriterTest.java +++ b/src/test/java/de/rwu/easydrop/service/writer/OfferWriterTest.java @@ -16,7 +16,7 @@ import de.rwu.easydrop.model.Offer; import de.rwu.easydrop.model.Product; import de.rwu.easydrop.model.Webshop; -public class OfferWriterTest { +class OfferWriterTest { @Mock private OfferDTO offerDTO; From 9a9dfe92604a48b4fc105e3140862e623025ce00 Mon Sep 17 00:00:00 2001 From: Alexander Maier Date: Tue, 27 Jun 2023 19:54:58 +0200 Subject: [PATCH 17/17] checkstyle + added new folder for processing tests --- .../de/rwu/easydrop/service/mapping/OfferMapperTest.java | 1 - .../rwu/easydrop/service/processing/OfferIdentifierTest.java | 5 +++++ .../easydrop/service/processing/OfferProvisionerTest.java | 5 +++++ 3 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 src/test/java/de/rwu/easydrop/service/processing/OfferIdentifierTest.java create mode 100644 src/test/java/de/rwu/easydrop/service/processing/OfferProvisionerTest.java diff --git a/src/test/java/de/rwu/easydrop/service/mapping/OfferMapperTest.java b/src/test/java/de/rwu/easydrop/service/mapping/OfferMapperTest.java index 099d63c..178588d 100644 --- a/src/test/java/de/rwu/easydrop/service/mapping/OfferMapperTest.java +++ b/src/test/java/de/rwu/easydrop/service/mapping/OfferMapperTest.java @@ -59,5 +59,4 @@ class OfferMapperTest { } - } diff --git a/src/test/java/de/rwu/easydrop/service/processing/OfferIdentifierTest.java b/src/test/java/de/rwu/easydrop/service/processing/OfferIdentifierTest.java new file mode 100644 index 0000000..cde6ca6 --- /dev/null +++ b/src/test/java/de/rwu/easydrop/service/processing/OfferIdentifierTest.java @@ -0,0 +1,5 @@ +package de.rwu.easydrop.service.processing; + +public class OfferIdentifierTest { + +} diff --git a/src/test/java/de/rwu/easydrop/service/processing/OfferProvisionerTest.java b/src/test/java/de/rwu/easydrop/service/processing/OfferProvisionerTest.java new file mode 100644 index 0000000..c3f2fd9 --- /dev/null +++ b/src/test/java/de/rwu/easydrop/service/processing/OfferProvisionerTest.java @@ -0,0 +1,5 @@ +package de.rwu.easydrop.service.processing; + +public class OfferProvisionerTest { + +}