Updated test cases
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user