diff --git a/src/test/java/de/rwu/easydrop/api/client/AbstractDataWriterTest.java b/src/test/java/de/rwu/easydrop/api/client/AbstractDataWriterTest.java index edc8ad8..97b007e 100644 --- a/src/test/java/de/rwu/easydrop/api/client/AbstractDataWriterTest.java +++ b/src/test/java/de/rwu/easydrop/api/client/AbstractDataWriterTest.java @@ -21,6 +21,7 @@ import org.mockito.MockitoAnnotations; import de.rwu.easydrop.api.dto.ProductDTO; import de.rwu.easydrop.exception.DataWriterException; +import de.rwu.easydrop.model.Webshop; class AbstractDataWriterTest { private static String demoProductId = "whateverId"; @@ -42,8 +43,8 @@ class AbstractDataWriterTest { } @Override - protected String getDataTarget() { - return "Test"; + protected Webshop getDataTarget() { + return Webshop.Amazon; } @Override @@ -53,21 +54,10 @@ class AbstractDataWriterTest { }; } - @Test - void sendPutRequest_wrongDataSource_throwsException() { - ProductDTO dto = new ProductDTO(demoProductId, "Amazon"); - - DataWriterException e = assertThrows(DataWriterException.class, () -> { - writer.sendPutRequest(dto, "testApiType"); - }); - - assertEquals("Product data source and target testApiType API are incompatible.", e.getMessage()); - } - @Test void sendPutRequest_badResponseCode_throwsException() throws IOException { // Set up DTO - ProductDTO dto = new ProductDTO(demoProductId, "Test"); + ProductDTO dto = new ProductDTO(demoProductId, Webshop.Amazon); // Set up Mocks AbstractDataWriter mockWriter = mock(AbstractDataWriter.class); @@ -79,13 +69,13 @@ class AbstractDataWriterTest { writer.sendPutRequest(dto, "Sales"); }); - assertEquals("Test Sales API responded with error code 400", e.getMessage()); + assertEquals("Amazon Sales API responded with error code 400", e.getMessage()); } @Test void sendPutRequest_ioException_throwsException() throws IOException { // Set up DTO - ProductDTO dto = new ProductDTO(demoProductId, "Test"); + ProductDTO dto = new ProductDTO(demoProductId, Webshop.Amazon); // Set up Mocks AbstractDataWriter mockWriter = mock(AbstractDataWriter.class); @@ -96,13 +86,13 @@ class AbstractDataWriterTest { writer.sendPutRequest(dto, "testApiType"); }); - assertEquals("Couldn't fulfill Test API request", e.getMessage()); + assertEquals("Couldn't fulfill Amazon API request", e.getMessage()); } @Test void sendPutRequest_successfulRequest() throws IOException { // Set up DTO - ProductDTO dto = new ProductDTO(demoProductId, "test"); + ProductDTO dto = new ProductDTO(demoProductId, Webshop.Amazon); // Set up Mocks AbstractDataWriter mockWriter = mock(AbstractDataWriter.class); @@ -112,7 +102,7 @@ class AbstractDataWriterTest { HttpURLConnection mockConnection = mock(HttpURLConnection.class); when(mockURL.openConnection()).thenReturn(mockConnection); when(mockConnection.getResponseCode()).thenReturn(HttpURLConnection.HTTP_OK); - when(mockWriter.getDataTarget()).thenReturn("test"); + when(mockWriter.getDataTarget()).thenReturn(Webshop.Amazon); assertDoesNotThrow(() -> { mockWriter.sendPutRequest(dto, "Purchase"); diff --git a/src/test/java/de/rwu/easydrop/api/client/AbstractPurchaserTest.java b/src/test/java/de/rwu/easydrop/api/client/AbstractPurchaserTest.java index f252264..0a62b8e 100644 --- a/src/test/java/de/rwu/easydrop/api/client/AbstractPurchaserTest.java +++ b/src/test/java/de/rwu/easydrop/api/client/AbstractPurchaserTest.java @@ -13,6 +13,7 @@ import java.net.URL; import org.junit.jupiter.api.Test; import de.rwu.easydrop.api.dto.ProductDTO; +import de.rwu.easydrop.model.Webshop; class AbstractPurchaserTest { private AbstractPurchaser mockPurchaser = mock(AbstractPurchaser.class); @@ -20,7 +21,7 @@ class AbstractPurchaserTest { @Test void purchaseProduct_CorrectApiTypeInException() throws IOException { // Set up DTO - ProductDTO dto = new ProductDTO("12345", "test"); + ProductDTO dto = new ProductDTO("12345", Webshop.Amazon); // Set up mocks URL mockURL = mock(URL.class); @@ -29,7 +30,7 @@ class AbstractPurchaserTest { HttpURLConnection mockConnection = mock(HttpURLConnection.class); when(mockURL.openConnection()).thenReturn(mockConnection); when(mockConnection.getResponseCode()).thenReturn(HttpURLConnection.HTTP_OK); - when(mockPurchaser.getDataTarget()).thenReturn("test"); + when(mockPurchaser.getDataTarget()).thenReturn(Webshop.Amazon); assertDoesNotThrow(() -> { mockPurchaser.purchaseProduct(dto); diff --git a/src/test/java/de/rwu/easydrop/api/client/AbstractSellerTest.java b/src/test/java/de/rwu/easydrop/api/client/AbstractSellerTest.java index eb7e595..e907a37 100644 --- a/src/test/java/de/rwu/easydrop/api/client/AbstractSellerTest.java +++ b/src/test/java/de/rwu/easydrop/api/client/AbstractSellerTest.java @@ -13,6 +13,7 @@ import java.net.URL; import org.junit.jupiter.api.Test; import de.rwu.easydrop.api.dto.ProductDTO; +import de.rwu.easydrop.model.Webshop; class AbstractSellerTest { private AbstractSeller mockSeller = mock(AbstractSeller.class); @@ -20,7 +21,7 @@ class AbstractSellerTest { @Test void purchaseProduct_CorrectApiTypeInException() throws IOException { // Set up DTO - ProductDTO dto = new ProductDTO("12345", "test"); + ProductDTO dto = new ProductDTO("12345", Webshop.Amazon); // Set up mocks URL mockURL = mock(URL.class); @@ -29,7 +30,7 @@ class AbstractSellerTest { HttpURLConnection mockConnection = mock(HttpURLConnection.class); when(mockURL.openConnection()).thenReturn(mockConnection); when(mockConnection.getResponseCode()).thenReturn(HttpURLConnection.HTTP_OK); - when(mockSeller.getDataTarget()).thenReturn("test"); + when(mockSeller.getDataTarget()).thenReturn(Webshop.Amazon); assertDoesNotThrow(() -> { mockSeller.sellProduct(dto); diff --git a/src/test/java/de/rwu/easydrop/api/client/AmazonProductDataSourceTest.java b/src/test/java/de/rwu/easydrop/api/client/AmazonProductDataSourceTest.java index 938413d..7735bd9 100644 --- a/src/test/java/de/rwu/easydrop/api/client/AmazonProductDataSourceTest.java +++ b/src/test/java/de/rwu/easydrop/api/client/AmazonProductDataSourceTest.java @@ -21,6 +21,7 @@ import org.mockito.MockitoAnnotations; import de.rwu.easydrop.api.dto.ProductDTO; import de.rwu.easydrop.exception.DataSourceException; +import de.rwu.easydrop.model.Webshop; class AmazonProductDataSourceTest { @@ -28,7 +29,7 @@ class AmazonProductDataSourceTest { private static String demoApiKey = "my-api-key"; private static String demoApiUrl = "https://www.example.com/api"; - private static String demoDataOrigin = "Amazon"; + private static Webshop demoDataOrigin = Webshop.Amazon; private static String demoProductId = "whateverId"; @BeforeEach @@ -138,7 +139,7 @@ class AmazonProductDataSourceTest { // Verify the product DTO properties assertEquals(demoProductId, result.getProductId()); - assertEquals("Amazon", result.getDataOrigin()); + assertEquals(Webshop.Amazon, result.getDataOrigin()); assertEquals(true, result.isAvailable()); assertEquals(10.0, result.getCurrentPrice()); assertEquals(2.5, result.getDeliveryPrice()); @@ -149,18 +150,18 @@ class AmazonProductDataSourceTest { void testGetProductDTOById_failedRequest() throws IOException { // Set up the test environment - AmazonProductDataSource dataSource = mock(AmazonProductDataSource.class); + AmazonProductDataSource DataSource = mock(AmazonProductDataSource.class); URL mockURL = mock(URL.class); - when(dataSource.getDataOrigin()).thenReturn(demoDataOrigin); - when(dataSource.createApiUrl(demoProductId)).thenReturn(mockURL); - when(dataSource.getProductDTOById(demoProductId)).thenCallRealMethod(); + when(DataSource.getDataOrigin()).thenReturn(demoDataOrigin); + when(DataSource.createApiUrl(demoProductId)).thenReturn(mockURL); + when(DataSource.getProductDTOById(demoProductId)).thenCallRealMethod(); HttpURLConnection mockConnection = mock(HttpURLConnection.class); when(mockURL.openConnection()).thenReturn(mockConnection); when(mockConnection.getResponseCode()).thenReturn(HttpURLConnection.HTTP_NOT_FOUND); // Invoke the method and verify the exception DataSourceException exception = assertThrows(DataSourceException.class, () -> { - dataSource.getProductDTOById(demoProductId); + DataSource.getProductDTOById(demoProductId); }); // Verify the exception message @@ -170,12 +171,12 @@ class AmazonProductDataSourceTest { @Test void testGetProductDTOById_ioException() throws IOException { // Set up the test environment - AmazonProductDataSource dataSource = mock(AmazonProductDataSource.class); + AmazonProductDataSource DataSource = mock(AmazonProductDataSource.class); URL mockURL = mock(URL.class); - when(dataSource.getDataOrigin()).thenReturn(demoDataOrigin); - when(dataSource.createApiUrl(demoProductId)).thenReturn(mockURL); - when(dataSource.getProductDTOById(demoProductId)).thenCallRealMethod(); - when(dataSource.buildProductDTO(any(), anyString())).thenCallRealMethod(); + when(DataSource.getDataOrigin()).thenReturn(demoDataOrigin); + when(DataSource.createApiUrl(demoProductId)).thenReturn(mockURL); + when(DataSource.getProductDTOById(demoProductId)).thenCallRealMethod(); + when(DataSource.buildProductDTO(any(), anyString())).thenCallRealMethod(); HttpURLConnection mockConnection = mock(HttpURLConnection.class); when(mockURL.openConnection()).thenReturn(mockConnection); when(mockConnection.getResponseCode()).thenReturn(HttpURLConnection.HTTP_OK); @@ -183,7 +184,7 @@ class AmazonProductDataSourceTest { // Invoke the method and verify the exception DataSourceException exception = assertThrows(DataSourceException.class, () -> { - dataSource.getProductDTOById(demoProductId); + DataSource.getProductDTOById(demoProductId); }); // Verify the exception message @@ -192,7 +193,7 @@ class AmazonProductDataSourceTest { @Test void getDataOrigin_ReturnsExpectedDataOrigin() { - String dataOrigin = demoDataSource.getDataOrigin(); + Webshop dataOrigin = demoDataSource.getDataOrigin(); assertEquals(demoDataOrigin, dataOrigin); } diff --git a/src/test/java/de/rwu/easydrop/api/client/AmazonPurchaserTest.java b/src/test/java/de/rwu/easydrop/api/client/AmazonPurchaserTest.java index ec1e1d6..1386e97 100644 --- a/src/test/java/de/rwu/easydrop/api/client/AmazonPurchaserTest.java +++ b/src/test/java/de/rwu/easydrop/api/client/AmazonPurchaserTest.java @@ -1,7 +1,6 @@ package de.rwu.easydrop.api.client; import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertThrows; import java.lang.reflect.Field; import java.net.MalformedURLException; @@ -12,15 +11,14 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.MockitoAnnotations; -import de.rwu.easydrop.api.dto.ProductDTO; -import de.rwu.easydrop.exception.DataWriterException; +import de.rwu.easydrop.model.Webshop; class AmazonPurchaserTest { private AmazonPurchaser demoPurchaser; private static String demoApiKey = "my-api-key"; private static String demoApiUrl = "https://www.example.com/api"; - private static String demoDataTarget = "Amazon"; + private static Webshop demoDataTarget = Webshop.Amazon; @BeforeEach void setup() { @@ -72,7 +70,7 @@ class AmazonPurchaserTest { @Test void getDataTarget_ReturnsExpectedDataOrigin() { - String dataTarget = demoPurchaser.getDataTarget(); + Webshop dataTarget = demoPurchaser.getDataTarget(); assertEquals(demoDataTarget, dataTarget); } diff --git a/src/test/java/de/rwu/easydrop/api/client/AmazonSellerTest.java b/src/test/java/de/rwu/easydrop/api/client/AmazonSellerTest.java index 06176cc..4ff6d55 100644 --- a/src/test/java/de/rwu/easydrop/api/client/AmazonSellerTest.java +++ b/src/test/java/de/rwu/easydrop/api/client/AmazonSellerTest.java @@ -11,12 +11,14 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.MockitoAnnotations; +import de.rwu.easydrop.model.Webshop; + class AmazonSellerTest { private AmazonSeller demoSeller; private static String demoApiKey = "my-api-key"; private static String demoApiUrl = "https://www.example.com/api"; - private static String demoDataTarget = "Amazon"; + private static Webshop demoDataTarget = Webshop.Amazon; @BeforeEach void setup() { @@ -68,7 +70,7 @@ class AmazonSellerTest { @Test void getDataTarget_ReturnsExpectedDataOrigin() { - String dataTarget = demoSeller.getDataTarget(); + Webshop dataTarget = demoSeller.getDataTarget(); assertEquals(demoDataTarget, dataTarget); } diff --git a/src/test/java/de/rwu/easydrop/api/client/DataSourceFactoryTest.java b/src/test/java/de/rwu/easydrop/api/client/DataSourceFactoryTest.java index f1c85b0..5196c8b 100644 --- a/src/test/java/de/rwu/easydrop/api/client/DataSourceFactoryTest.java +++ b/src/test/java/de/rwu/easydrop/api/client/DataSourceFactoryTest.java @@ -21,7 +21,7 @@ class DataSourceFactoryTest { @Mock private Config config; - private DataSourceFactory dataSourceFactory; + private DataSourceFactory DataSourceFactory; @BeforeEach void setUp() throws ConfigurationException { @@ -30,31 +30,31 @@ class DataSourceFactoryTest { when(config.getProperty("AMAZON_API_KEY")).thenReturn("amazon-api-key"); when(config.getProperty("EBAY_API_URL")).thenReturn("https://api.ebay.com"); when(config.getProperty("EBAY_API_KEY")).thenReturn("ebay-api-key"); - dataSourceFactory = new DataSourceFactory(config); + DataSourceFactory = new DataSourceFactory(config); } @Test void createAmazonProductDataSource_ReturnsAmazonProductDataSource() { // Act - AmazonProductDataSource dataSource = dataSourceFactory.createAmazonProductDataSource(); + AmazonProductDataSource DataSource = DataSourceFactory.createAmazonProductDataSource(); // Assert - assertEquals("amazon-api-key", dataSource.getApiKey()); + assertEquals("amazon-api-key", DataSource.getApiKey()); } @Test void createEbayItemDataSource_ReturnsEbayItemDataSource() { // Act - EbayItemDataSource dataSource = dataSourceFactory.createEbayItemDataSource(); + EbayItemDataSource DataSource = DataSourceFactory.createEbayItemDataSource(); // Assert - assertEquals("ebay-api-key", dataSource.getApiKey()); + assertEquals("ebay-api-key", DataSource.getApiKey()); } @Test void createProductPersistenceDataSource_NullPersistence() { PersistenceException exception = assertThrows(PersistenceException.class, () -> { - dataSourceFactory.createProductPersistenceDataSource(); + DataSourceFactory.createProductPersistenceDataSource(); }); assertEquals("Persistence is not set", exception.getMessage()); @@ -62,8 +62,8 @@ class DataSourceFactoryTest { @Test void createProductPersistenceDataSource_WorkingPersistence() { - dataSourceFactory.setPersistence(new SQLiteConnector(new SQLiteDataSource())); + DataSourceFactory.setPersistence(new SQLiteConnector(new SQLiteDataSource())); - assertDoesNotThrow(() -> dataSourceFactory.createProductPersistenceDataSource()); + assertDoesNotThrow(() -> DataSourceFactory.createProductPersistenceDataSource()); } } diff --git a/src/test/java/de/rwu/easydrop/api/client/EbayItemDataSourceTest.java b/src/test/java/de/rwu/easydrop/api/client/EbayItemDataSourceTest.java index 9a6ed45..a311c73 100644 --- a/src/test/java/de/rwu/easydrop/api/client/EbayItemDataSourceTest.java +++ b/src/test/java/de/rwu/easydrop/api/client/EbayItemDataSourceTest.java @@ -19,13 +19,14 @@ import org.mockito.MockitoAnnotations; import de.rwu.easydrop.api.dto.ProductDTO; import de.rwu.easydrop.exception.DataSourceException; +import de.rwu.easydrop.model.Webshop; class EbayItemDataSourceTest { private EbayItemDataSource demoDataSource; private static String demoApiKey = "my-api-key"; private static String demoApiUrl = "https://www.example.com/api"; - private static String demoDataOrigin = "eBay"; + private static Webshop demoDataOrigin = Webshop.eBay; private static String demoQuery = "iPhone"; @BeforeEach @@ -82,7 +83,7 @@ class EbayItemDataSourceTest { ProductDTO result = demoDataSource.buildProductDTO(product, json); - assertEquals("eBay", result.getDataOrigin()); + assertEquals(Webshop.eBay, result.getDataOrigin()); assertEquals(false, result.isAvailable()); // Default value for boolean assertEquals(0.0, result.getCurrentPrice()); // Default value for double assertEquals(0.0, result.getDeliveryPrice()); // Default value for double @@ -91,7 +92,7 @@ class EbayItemDataSourceTest { @Test void getDataOrigin_ReturnsExpectedDataOrigin() { - String dataOrigin = demoDataSource.getDataOrigin(); + Webshop dataOrigin = demoDataSource.getDataOrigin(); assertEquals(demoDataOrigin, dataOrigin); } @@ -105,18 +106,18 @@ class EbayItemDataSourceTest { void testGetProductDTOById_failedRequest() throws IOException { // Set up the test environment - EbayItemDataSource dataSource = mock(EbayItemDataSource.class); + EbayItemDataSource DataSource = mock(EbayItemDataSource.class); URL mockURL = mock(URL.class); - when(dataSource.getDataOrigin()).thenReturn(demoDataOrigin); - when(dataSource.createApiUrl(demoQuery)).thenReturn(mockURL); - when(dataSource.getProductDTOById(demoQuery)).thenCallRealMethod(); + when(DataSource.getDataOrigin()).thenReturn(demoDataOrigin); + when(DataSource.createApiUrl(demoQuery)).thenReturn(mockURL); + when(DataSource.getProductDTOById(demoQuery)).thenCallRealMethod(); HttpURLConnection mockConnection = mock(HttpURLConnection.class); when(mockURL.openConnection()).thenReturn(mockConnection); when(mockConnection.getResponseCode()).thenReturn(HttpURLConnection.HTTP_NOT_FOUND); // Invoke the method and verify the exception DataSourceException exception = assertThrows(DataSourceException.class, () -> { - dataSource.getProductDTOById(demoQuery); + DataSource.getProductDTOById(demoQuery); }); // Verify the exception message diff --git a/src/test/java/de/rwu/easydrop/api/client/EbayPurchaserTest.java b/src/test/java/de/rwu/easydrop/api/client/EbayPurchaserTest.java index 238e2c5..2b2104c 100644 --- a/src/test/java/de/rwu/easydrop/api/client/EbayPurchaserTest.java +++ b/src/test/java/de/rwu/easydrop/api/client/EbayPurchaserTest.java @@ -11,12 +11,14 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.MockitoAnnotations; +import de.rwu.easydrop.model.Webshop; + class EbayPurchaserTest { private EbayPurchaser demoPurchaser; private static String demoApiKey = "my-api-key"; private static String demoApiUrl = "https://www.example.com/api"; - private static String demoDataTarget = "eBay"; + private static Webshop demoDataTarget = Webshop.eBay; @BeforeEach void setup() { @@ -65,7 +67,7 @@ class EbayPurchaserTest { @Test void getDataTarget_ReturnsExpectedDataOrigin() { - String dataTarget = demoPurchaser.getDataTarget(); + Webshop dataTarget = demoPurchaser.getDataTarget(); assertEquals(demoDataTarget, dataTarget); } diff --git a/src/test/java/de/rwu/easydrop/api/client/EbaySellerTest.java b/src/test/java/de/rwu/easydrop/api/client/EbaySellerTest.java index 978aa63..0fe0df0 100644 --- a/src/test/java/de/rwu/easydrop/api/client/EbaySellerTest.java +++ b/src/test/java/de/rwu/easydrop/api/client/EbaySellerTest.java @@ -11,12 +11,14 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.MockitoAnnotations; +import de.rwu.easydrop.model.Webshop; + class EbaySellerTest { private EbaySeller demoSeller; private static String demoApiKey = "my-api-key"; private static String demoApiUrl = "https://www.example.com/api"; - private static String demoDataTarget = "eBay"; + private static Webshop demoDataTarget = Webshop.eBay; @BeforeEach void setup() { @@ -65,7 +67,7 @@ class EbaySellerTest { @Test void getDataTarget_ReturnsExpectedDataOrigin() { - String dataTarget = demoSeller.getDataTarget(); + Webshop dataTarget = demoSeller.getDataTarget(); assertEquals(demoDataTarget, dataTarget); } diff --git a/src/test/java/de/rwu/easydrop/api/dto/ProductDTOTest.java b/src/test/java/de/rwu/easydrop/api/dto/ProductDTOTest.java index 1e16d7c..647babb 100644 --- a/src/test/java/de/rwu/easydrop/api/dto/ProductDTOTest.java +++ b/src/test/java/de/rwu/easydrop/api/dto/ProductDTOTest.java @@ -6,13 +6,15 @@ import static org.junit.jupiter.api.Assertions.assertNull; import org.junit.jupiter.api.Test; +import de.rwu.easydrop.model.Webshop; + class ProductDTOTest { @Test void constructor_SetsProductIdAndDataOrigin() { // Arrange String productId = "12345"; - String dataOrigin = "Amazon"; + Webshop dataOrigin = Webshop.Amazon; // Act ProductDTO productDTO = new ProductDTO(productId, dataOrigin); @@ -25,19 +27,19 @@ class ProductDTOTest { @Test void gettersAndSetters_WorkAsExpected() { // Arrange - ProductDTO productDTO = new ProductDTO("12345", "Amazon"); + ProductDTO productDTO = new ProductDTO("12345", Webshop.Amazon); // Act and Assert assertEquals("12345", productDTO.getProductId()); - assertEquals("Amazon", productDTO.getDataOrigin()); + assertEquals(Webshop.Amazon, productDTO.getDataOrigin()); // Modify fields productDTO.setProductId("54321"); - productDTO.setDataOrigin("eBay"); + productDTO.setDataOrigin(Webshop.eBay); // Assert assertEquals("54321", productDTO.getProductId()); - assertEquals("eBay", productDTO.getDataOrigin()); + assertEquals(Webshop.eBay, productDTO.getDataOrigin()); } @Test diff --git a/src/test/java/de/rwu/easydrop/core/CoreTest.java b/src/test/java/de/rwu/easydrop/core/CoreTest.java index e37170f..bf62c6d 100644 --- a/src/test/java/de/rwu/easydrop/core/CoreTest.java +++ b/src/test/java/de/rwu/easydrop/core/CoreTest.java @@ -1,31 +1,4 @@ package de.rwu.easydrop.core; -import java.util.List; -import javax.naming.ConfigurationException; - -import org.junit.jupiter.api.Test; - -import de.rwu.easydrop.api.client.DataSourceFactory; - -import de.rwu.easydrop.model.ProductCatalogue; -import de.rwu.easydrop.service.retriever.CatalogueRetriever; -import de.rwu.easydrop.service.retriever.ProductRetriever; -import de.rwu.easydrop.util.Config; -import de.rwu.easydrop.util.ProductsConfig; - public class CoreTest { - @Test - void testRunCore() throws ConfigurationException{ - Config config = Config.getInstance(); - ProductsConfig pConfig = ProductsConfig.getInstance(); - DataSourceFactory dataSourceFactory = new DataSourceFactory(config); - ProductRetriever retriever = new ProductRetriever(dataSourceFactory); - CatalogueRetriever catRetriever = new CatalogueRetriever(pConfig, retriever); - - catRetriever.loadCatalogues(); - List pCats = catRetriever.getProductCatalogues(); - Core core1=new Core(); - core1.runCore(pCats); - - } } diff --git a/src/test/java/de/rwu/easydrop/data/connector/SQLiteConnectorTest.java b/src/test/java/de/rwu/easydrop/data/connector/SQLiteConnectorTest.java index 2e54299..9c513db 100644 --- a/src/test/java/de/rwu/easydrop/data/connector/SQLiteConnectorTest.java +++ b/src/test/java/de/rwu/easydrop/data/connector/SQLiteConnectorTest.java @@ -22,6 +22,7 @@ import org.sqlite.SQLiteDataSource; import de.rwu.easydrop.api.dto.ProductDTO; import de.rwu.easydrop.exception.PersistenceException; +import de.rwu.easydrop.model.Webshop; @TestInstance(Lifecycle.PER_CLASS) class SQLiteConnectorTest { @@ -45,8 +46,8 @@ class SQLiteConnectorTest { void saveProduct_ValidProduct_SuccessfullySaved() { // Arrange sqliteConnector.clearData(); - ProductDTO ProductDTO = new ProductDTO(TEST_PRODUCT_ID, "Amazon"); - ProductDTO.setDataOrigin("Amazon"); + ProductDTO ProductDTO = new ProductDTO(TEST_PRODUCT_ID, Webshop.Amazon); + ProductDTO.setDataOrigin(Webshop.Amazon); ProductDTO.setProductId(TEST_PRODUCT_ID); ProductDTO.setCurrentPrice(9.99); ProductDTO.setMerchant("Sample Merchant"); @@ -59,7 +60,7 @@ class SQLiteConnectorTest { // Assert ProductDTO savedProductDTO = sqliteConnector.getProductDTOById(TEST_PRODUCT_ID); assertNotNull(savedProductDTO); - assertEquals("Amazon", savedProductDTO.getDataOrigin()); + assertEquals(Webshop.Amazon, savedProductDTO.getDataOrigin()); assertEquals(TEST_PRODUCT_ID, savedProductDTO.getProductId()); assertEquals(9.99, savedProductDTO.getCurrentPrice()); assertEquals("Sample Merchant", savedProductDTO.getMerchant()); @@ -78,7 +79,7 @@ class SQLiteConnectorTest { // Assert assertNotNull(ProductDTO); - assertEquals("Amazon", ProductDTO.getDataOrigin()); + assertEquals(Webshop.Amazon, ProductDTO.getDataOrigin()); assertEquals(TEST_PRODUCT_ID, ProductDTO.getProductId()); assertEquals(9.99, ProductDTO.getCurrentPrice()); assertEquals("Sample Merchant", ProductDTO.getMerchant()); @@ -113,7 +114,7 @@ class SQLiteConnectorTest { @Test void saveProduct_ThrowsPersistenceException_OnSQLException() throws SQLException { // Arrange - ProductDTO ProductDTO = new ProductDTO(TEST_PRODUCT_ID, "Amazon"); + ProductDTO ProductDTO = new ProductDTO(TEST_PRODUCT_ID, Webshop.Amazon); sqliteConnector.setDb(mockDataSource); doThrow(SQLException.class).when(mockDataSource).getConnection(); @@ -143,7 +144,7 @@ class SQLiteConnectorTest { } private void insertSampleProduct() { - ProductDTO ProductDTO = new ProductDTO(TEST_PRODUCT_ID, "Amazon"); + ProductDTO ProductDTO = new ProductDTO(TEST_PRODUCT_ID, Webshop.Amazon); ProductDTO.setCurrentPrice(9.99); ProductDTO.setMerchant("Sample Merchant"); ProductDTO.setDeliveryPrice(2.50); @@ -151,18 +152,6 @@ class SQLiteConnectorTest { sqliteConnector.saveProduct(ProductDTO); } - @Test - void getDataOrigin_ReturnsCorrectDataOrigin() { - // Arrange - SQLiteConnector connector = new SQLiteConnector(new SQLiteDataSource()); - - // Act - String dataOrigin = connector.getDataOrigin(); - - // Assert - assertEquals("SQLite", dataOrigin); - } - @Test void getApiKey_UnsupportedOperationExceptionThrown() { // Arrange @@ -176,7 +165,7 @@ class SQLiteConnectorTest { void buildProductDTO_UnsupportedOperationExceptionThrown() { // Arrange SQLiteConnector connector = new SQLiteConnector(new SQLiteDataSource()); - ProductDTO product = new ProductDTO("ASIN123", "Amazon"); + ProductDTO product = new ProductDTO("ASIN123", Webshop.Amazon); String json = "{\"productId\":\"ASIN123\",\"dataOrigin\":\"Amazon\"}"; // Act and Assert diff --git a/src/test/java/de/rwu/easydrop/model/ProductCatalogueTest.java b/src/test/java/de/rwu/easydrop/model/ProductCatalogueTest.java index c13dcfe..c83f84f 100644 --- a/src/test/java/de/rwu/easydrop/model/ProductCatalogueTest.java +++ b/src/test/java/de/rwu/easydrop/model/ProductCatalogueTest.java @@ -19,7 +19,7 @@ class ProductCatalogueTest { Product product = new Product(); product.setProductId("12345"); product.setMerchant("AmazonSeller"); - product.setDataOrigin("Amazon"); + product.setDataOrigin(Webshop.Amazon); productCatalogue.addProduct(product); List products = productCatalogue.getProducts(); @@ -32,13 +32,13 @@ class ProductCatalogueTest { Product product1 = new Product(); product1.setProductId("12345"); product1.setMerchant("AmazonSeller"); - product1.setDataOrigin("Amazon"); + product1.setDataOrigin(Webshop.Amazon); productCatalogue.addProduct(product1); Product product2 = new Product(); product2.setProductId("54321"); product2.setMerchant("eBaySeller"); - product2.setDataOrigin("eBay"); + product2.setDataOrigin(Webshop.eBay); productCatalogue.addProduct(product2); productCatalogue.removeProduct(product1); @@ -53,13 +53,13 @@ class ProductCatalogueTest { Product product1 = new Product(); product1.setProductId("12345"); product1.setMerchant("AmazonSeller"); - product1.setDataOrigin("Amazon"); + product1.setDataOrigin(Webshop.Amazon); productCatalogue.addProduct(product1); Product product2 = new Product(); product2.setProductId("54321"); - product2.setMerchant("eBay"); - product2.setDataOrigin("eBay"); + product2.setMerchant("ebayMerchant"); + product2.setDataOrigin(Webshop.eBay); productCatalogue.addProduct(product2); productCatalogue.clearProducts(); @@ -73,13 +73,13 @@ class ProductCatalogueTest { Product product1 = new Product(); product1.setProductId("12345"); product1.setMerchant("AmazonSeller"); - product1.setDataOrigin("Amazon"); + product1.setDataOrigin(Webshop.Amazon); productCatalogue.addProduct(product1); Product product2 = new Product(); product2.setProductId("54321"); product2.setMerchant("eBaySeller"); - product2.setDataOrigin("eBay"); + product2.setDataOrigin(Webshop.eBay); productCatalogue.addProduct(product2); String expectedString = "Product Catalogue: GPU\n" + diff --git a/src/test/java/de/rwu/easydrop/model/ProductTest.java b/src/test/java/de/rwu/easydrop/model/ProductTest.java index cf79119..2c5c1c2 100644 --- a/src/test/java/de/rwu/easydrop/model/ProductTest.java +++ b/src/test/java/de/rwu/easydrop/model/ProductTest.java @@ -10,7 +10,7 @@ class ProductTest { @Test void testToString1() { Product product1 = new Product(); - product1.setDataOrigin("Amazon"); + product1.setDataOrigin(Webshop.Amazon); product1.setProductId("12345"); product1.setMerchant("Merchant A"); product1.setCurrentPrice(19.99); @@ -25,7 +25,7 @@ class ProductTest { @Test void testToString2() { Product product2 = new Product(); - product2.setDataOrigin("eBay"); + product2.setDataOrigin(Webshop.eBay); product2.setProductId("67890"); product2.setMerchant("Merchant B"); product2.setCurrentPrice(9.99); @@ -41,7 +41,7 @@ class ProductTest { void gettersAndSetters_WorkAsExpected() { // Arrange Product product = new Product(); - product.setDataOrigin("Amazon"); + product.setDataOrigin(Webshop.Amazon); product.setProductId("12345"); product.setCurrentPrice(9.99); product.setMerchant("Example Merchant"); @@ -49,7 +49,7 @@ class ProductTest { product.setAvailable(true); // Act and Assert - assertEquals("Amazon", product.getDataOrigin()); + assertEquals(Webshop.Amazon, product.getDataOrigin()); assertEquals("12345", product.getProductId()); assertEquals(9.99, product.getCurrentPrice()); assertEquals("Example Merchant", product.getMerchant()); @@ -57,7 +57,7 @@ class ProductTest { assertTrue(product.isAvailable()); // Modify fields - product.setDataOrigin("eBay"); + product.setDataOrigin(Webshop.eBay); product.setProductId("54321"); product.setCurrentPrice(19.99); product.setMerchant("New Merchant"); @@ -65,7 +65,7 @@ class ProductTest { product.setAvailable(false); // Assert - assertEquals("eBay", product.getDataOrigin()); + assertEquals(Webshop.eBay, product.getDataOrigin()); assertEquals("54321", product.getProductId()); assertEquals(19.99, product.getCurrentPrice()); assertEquals("New Merchant", product.getMerchant()); diff --git a/src/test/java/de/rwu/easydrop/service/mapping/ProductMapperTest.java b/src/test/java/de/rwu/easydrop/service/mapping/ProductMapperTest.java index 6239dbf..9212a24 100644 --- a/src/test/java/de/rwu/easydrop/service/mapping/ProductMapperTest.java +++ b/src/test/java/de/rwu/easydrop/service/mapping/ProductMapperTest.java @@ -13,6 +13,7 @@ import org.junit.jupiter.api.Test; import de.rwu.easydrop.api.dto.ProductDTO; import de.rwu.easydrop.model.Product; +import de.rwu.easydrop.model.Webshop; class ProductMapperTest { @Test @@ -47,7 +48,7 @@ class ProductMapperTest { } private ProductDTO createProductDTO() { - ProductDTO dto = new ProductDTO("12345", "Amazon"); + ProductDTO dto = new ProductDTO("12345", Webshop.Amazon); dto.setAvailable(true); dto.setCurrentPrice(9.99); dto.setDeliveryPrice(2.50); @@ -60,7 +61,7 @@ class ProductMapperTest { // Arrange Product product = new Product(); product.setProductId("12345"); - product.setDataOrigin("Amazon"); + product.setDataOrigin(Webshop.Amazon); product.setAvailable(true); product.setCurrentPrice(9.99); product.setDeliveryPrice(2.50); @@ -71,7 +72,7 @@ class ProductMapperTest { // Assert assertEquals("12345", dto.getProductId()); - assertEquals("Amazon", dto.getDataOrigin()); + assertEquals(Webshop.Amazon, dto.getDataOrigin()); assertTrue(dto.isAvailable()); assertEquals(9.99, dto.getCurrentPrice()); assertEquals(2.50, dto.getDeliveryPrice()); diff --git a/src/test/java/de/rwu/easydrop/service/retriever/CatalogueRetrieverTest.java b/src/test/java/de/rwu/easydrop/service/retriever/CatalogueRetrieverTest.java index acaca80..edd772a 100644 --- a/src/test/java/de/rwu/easydrop/service/retriever/CatalogueRetrieverTest.java +++ b/src/test/java/de/rwu/easydrop/service/retriever/CatalogueRetrieverTest.java @@ -1,7 +1,6 @@ package de.rwu.easydrop.service.retriever; import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertThrows; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -14,9 +13,9 @@ import javax.naming.ConfigurationException; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import de.rwu.easydrop.exception.InvalidProductException; import de.rwu.easydrop.model.Product; import de.rwu.easydrop.model.ProductCatalogue; +import de.rwu.easydrop.model.Webshop; import de.rwu.easydrop.util.ProductsConfig; class CatalogueRetrieverTest { @@ -39,20 +38,20 @@ class CatalogueRetrieverTest { // Create a sample product catalogue with two products ProductCatalogue productCatalogue = new ProductCatalogue("Catalogue 1", "Sample catalogue"); Product product1 = new Product(); - product1.setDataOrigin("Amazon"); + product1.setDataOrigin(Webshop.Amazon); product1.setProductId("ASIN1"); productCatalogue.addProduct(product1); Product product2 = new Product(); - product2.setDataOrigin("eBay"); + product2.setDataOrigin(Webshop.eBay); product2.setProductId("ProductID2"); productCatalogue.addProduct(product2); productCatalogues.add(productCatalogue); // Mock the methods when(productsConfig.getProductCatalogues()).thenReturn(productCatalogues); - when(productRetriever.getProductFromAmazon("ASIN1")).thenReturn(product1); - when(productRetriever.getProductFromEbay("ProductID2")).thenReturn(product2); + when(productRetriever.getProductFromWebshop(Webshop.Amazon, "ASIN1")).thenReturn(product1); + when(productRetriever.getProductFromWebshop(Webshop.eBay, "ProductID2")).thenReturn(product2); // Act catalogueRetriever.loadCatalogues(); @@ -71,33 +70,7 @@ class CatalogueRetrieverTest { // Verify the method invocations verify(productsConfig).loadConfig(); - verify(productRetriever).getProductFromAmazon("ASIN1"); - verify(productRetriever).getProductFromEbay("ProductID2"); - } - - @Test - void loadCatalogues_ValidConfig_CataloguesLoaded_InvalidProduct() throws ConfigurationException { - // Arrange - List productCatalogues = new ArrayList<>(); - - // Create a sample product catalogue - ProductCatalogue productCatalogue = new ProductCatalogue("Catalogue 1", "Sample catalogue"); - - Product product = new Product(); - product.setDataOrigin(""); - product.setProductId("ProductID1"); - productCatalogue.addProduct(product); - productCatalogues.add(productCatalogue); - - // Mock the methods - when(productsConfig.getProductCatalogues()).thenReturn(productCatalogues); - when(productRetriever.getProductFromAmazon("ProductID1")).thenReturn(product); - - // Act and Assert - InvalidProductException exception = assertThrows(InvalidProductException.class, () -> { - catalogueRetriever.loadCatalogues(); - }); - - assertEquals("Product data origin is invalid", exception.getMessage()); + verify(productRetriever).getProductFromWebshop(Webshop.Amazon, "ASIN1"); + verify(productRetriever).getProductFromWebshop(Webshop.eBay, "ProductID2"); } } diff --git a/src/test/java/de/rwu/easydrop/service/retriever/ProductRetrieverTest.java b/src/test/java/de/rwu/easydrop/service/retriever/ProductRetrieverTest.java index 32afecc..5fee30f 100644 --- a/src/test/java/de/rwu/easydrop/service/retriever/ProductRetrieverTest.java +++ b/src/test/java/de/rwu/easydrop/service/retriever/ProductRetrieverTest.java @@ -19,13 +19,14 @@ import de.rwu.easydrop.api.client.EbayItemDataSource; import de.rwu.easydrop.api.dto.ProductDTO; import de.rwu.easydrop.data.connector.AbstractProductPersistence; import de.rwu.easydrop.model.Product; +import de.rwu.easydrop.model.Webshop; import de.rwu.easydrop.util.Config; class ProductRetrieverTest { @Mock private Config config; @Mock - private DataSourceFactory dataSourceFactory; + private DataSourceFactory DataSourceFactory; @Mock private AmazonProductDataSource amazonDataSource; @Mock @@ -44,19 +45,19 @@ class ProductRetrieverTest { 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); - productRetriever = new ProductRetriever(dataSourceFactory); + DataSourceFactory.setConfig(config); + productRetriever = new ProductRetriever(DataSourceFactory); } @Test void getProductFromAmazon_ReturnsProduct() { // Arrange String asin = "B01234ABC"; - when(dataSourceFactory.createAmazonProductDataSource()).thenReturn(amazonDataSource); + when(DataSourceFactory.createAmazonProductDataSource()).thenReturn(amazonDataSource); when(amazonDataSource.getProductDTOById(asin)).thenReturn(productDTO); when(productDTO.getProductId()).thenReturn(asin); when(productDTO.getCurrentPrice()).thenReturn(9.99); - when(productDTO.getDataOrigin()).thenReturn("Amazon"); + when(productDTO.getDataOrigin()).thenReturn(Webshop.Amazon); // Act Product result = productRetriever.getProductFromAmazon(asin); @@ -72,11 +73,11 @@ class ProductRetrieverTest { void getProductFromEbay_ReturnsProduct() { // Arrange String productQuery = "MySearchQuery"; - when(dataSourceFactory.createEbayItemDataSource()).thenReturn(ebayDataSource); + when(DataSourceFactory.createEbayItemDataSource()).thenReturn(ebayDataSource); when(ebayDataSource.getProductDTOById(productQuery)).thenReturn(productDTO); when(productDTO.getProductId()).thenReturn(productQuery); when(productDTO.getCurrentPrice()).thenReturn(9.99); - when(productDTO.getDataOrigin()).thenReturn("eBay"); + when(productDTO.getDataOrigin()).thenReturn(Webshop.eBay); // Act Product result = productRetriever.getProductFromEbay(productQuery); @@ -92,11 +93,11 @@ class ProductRetrieverTest { void getProductFromPersistence_ValidProductId_ReturnsProduct() { // Arrange String productId = "123"; - when(dataSourceFactory.createProductPersistenceDataSource()).thenReturn(persistence); + when(DataSourceFactory.createProductPersistenceDataSource()).thenReturn(persistence); when(persistence.getProductDTOById(productId)).thenReturn(productDTO); when(productDTO.getProductId()).thenReturn(productId); when(productDTO.getCurrentPrice()).thenReturn(9.99); - when(productDTO.getDataOrigin()).thenReturn("Amazon"); + when(productDTO.getDataOrigin()).thenReturn(Webshop.Amazon); // Act Product result = productRetriever.getProductFromPersistence(productId); diff --git a/src/test/java/de/rwu/easydrop/service/validation/ProductValidatorTest.java b/src/test/java/de/rwu/easydrop/service/validation/ProductValidatorTest.java index 7827bbb..1ad2f6b 100644 --- a/src/test/java/de/rwu/easydrop/service/validation/ProductValidatorTest.java +++ b/src/test/java/de/rwu/easydrop/service/validation/ProductValidatorTest.java @@ -1,7 +1,6 @@ package de.rwu.easydrop.service.validation; import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; -import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -16,6 +15,7 @@ import org.junit.jupiter.params.provider.MethodSource; import de.rwu.easydrop.exception.InvalidProductException; import de.rwu.easydrop.model.Product; +import de.rwu.easydrop.model.Webshop; class ProductValidatorTest { @@ -38,37 +38,13 @@ class ProductValidatorTest { // Arrange Product product = new Product(); product.setCurrentPrice(9.99); - product.setDataOrigin("Amazon"); + product.setDataOrigin(Webshop.Amazon); product.setProductId("12345"); // Act and Assert assertDoesNotThrow(() -> ProductValidator.validate(product)); } - @Test - void isInValidDataOrigins_ValidDataOrigin_ReturnsTrue() { - // Arrange - String dataOrigin = "Amazon"; - - // Act - boolean result = ProductValidator.isInValidDataOrigins(dataOrigin); - - // Assert - assertTrue(result); - } - - @Test - void isInValidDataOrigins_InvalidDataOrigin_ReturnsFalse() { - // Arrange - String dataOrigin = "UnknownOrigin"; - - // Act - boolean result = ProductValidator.isInValidDataOrigins(dataOrigin); - - // Assert - assertFalse(result); - } - @ParameterizedTest @MethodSource("invalidProductProvider") void validate_InvalidProduct_ThrowsInvalidProductException(Product product) { @@ -79,22 +55,13 @@ class ProductValidatorTest { static Stream invalidProductProvider() { return Stream.of( createProductWithZeroPrice(), - createProductWithUnknownDataOrigin(), createProductWithEmptyProductId()); } private static Product createProductWithZeroPrice() { Product product = new Product(); product.setCurrentPrice(0.00); - product.setDataOrigin("Amazon"); - product.setProductId("12345"); - return product; - } - - private static Product createProductWithUnknownDataOrigin() { - Product product = new Product(); - product.setCurrentPrice(9.99); - product.setDataOrigin("UnknownOrigin"); + product.setDataOrigin(Webshop.Amazon); product.setProductId("12345"); return product; } @@ -102,7 +69,7 @@ class ProductValidatorTest { private static Product createProductWithEmptyProductId() { Product product = new Product(); product.setCurrentPrice(9.99); - product.setDataOrigin("Amazon"); + product.setDataOrigin(Webshop.Amazon); product.setProductId(""); return product; } diff --git a/src/test/java/de/rwu/easydrop/service/writer/CatalogueWriterTest.java b/src/test/java/de/rwu/easydrop/service/writer/CatalogueWriterTest.java index 71fdff5..c590733 100644 --- a/src/test/java/de/rwu/easydrop/service/writer/CatalogueWriterTest.java +++ b/src/test/java/de/rwu/easydrop/service/writer/CatalogueWriterTest.java @@ -16,6 +16,7 @@ import de.rwu.easydrop.api.dto.ProductDTO; import de.rwu.easydrop.data.connector.AbstractProductPersistence; import de.rwu.easydrop.model.Product; import de.rwu.easydrop.model.ProductCatalogue; +import de.rwu.easydrop.model.Webshop; class CatalogueWriterTest { @@ -46,12 +47,12 @@ class CatalogueWriterTest { List catalogues = new ArrayList<>(); ProductCatalogue catalogue1 = new ProductCatalogue("Catalogue 1", "Sample catalogue 1"); - catalogue1.addProduct(createSampleProduct("Amazon", "ID 1")); - catalogue1.addProduct(createSampleProduct("eBay", "ID 2")); + catalogue1.addProduct(createSampleProduct(Webshop.Amazon, "ID 1")); + catalogue1.addProduct(createSampleProduct(Webshop.eBay, "ID 2")); ProductCatalogue catalogue2 = new ProductCatalogue("Catalogue 2", "Sample catalogue 2"); - catalogue2.addProduct(createSampleProduct("Amazon", "ID 3")); - catalogue2.addProduct(createSampleProduct("eBay", "ID 4")); + catalogue2.addProduct(createSampleProduct(Webshop.Amazon, "ID 3")); + catalogue2.addProduct(createSampleProduct(Webshop.eBay, "ID 4")); catalogues.add(catalogue1); catalogues.add(catalogue2); @@ -59,7 +60,7 @@ class CatalogueWriterTest { return catalogues; } - private Product createSampleProduct(String dataOrigin, String productId) { + private Product createSampleProduct(Webshop dataOrigin, String productId) { Product product = new Product(); product.setDataOrigin(dataOrigin); product.setProductId(productId); diff --git a/src/test/java/de/rwu/easydrop/service/writer/ProductWriterTest.java b/src/test/java/de/rwu/easydrop/service/writer/ProductWriterTest.java index aab0cdd..e2bd870 100644 --- a/src/test/java/de/rwu/easydrop/service/writer/ProductWriterTest.java +++ b/src/test/java/de/rwu/easydrop/service/writer/ProductWriterTest.java @@ -12,6 +12,7 @@ import org.mockito.MockitoAnnotations; import de.rwu.easydrop.api.dto.ProductDTO; import de.rwu.easydrop.data.connector.AbstractProductPersistence; import de.rwu.easydrop.model.Product; +import de.rwu.easydrop.model.Webshop; class ProductWriterTest { @@ -32,7 +33,7 @@ class ProductWriterTest { // Arrange Product product = new Product(); product.setProductId("12345"); - product.setDataOrigin("Amazon"); + product.setDataOrigin(Webshop.Amazon); product.setCurrentPrice(9.99); // Act @@ -47,7 +48,7 @@ class ProductWriterTest { // Arrange Product product = new Product(); product.setProductId(""); - product.setDataOrigin("Amazon"); + product.setDataOrigin(Webshop.Amazon); // Act and Assert assertThrows(Exception.class, () -> productWriter.writeProductToPersistence(product));