Updated test cases
This commit is contained in:
@@ -44,7 +44,7 @@ class AbstractDataWriterTest {
|
||||
|
||||
@Override
|
||||
protected Webshop getDataTarget() {
|
||||
return Webshop.Amazon;
|
||||
return Webshop.AMAZON;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -57,7 +57,7 @@ class AbstractDataWriterTest {
|
||||
@Test
|
||||
void sendPutRequest_badResponseCode_throwsException() throws IOException {
|
||||
// Set up DTO
|
||||
ProductDTO dto = new ProductDTO(demoProductId, Webshop.Amazon);
|
||||
ProductDTO dto = new ProductDTO(demoProductId, Webshop.AMAZON);
|
||||
|
||||
// Set up Mocks
|
||||
AbstractDataWriter mockWriter = mock(AbstractDataWriter.class);
|
||||
@@ -69,13 +69,13 @@ class AbstractDataWriterTest {
|
||||
writer.sendPutRequest(dto, "Sales");
|
||||
});
|
||||
|
||||
assertEquals("Amazon 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, Webshop.Amazon);
|
||||
ProductDTO dto = new ProductDTO(demoProductId, Webshop.AMAZON);
|
||||
|
||||
// Set up Mocks
|
||||
AbstractDataWriter mockWriter = mock(AbstractDataWriter.class);
|
||||
@@ -86,13 +86,13 @@ class AbstractDataWriterTest {
|
||||
writer.sendPutRequest(dto, "testApiType");
|
||||
});
|
||||
|
||||
assertEquals("Couldn't fulfill Amazon 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, Webshop.Amazon);
|
||||
ProductDTO dto = new ProductDTO(demoProductId, Webshop.AMAZON);
|
||||
|
||||
// Set up Mocks
|
||||
AbstractDataWriter mockWriter = mock(AbstractDataWriter.class);
|
||||
@@ -102,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(Webshop.Amazon);
|
||||
when(mockWriter.getDataTarget()).thenReturn(Webshop.AMAZON);
|
||||
|
||||
assertDoesNotThrow(() -> {
|
||||
mockWriter.sendPutRequest(dto, "Purchase");
|
||||
|
||||
@@ -21,7 +21,7 @@ class AbstractPurchaserTest {
|
||||
@Test
|
||||
void purchaseProduct_CorrectApiTypeInException() throws IOException {
|
||||
// Set up DTO
|
||||
ProductDTO dto = new ProductDTO("12345", Webshop.Amazon);
|
||||
ProductDTO dto = new ProductDTO("12345", Webshop.AMAZON);
|
||||
|
||||
// Set up mocks
|
||||
URL mockURL = mock(URL.class);
|
||||
@@ -30,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(Webshop.Amazon);
|
||||
when(mockPurchaser.getDataTarget()).thenReturn(Webshop.AMAZON);
|
||||
|
||||
assertDoesNotThrow(() -> {
|
||||
mockPurchaser.purchaseProduct(dto);
|
||||
|
||||
@@ -21,7 +21,7 @@ class AbstractSellerTest {
|
||||
@Test
|
||||
void purchaseProduct_CorrectApiTypeInException() throws IOException {
|
||||
// Set up DTO
|
||||
ProductDTO dto = new ProductDTO("12345", Webshop.Amazon);
|
||||
ProductDTO dto = new ProductDTO("12345", Webshop.AMAZON);
|
||||
|
||||
// Set up mocks
|
||||
URL mockURL = mock(URL.class);
|
||||
@@ -30,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(Webshop.Amazon);
|
||||
when(mockSeller.getDataTarget()).thenReturn(Webshop.AMAZON);
|
||||
|
||||
assertDoesNotThrow(() -> {
|
||||
mockSeller.sellProduct(dto);
|
||||
|
||||
@@ -29,7 +29,7 @@ class AmazonProductDataSourceTest {
|
||||
|
||||
private static String demoApiKey = "my-api-key";
|
||||
private static String demoApiUrl = "https://www.example.com/api";
|
||||
private static Webshop demoDataOrigin = Webshop.Amazon;
|
||||
private static Webshop demoDataOrigin = Webshop.AMAZON;
|
||||
private static String demoProductId = "whateverId";
|
||||
|
||||
@BeforeEach
|
||||
@@ -139,7 +139,7 @@ class AmazonProductDataSourceTest {
|
||||
|
||||
// Verify the product DTO properties
|
||||
assertEquals(demoProductId, result.getProductId());
|
||||
assertEquals(Webshop.Amazon, result.getDataOrigin());
|
||||
assertEquals(Webshop.AMAZON, result.getDataOrigin());
|
||||
assertEquals(true, result.isAvailable());
|
||||
assertEquals(10.0, result.getCurrentPrice());
|
||||
assertEquals(2.5, result.getDeliveryPrice());
|
||||
@@ -165,7 +165,7 @@ class AmazonProductDataSourceTest {
|
||||
});
|
||||
|
||||
// Verify the exception message
|
||||
assertEquals("Nothing found: Amazon API responded with error code 404", exception.getMessage());
|
||||
assertEquals("Nothing found: AMAZON API responded with error code 404", exception.getMessage());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -188,7 +188,7 @@ class AmazonProductDataSourceTest {
|
||||
});
|
||||
|
||||
// Verify the exception message
|
||||
assertEquals("Couldn't fulfill Amazon API request", exception.getMessage());
|
||||
assertEquals("Couldn't fulfill AMAZON API request", exception.getMessage());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -18,7 +18,7 @@ class AmazonPurchaserTest {
|
||||
|
||||
private static String demoApiKey = "my-api-key";
|
||||
private static String demoApiUrl = "https://www.example.com/api";
|
||||
private static Webshop demoDataTarget = Webshop.Amazon;
|
||||
private static Webshop demoDataTarget = Webshop.AMAZON;
|
||||
|
||||
@BeforeEach
|
||||
void setup() {
|
||||
|
||||
@@ -18,7 +18,7 @@ class AmazonSellerTest {
|
||||
|
||||
private static String demoApiKey = "my-api-key";
|
||||
private static String demoApiUrl = "https://www.example.com/api";
|
||||
private static Webshop demoDataTarget = Webshop.Amazon;
|
||||
private static Webshop demoDataTarget = Webshop.AMAZON;
|
||||
|
||||
@BeforeEach
|
||||
void setup() {
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
package de.rwu.easydrop.api.client;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import javax.naming.ConfigurationException;
|
||||
@@ -11,10 +9,7 @@ import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.sqlite.SQLiteDataSource;
|
||||
|
||||
import de.rwu.easydrop.data.connector.SQLiteConnector;
|
||||
import de.rwu.easydrop.exception.PersistenceException;
|
||||
import de.rwu.easydrop.util.Config;
|
||||
|
||||
class DataSourceFactoryTest {
|
||||
@@ -50,20 +45,4 @@ class DataSourceFactoryTest {
|
||||
// Assert
|
||||
assertEquals("ebay-api-key", DataSource.getApiKey());
|
||||
}
|
||||
|
||||
@Test
|
||||
void createProductPersistenceDataSource_NullPersistence() {
|
||||
PersistenceException exception = assertThrows(PersistenceException.class, () -> {
|
||||
DataSourceFactory.createProductPersistenceDataSource();
|
||||
});
|
||||
|
||||
assertEquals("Persistence is not set", exception.getMessage());
|
||||
}
|
||||
|
||||
@Test
|
||||
void createProductPersistenceDataSource_WorkingPersistence() {
|
||||
DataSourceFactory.setPersistence(new SQLiteConnector(new SQLiteDataSource()));
|
||||
|
||||
assertDoesNotThrow(() -> DataSourceFactory.createProductPersistenceDataSource());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@ class EbayItemDataSourceTest {
|
||||
|
||||
private static String demoApiKey = "my-api-key";
|
||||
private static String demoApiUrl = "https://www.example.com/api";
|
||||
private static Webshop demoDataOrigin = Webshop.eBay;
|
||||
private static Webshop demoDataOrigin = Webshop.EBAY;
|
||||
private static String demoQuery = "iPhone";
|
||||
|
||||
@BeforeEach
|
||||
@@ -83,7 +83,7 @@ class EbayItemDataSourceTest {
|
||||
|
||||
ProductDTO result = demoDataSource.buildProductDTO(product, json);
|
||||
|
||||
assertEquals(Webshop.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
|
||||
@@ -121,6 +121,6 @@ class EbayItemDataSourceTest {
|
||||
});
|
||||
|
||||
// Verify the exception message
|
||||
assertEquals("Nothing found: eBay API responded with error code 404", exception.getMessage());
|
||||
assertEquals("Nothing found: EBAY API responded with error code 404", exception.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ class EbayPurchaserTest {
|
||||
|
||||
private static String demoApiKey = "my-api-key";
|
||||
private static String demoApiUrl = "https://www.example.com/api";
|
||||
private static Webshop demoDataTarget = Webshop.eBay;
|
||||
private static Webshop demoDataTarget = Webshop.EBAY;
|
||||
|
||||
@BeforeEach
|
||||
void setup() {
|
||||
|
||||
@@ -18,7 +18,7 @@ class EbaySellerTest {
|
||||
|
||||
private static String demoApiKey = "my-api-key";
|
||||
private static String demoApiUrl = "https://www.example.com/api";
|
||||
private static Webshop demoDataTarget = Webshop.eBay;
|
||||
private static Webshop demoDataTarget = Webshop.EBAY;
|
||||
|
||||
@BeforeEach
|
||||
void setup() {
|
||||
|
||||
@@ -14,7 +14,7 @@ class ProductDTOTest {
|
||||
void constructor_SetsProductIdAndDataOrigin() {
|
||||
// Arrange
|
||||
String productId = "12345";
|
||||
Webshop dataOrigin = Webshop.Amazon;
|
||||
Webshop dataOrigin = Webshop.AMAZON;
|
||||
|
||||
// Act
|
||||
ProductDTO productDTO = new ProductDTO(productId, dataOrigin);
|
||||
@@ -27,19 +27,19 @@ class ProductDTOTest {
|
||||
@Test
|
||||
void gettersAndSetters_WorkAsExpected() {
|
||||
// Arrange
|
||||
ProductDTO productDTO = new ProductDTO("12345", Webshop.Amazon);
|
||||
ProductDTO productDTO = new ProductDTO("12345", Webshop.AMAZON);
|
||||
|
||||
// Act and Assert
|
||||
assertEquals("12345", productDTO.getProductId());
|
||||
assertEquals(Webshop.Amazon, productDTO.getDataOrigin());
|
||||
assertEquals(Webshop.AMAZON, productDTO.getDataOrigin());
|
||||
|
||||
// Modify fields
|
||||
productDTO.setProductId("54321");
|
||||
productDTO.setDataOrigin(Webshop.eBay);
|
||||
productDTO.setDataOrigin(Webshop.EBAY);
|
||||
|
||||
// Assert
|
||||
assertEquals("54321", productDTO.getProductId());
|
||||
assertEquals(Webshop.eBay, productDTO.getDataOrigin());
|
||||
assertEquals(Webshop.EBAY, productDTO.getDataOrigin());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
package de.rwu.easydrop.core;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
public class OfferIdentifierTest {
|
||||
@Test
|
||||
void testRunIdentifier() {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
package de.rwu.easydrop.core;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
public class OfferProvisionerTest {
|
||||
@Test
|
||||
void testRunProvisioner() {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
package de.rwu.easydrop.core;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
public class OfferReviewerTest {
|
||||
@Test
|
||||
void testRunReviewer() {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
package de.rwu.easydrop.core;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
public class OfferUpdaterTest {
|
||||
@Test
|
||||
void testRunUpdater() {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -11,11 +11,8 @@ import static org.mockito.Mockito.doThrow;
|
||||
|
||||
import java.sql.SQLException;
|
||||
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.TestInstance;
|
||||
import org.junit.jupiter.api.TestInstance.Lifecycle;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.sqlite.SQLiteDataSource;
|
||||
@@ -24,30 +21,24 @@ 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 {
|
||||
private static final String TEST_PRODUCT_ID = "12345";
|
||||
private SQLiteConnector sqliteConnector;
|
||||
private SQLiteConnector sqliteConnector = new SQLiteConnector(new SQLiteDataSource());
|
||||
|
||||
@Mock
|
||||
private SQLiteDataSource mockDataSource;
|
||||
|
||||
@BeforeAll
|
||||
public void setup() {
|
||||
sqliteConnector = new SQLiteConnector(new SQLiteDataSource());
|
||||
}
|
||||
|
||||
@BeforeEach
|
||||
public void clearDatabase() {
|
||||
public void prepare() {
|
||||
MockitoAnnotations.openMocks(this);
|
||||
}
|
||||
|
||||
@Test
|
||||
void saveProduct_ValidProduct_SuccessfullySaved() {
|
||||
void writeProduct_ValidProduct_SuccessfullySaved() {
|
||||
// Arrange
|
||||
sqliteConnector.clearData();
|
||||
ProductDTO ProductDTO = new ProductDTO(TEST_PRODUCT_ID, Webshop.Amazon);
|
||||
ProductDTO.setDataOrigin(Webshop.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");
|
||||
@@ -55,12 +46,12 @@ class SQLiteConnectorTest {
|
||||
ProductDTO.setAvailable(true);
|
||||
|
||||
// Act
|
||||
assertDoesNotThrow(() -> sqliteConnector.saveProduct(ProductDTO));
|
||||
assertDoesNotThrow(() -> sqliteConnector.writeProduct(ProductDTO));
|
||||
|
||||
// Assert
|
||||
ProductDTO savedProductDTO = sqliteConnector.getProductDTOById(TEST_PRODUCT_ID);
|
||||
assertNotNull(savedProductDTO);
|
||||
assertEquals(Webshop.Amazon, savedProductDTO.getDataOrigin());
|
||||
assertEquals(Webshop.AMAZON, savedProductDTO.getDataOrigin());
|
||||
assertEquals(TEST_PRODUCT_ID, savedProductDTO.getProductId());
|
||||
assertEquals(9.99, savedProductDTO.getCurrentPrice());
|
||||
assertEquals("Sample Merchant", savedProductDTO.getMerchant());
|
||||
@@ -79,7 +70,7 @@ class SQLiteConnectorTest {
|
||||
|
||||
// Assert
|
||||
assertNotNull(ProductDTO);
|
||||
assertEquals(Webshop.Amazon, ProductDTO.getDataOrigin());
|
||||
assertEquals(Webshop.AMAZON, ProductDTO.getDataOrigin());
|
||||
assertEquals(TEST_PRODUCT_ID, ProductDTO.getProductId());
|
||||
assertEquals(9.99, ProductDTO.getCurrentPrice());
|
||||
assertEquals("Sample Merchant", ProductDTO.getMerchant());
|
||||
@@ -112,14 +103,14 @@ class SQLiteConnectorTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
void saveProduct_ThrowsPersistenceException_OnSQLException() throws SQLException {
|
||||
void writeProduct_ThrowsPersistenceException_OnSQLException() throws SQLException {
|
||||
// Arrange
|
||||
ProductDTO ProductDTO = new ProductDTO(TEST_PRODUCT_ID, Webshop.Amazon);
|
||||
ProductDTO ProductDTO = new ProductDTO(TEST_PRODUCT_ID, Webshop.AMAZON);
|
||||
sqliteConnector.setDb(mockDataSource);
|
||||
doThrow(SQLException.class).when(mockDataSource).getConnection();
|
||||
|
||||
// Act and Assert
|
||||
assertThrows(PersistenceException.class, () -> sqliteConnector.saveProduct(ProductDTO));
|
||||
assertThrows(PersistenceException.class, () -> sqliteConnector.writeProduct(ProductDTO));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -144,41 +135,11 @@ class SQLiteConnectorTest {
|
||||
}
|
||||
|
||||
private void insertSampleProduct() {
|
||||
ProductDTO ProductDTO = new ProductDTO(TEST_PRODUCT_ID, Webshop.Amazon);
|
||||
ProductDTO ProductDTO = new ProductDTO(TEST_PRODUCT_ID, Webshop.AMAZON);
|
||||
ProductDTO.setCurrentPrice(9.99);
|
||||
ProductDTO.setMerchant("Sample Merchant");
|
||||
ProductDTO.setDeliveryPrice(2.50);
|
||||
ProductDTO.setAvailable(true);
|
||||
sqliteConnector.saveProduct(ProductDTO);
|
||||
}
|
||||
|
||||
@Test
|
||||
void getApiKey_UnsupportedOperationExceptionThrown() {
|
||||
// Arrange
|
||||
SQLiteConnector connector = new SQLiteConnector(new SQLiteDataSource());
|
||||
|
||||
// Act and Assert
|
||||
assertThrows(UnsupportedOperationException.class, connector::getApiKey);
|
||||
}
|
||||
|
||||
@Test
|
||||
void buildProductDTO_UnsupportedOperationExceptionThrown() {
|
||||
// Arrange
|
||||
SQLiteConnector connector = new SQLiteConnector(new SQLiteDataSource());
|
||||
ProductDTO product = new ProductDTO("ASIN123", Webshop.Amazon);
|
||||
String json = "{\"productId\":\"ASIN123\",\"dataOrigin\":\"Amazon\"}";
|
||||
|
||||
// Act and Assert
|
||||
assertThrows(UnsupportedOperationException.class, () -> connector.buildProductDTO(product, json));
|
||||
}
|
||||
|
||||
@Test
|
||||
void createApiUrl_UnsupportedOperationExceptionThrown() {
|
||||
// Arrange
|
||||
SQLiteConnector connector = new SQLiteConnector(new SQLiteDataSource());
|
||||
String productIdentifier = "ASIN123";
|
||||
|
||||
// Act and Assert
|
||||
assertThrows(UnsupportedOperationException.class, () -> connector.createApiUrl(productIdentifier));
|
||||
sqliteConnector.writeProduct(ProductDTO);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package de.rwu.easydrop.model;
|
||||
|
||||
import static org.mockito.Mockito.description;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
@@ -19,7 +21,7 @@ class ProductCatalogueTest {
|
||||
Product product = new Product();
|
||||
product.setProductId("12345");
|
||||
product.setMerchant("AmazonSeller");
|
||||
product.setDataOrigin(Webshop.Amazon);
|
||||
product.setDataOrigin(Webshop.AMAZON);
|
||||
productCatalogue.addProduct(product);
|
||||
|
||||
List<Product> products = productCatalogue.getProducts();
|
||||
@@ -32,13 +34,13 @@ class ProductCatalogueTest {
|
||||
Product product1 = new Product();
|
||||
product1.setProductId("12345");
|
||||
product1.setMerchant("AmazonSeller");
|
||||
product1.setDataOrigin(Webshop.Amazon);
|
||||
product1.setDataOrigin(Webshop.AMAZON);
|
||||
productCatalogue.addProduct(product1);
|
||||
|
||||
Product product2 = new Product();
|
||||
product2.setProductId("54321");
|
||||
product2.setMerchant("eBaySeller");
|
||||
product2.setDataOrigin(Webshop.eBay);
|
||||
product2.setDataOrigin(Webshop.EBAY);
|
||||
productCatalogue.addProduct(product2);
|
||||
|
||||
productCatalogue.removeProduct(product1);
|
||||
@@ -53,13 +55,13 @@ class ProductCatalogueTest {
|
||||
Product product1 = new Product();
|
||||
product1.setProductId("12345");
|
||||
product1.setMerchant("AmazonSeller");
|
||||
product1.setDataOrigin(Webshop.Amazon);
|
||||
product1.setDataOrigin(Webshop.AMAZON);
|
||||
productCatalogue.addProduct(product1);
|
||||
|
||||
Product product2 = new Product();
|
||||
product2.setProductId("54321");
|
||||
product2.setMerchant("ebayMerchant");
|
||||
product2.setDataOrigin(Webshop.eBay);
|
||||
product2.setDataOrigin(Webshop.EBAY);
|
||||
productCatalogue.addProduct(product2);
|
||||
|
||||
productCatalogue.clearProducts();
|
||||
@@ -73,20 +75,23 @@ class ProductCatalogueTest {
|
||||
Product product1 = new Product();
|
||||
product1.setProductId("12345");
|
||||
product1.setMerchant("AmazonSeller");
|
||||
product1.setDataOrigin(Webshop.Amazon);
|
||||
product1.setDataOrigin(Webshop.AMAZON);
|
||||
productCatalogue.addProduct(product1);
|
||||
|
||||
Product product2 = new Product();
|
||||
product2.setProductId("54321");
|
||||
product2.setMerchant("eBaySeller");
|
||||
product2.setDataOrigin(Webshop.eBay);
|
||||
product2.setDataOrigin(Webshop.EBAY);
|
||||
productCatalogue.addProduct(product2);
|
||||
|
||||
String expectedString = "Product Catalogue: GPU\n" +
|
||||
"Description: Graphics Processing Units\n" +
|
||||
"Products:\n" +
|
||||
"Product: [12345 from AmazonSeller (Amazon) at 0,00 Euro (available: no)]\n" +
|
||||
"Product: [54321 from eBaySeller (eBay) at 0,00 Euro (available: no)]\n";
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append(String.format("Catalogue Name: %s%n", "GPU"));
|
||||
sb.append(String.format("Description: %s%n", "Graphics Processing Units"));
|
||||
sb.append("Products:\n");
|
||||
sb.append(String.format("%s%n", product1.toString()));
|
||||
sb.append(String.format("%s%n", product2.toString()));
|
||||
|
||||
String expectedString = sb.toString();
|
||||
|
||||
Assertions.assertEquals(expectedString, productCatalogue.toString());
|
||||
}
|
||||
|
||||
@@ -10,13 +10,13 @@ class ProductTest {
|
||||
@Test
|
||||
void testToString1() {
|
||||
Product product1 = new Product();
|
||||
product1.setDataOrigin(Webshop.Amazon);
|
||||
product1.setDataOrigin(Webshop.AMAZON);
|
||||
product1.setProductId("12345");
|
||||
product1.setMerchant("Merchant A");
|
||||
product1.setCurrentPrice(19.99);
|
||||
product1.setAvailable(true);
|
||||
|
||||
String expectedString1 = "Product: [12345 from Merchant A (Amazon) at 19,99 Euro (available: yes)]";
|
||||
String expectedString1 = "Product: [12345 from Merchant A (AMAZON) at 19,99 Euro (available: yes)]";
|
||||
String result1 = product1.toString();
|
||||
|
||||
assertEquals(expectedString1, result1);
|
||||
@@ -25,13 +25,13 @@ class ProductTest {
|
||||
@Test
|
||||
void testToString2() {
|
||||
Product product2 = new Product();
|
||||
product2.setDataOrigin(Webshop.eBay);
|
||||
product2.setDataOrigin(Webshop.EBAY);
|
||||
product2.setProductId("67890");
|
||||
product2.setMerchant("Merchant B");
|
||||
product2.setCurrentPrice(9.99);
|
||||
product2.setAvailable(false);
|
||||
|
||||
String expectedString2 = "Product: [67890 from Merchant B (eBay) at 9,99 Euro (available: no)]";
|
||||
String expectedString2 = "Product: [67890 from Merchant B (EBAY) at 9,99 Euro (available: no)]";
|
||||
String result2 = product2.toString();
|
||||
|
||||
assertEquals(expectedString2, result2);
|
||||
@@ -41,7 +41,7 @@ class ProductTest {
|
||||
void gettersAndSetters_WorkAsExpected() {
|
||||
// Arrange
|
||||
Product product = new Product();
|
||||
product.setDataOrigin(Webshop.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(Webshop.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(Webshop.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(Webshop.eBay, product.getDataOrigin());
|
||||
assertEquals(Webshop.EBAY, product.getDataOrigin());
|
||||
assertEquals("54321", product.getProductId());
|
||||
assertEquals(19.99, product.getCurrentPrice());
|
||||
assertEquals("New Merchant", product.getMerchant());
|
||||
|
||||
@@ -48,7 +48,7 @@ class ProductMapperTest {
|
||||
}
|
||||
|
||||
private ProductDTO createProductDTO() {
|
||||
ProductDTO dto = new ProductDTO("12345", Webshop.Amazon);
|
||||
ProductDTO dto = new ProductDTO("12345", Webshop.AMAZON);
|
||||
dto.setAvailable(true);
|
||||
dto.setCurrentPrice(9.99);
|
||||
dto.setDeliveryPrice(2.50);
|
||||
@@ -61,7 +61,7 @@ class ProductMapperTest {
|
||||
// Arrange
|
||||
Product product = new Product();
|
||||
product.setProductId("12345");
|
||||
product.setDataOrigin(Webshop.Amazon);
|
||||
product.setDataOrigin(Webshop.AMAZON);
|
||||
product.setAvailable(true);
|
||||
product.setCurrentPrice(9.99);
|
||||
product.setDeliveryPrice(2.50);
|
||||
@@ -72,7 +72,7 @@ class ProductMapperTest {
|
||||
|
||||
// Assert
|
||||
assertEquals("12345", dto.getProductId());
|
||||
assertEquals(Webshop.Amazon, dto.getDataOrigin());
|
||||
assertEquals(Webshop.AMAZON, dto.getDataOrigin());
|
||||
assertTrue(dto.isAvailable());
|
||||
assertEquals(9.99, dto.getCurrentPrice());
|
||||
assertEquals(2.50, dto.getDeliveryPrice());
|
||||
|
||||
@@ -1,130 +0,0 @@
|
||||
package de.rwu.easydrop.service.processing;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
||||
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 java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import de.rwu.easydrop.exception.InvalidCatalogueException;
|
||||
import de.rwu.easydrop.model.Product;
|
||||
import de.rwu.easydrop.model.ProductCatalogue;
|
||||
import de.rwu.easydrop.model.ProductPair;
|
||||
|
||||
class OrderManagerTest {
|
||||
|
||||
@Test
|
||||
void testConstructorIsPrivate()
|
||||
throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException {
|
||||
// Check for private constructor
|
||||
Constructor<OrderManager> constructor = OrderManager.class.getDeclaredConstructor();
|
||||
assertTrue(Modifier.isPrivate(constructor.getModifiers()));
|
||||
|
||||
// Make sure exception is thrown when instantiating
|
||||
constructor.setAccessible(true);
|
||||
assertThrows(InvocationTargetException.class, () -> {
|
||||
constructor.newInstance();
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
void testCreateOrders_ValidCatalogues_OrdersCreated() {
|
||||
// Arrange
|
||||
List<ProductCatalogue> catalogues = createSampleCatalogues();
|
||||
|
||||
// Act
|
||||
assertDoesNotThrow(() -> {
|
||||
OrderManager.createOrders(catalogues);
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
void testGetHighestMarginProducts_ValidCatalogue_CheapestAndMostExpensiveProductsReturned() {
|
||||
// Arrange
|
||||
ProductCatalogue catalogue = createSampleCatalogue();
|
||||
|
||||
// Act
|
||||
ProductPair pair = OrderManager.getHighestMarginProducts(catalogue);
|
||||
|
||||
// Assert
|
||||
assertNotNull(pair);
|
||||
assertNotNull(pair.getProduct1());
|
||||
assertNotNull(pair.getProduct2());
|
||||
assertEquals("Product2", pair.getProduct1().getProductId());
|
||||
assertEquals("Product3", pair.getProduct2().getProductId());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testGetHighestMarginProducts_InvalidCatalogue_ThrowsInvalidCatalogueException() {
|
||||
// Arrange
|
||||
ProductCatalogue catalogue = new ProductCatalogue("Catalogue1", "Sample catalogue");
|
||||
catalogue.addProduct(new Product());
|
||||
// The catalogue has only one product, which is invalid
|
||||
|
||||
// Act & Assert
|
||||
Exception e = assertThrows(InvalidCatalogueException.class,
|
||||
() -> OrderManager.getHighestMarginProducts(catalogue));
|
||||
|
||||
assertEquals("Product Catalogue holds less than 2 products!", e.getMessage());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testGetHighestMarginProducts_InvalidCatalogue_NoMargin() {
|
||||
// Arrange
|
||||
ProductCatalogue catalogue = new ProductCatalogue("Catalogue1", "Sample catalogue");
|
||||
catalogue.addProduct(new Product());
|
||||
catalogue.addProduct(new Product());
|
||||
// The catalogue has only one product, which is invalid
|
||||
|
||||
// Act & Assert
|
||||
Exception e = assertThrows(InvalidCatalogueException.class,
|
||||
() -> OrderManager.getHighestMarginProducts(catalogue));
|
||||
|
||||
assertEquals("Price margin is zero!", e.getMessage());
|
||||
}
|
||||
|
||||
private List<ProductCatalogue> createSampleCatalogues() {
|
||||
List<ProductCatalogue> catalogues = new ArrayList<>();
|
||||
|
||||
ProductCatalogue catalogue1 = createSampleCatalogue();
|
||||
catalogues.add(catalogue1);
|
||||
|
||||
ProductCatalogue catalogue2 = new ProductCatalogue("Catalogue2", "Sample catalogue 2");
|
||||
Product product4 = new Product();
|
||||
product4.setProductId("Product4");
|
||||
product4.setCurrentPrice(6.78);
|
||||
catalogue2.addProduct(product4);
|
||||
Product product5 = new Product();
|
||||
product5.setProductId("Product5");
|
||||
product5.setCurrentPrice(7.89);
|
||||
catalogue2.addProduct(product5);
|
||||
catalogues.add(catalogue2);
|
||||
|
||||
return catalogues;
|
||||
}
|
||||
|
||||
private ProductCatalogue createSampleCatalogue() {
|
||||
ProductCatalogue catalogue = new ProductCatalogue("Catalogue1", "Sample catalogue");
|
||||
Product product1 = new Product();
|
||||
product1.setProductId("Product1");
|
||||
product1.setCurrentPrice(1.23);
|
||||
catalogue.addProduct(product1);
|
||||
Product product2 = new Product();
|
||||
product2.setProductId("Product2");
|
||||
product2.setCurrentPrice(0.89);
|
||||
catalogue.addProduct(product2);
|
||||
Product product3 = new Product();
|
||||
product3.setProductId("Product3");
|
||||
product3.setCurrentPrice(4.56);
|
||||
catalogue.addProduct(product3);
|
||||
return catalogue;
|
||||
}
|
||||
}
|
||||
@@ -38,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(Webshop.Amazon);
|
||||
product1.setDataOrigin(Webshop.AMAZON);
|
||||
product1.setProductId("ASIN1");
|
||||
productCatalogue.addProduct(product1);
|
||||
|
||||
Product product2 = new Product();
|
||||
product2.setDataOrigin(Webshop.eBay);
|
||||
product2.setDataOrigin(Webshop.EBAY);
|
||||
product2.setProductId("ProductID2");
|
||||
productCatalogue.addProduct(product2);
|
||||
productCatalogues.add(productCatalogue);
|
||||
|
||||
// Mock the methods
|
||||
when(productsConfig.getProductCatalogues()).thenReturn(productCatalogues);
|
||||
when(productRetriever.getProductFromWebshop(Webshop.Amazon, "ASIN1")).thenReturn(product1);
|
||||
when(productRetriever.getProductFromWebshop(Webshop.eBay, "ProductID2")).thenReturn(product2);
|
||||
when(productRetriever.getProductFromWebshop(Webshop.AMAZON, "ASIN1")).thenReturn(product1);
|
||||
when(productRetriever.getProductFromWebshop(Webshop.EBAY, "ProductID2")).thenReturn(product2);
|
||||
|
||||
// Act
|
||||
catalogueRetriever.loadCatalogues();
|
||||
@@ -70,7 +70,7 @@ class CatalogueRetrieverTest {
|
||||
|
||||
// Verify the method invocations
|
||||
verify(productsConfig).loadConfig();
|
||||
verify(productRetriever).getProductFromWebshop(Webshop.Amazon, "ASIN1");
|
||||
verify(productRetriever).getProductFromWebshop(Webshop.eBay, "ProductID2");
|
||||
verify(productRetriever).getProductFromWebshop(Webshop.AMAZON, "ASIN1");
|
||||
verify(productRetriever).getProductFromWebshop(Webshop.EBAY, "ProductID2");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +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.ProductDTO;
|
||||
import de.rwu.easydrop.data.connector.AbstractProductPersistence;
|
||||
import de.rwu.easydrop.data.connector.ProductPersistenceInterface;
|
||||
import de.rwu.easydrop.model.Product;
|
||||
import de.rwu.easydrop.model.Webshop;
|
||||
import de.rwu.easydrop.util.Config;
|
||||
@@ -26,7 +26,7 @@ class ProductRetrieverTest {
|
||||
@Mock
|
||||
private Config config;
|
||||
@Mock
|
||||
private DataSourceFactory DataSourceFactory;
|
||||
private DataSourceFactory dataSourceFactory;
|
||||
@Mock
|
||||
private AmazonProductDataSource amazonDataSource;
|
||||
@Mock
|
||||
@@ -36,7 +36,7 @@ class ProductRetrieverTest {
|
||||
@Mock
|
||||
private Product product;
|
||||
@Mock
|
||||
private AbstractProductPersistence persistence;
|
||||
private ProductPersistenceInterface persistence;
|
||||
|
||||
private ProductRetriever productRetriever;
|
||||
|
||||
@@ -45,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, persistence);
|
||||
}
|
||||
|
||||
@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(Webshop.Amazon);
|
||||
when(productDTO.getDataOrigin()).thenReturn(Webshop.AMAZON);
|
||||
|
||||
// Act
|
||||
Product result = productRetriever.getProductFromAmazon(asin);
|
||||
@@ -73,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(Webshop.eBay);
|
||||
when(productDTO.getDataOrigin()).thenReturn(Webshop.EBAY);
|
||||
|
||||
// Act
|
||||
Product result = productRetriever.getProductFromEbay(productQuery);
|
||||
@@ -93,11 +93,10 @@ class ProductRetrieverTest {
|
||||
void getProductFromPersistence_ValidProductId_ReturnsProduct() {
|
||||
// Arrange
|
||||
String productId = "123";
|
||||
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(Webshop.Amazon);
|
||||
when(productDTO.getDataOrigin()).thenReturn(Webshop.AMAZON);
|
||||
|
||||
// Act
|
||||
Product result = productRetriever.getProductFromPersistence(productId);
|
||||
|
||||
@@ -38,7 +38,7 @@ class ProductValidatorTest {
|
||||
// Arrange
|
||||
Product product = new Product();
|
||||
product.setCurrentPrice(9.99);
|
||||
product.setDataOrigin(Webshop.Amazon);
|
||||
product.setDataOrigin(Webshop.AMAZON);
|
||||
product.setProductId("12345");
|
||||
|
||||
// Act and Assert
|
||||
@@ -61,7 +61,7 @@ class ProductValidatorTest {
|
||||
private static Product createProductWithZeroPrice() {
|
||||
Product product = new Product();
|
||||
product.setCurrentPrice(0.00);
|
||||
product.setDataOrigin(Webshop.Amazon);
|
||||
product.setDataOrigin(Webshop.AMAZON);
|
||||
product.setProductId("12345");
|
||||
return product;
|
||||
}
|
||||
@@ -69,7 +69,7 @@ class ProductValidatorTest {
|
||||
private static Product createProductWithEmptyProductId() {
|
||||
Product product = new Product();
|
||||
product.setCurrentPrice(9.99);
|
||||
product.setDataOrigin(Webshop.Amazon);
|
||||
product.setDataOrigin(Webshop.AMAZON);
|
||||
product.setProductId("");
|
||||
return product;
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@ import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
|
||||
import de.rwu.easydrop.api.dto.ProductDTO;
|
||||
import de.rwu.easydrop.data.connector.AbstractProductPersistence;
|
||||
import de.rwu.easydrop.data.connector.ProductPersistenceInterface;
|
||||
import de.rwu.easydrop.model.Product;
|
||||
import de.rwu.easydrop.model.ProductCatalogue;
|
||||
import de.rwu.easydrop.model.Webshop;
|
||||
@@ -21,7 +21,7 @@ import de.rwu.easydrop.model.Webshop;
|
||||
class CatalogueWriterTest {
|
||||
|
||||
@Mock
|
||||
private AbstractProductPersistence persistenceMock;
|
||||
private ProductPersistenceInterface persistenceMock;
|
||||
|
||||
private CatalogueWriter catalogueWriter;
|
||||
|
||||
@@ -40,19 +40,19 @@ class CatalogueWriterTest {
|
||||
catalogueWriter.writeCatalogues(catalogues);
|
||||
|
||||
// Assert
|
||||
verify(persistenceMock, times(4)).saveProduct(any(ProductDTO.class));
|
||||
verify(persistenceMock, times(4)).writeProduct(any(ProductDTO.class));
|
||||
}
|
||||
|
||||
private List<ProductCatalogue> createSampleCatalogues() {
|
||||
List<ProductCatalogue> catalogues = new ArrayList<>();
|
||||
|
||||
ProductCatalogue catalogue1 = new ProductCatalogue("Catalogue 1", "Sample catalogue 1");
|
||||
catalogue1.addProduct(createSampleProduct(Webshop.Amazon, "ID 1"));
|
||||
catalogue1.addProduct(createSampleProduct(Webshop.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(Webshop.Amazon, "ID 3"));
|
||||
catalogue2.addProduct(createSampleProduct(Webshop.eBay, "ID 4"));
|
||||
catalogue2.addProduct(createSampleProduct(Webshop.AMAZON, "ID 3"));
|
||||
catalogue2.addProduct(createSampleProduct(Webshop.EBAY, "ID 4"));
|
||||
|
||||
catalogues.add(catalogue1);
|
||||
catalogues.add(catalogue2);
|
||||
|
||||
@@ -10,22 +10,21 @@ import org.mockito.Mockito;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
|
||||
import de.rwu.easydrop.api.dto.ProductDTO;
|
||||
import de.rwu.easydrop.data.connector.AbstractProductPersistence;
|
||||
import de.rwu.easydrop.data.connector.ProductPersistenceInterface;
|
||||
import de.rwu.easydrop.model.Product;
|
||||
import de.rwu.easydrop.model.Webshop;
|
||||
|
||||
class ProductWriterTest {
|
||||
|
||||
@Mock
|
||||
private AbstractProductPersistence persistence;
|
||||
private ProductPersistenceInterface persistence;
|
||||
|
||||
private ProductWriter productWriter;
|
||||
|
||||
@BeforeEach
|
||||
public void setup() {
|
||||
MockitoAnnotations.openMocks(this);
|
||||
productWriter = new ProductWriter();
|
||||
productWriter.setPersistence(persistence);
|
||||
productWriter = new ProductWriter(persistence);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -33,14 +32,14 @@ class ProductWriterTest {
|
||||
// Arrange
|
||||
Product product = new Product();
|
||||
product.setProductId("12345");
|
||||
product.setDataOrigin(Webshop.Amazon);
|
||||
product.setDataOrigin(Webshop.AMAZON);
|
||||
product.setCurrentPrice(9.99);
|
||||
|
||||
// Act
|
||||
productWriter.writeProductToPersistence(product);
|
||||
|
||||
// Assert
|
||||
Mockito.verify(persistence).saveProduct(any(ProductDTO.class));
|
||||
Mockito.verify(persistence).writeProduct(any(ProductDTO.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -48,7 +47,7 @@ class ProductWriterTest {
|
||||
// Arrange
|
||||
Product product = new Product();
|
||||
product.setProductId("");
|
||||
product.setDataOrigin(Webshop.Amazon);
|
||||
product.setDataOrigin(Webshop.AMAZON);
|
||||
|
||||
// Act and Assert
|
||||
assertThrows(Exception.class, () -> productWriter.writeProductToPersistence(product));
|
||||
|
||||
@@ -5,10 +5,10 @@
|
||||
description: "Integration Testing Product",
|
||||
"identifiers": [
|
||||
{
|
||||
"Amazon": "DEMO-AMAZON-001"
|
||||
"AMAZON": "DEMO-AMAZON-001"
|
||||
},
|
||||
{
|
||||
"eBay": "DEMO-EBAY-001"
|
||||
"EBAY": "DEMO-EBAY-001"
|
||||
}
|
||||
]
|
||||
]
|
||||
|
||||
@@ -5,10 +5,10 @@
|
||||
"description": "Integration Testing Product",
|
||||
"identifiers": [
|
||||
{
|
||||
"Amazon": "DEMO-AMAZON-001"
|
||||
"AMAZON": "DEMO-AMAZON-001"
|
||||
},
|
||||
{
|
||||
"eBay": "DEMO-EBAY-001"
|
||||
"EBAY": "DEMO-EBAY-001"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user