Added/updated tests

This commit is contained in:
Marvin Scham
2023-06-06 02:10:31 +02:00
parent d1bd6f6d9b
commit 39176b5dc0
4 changed files with 140 additions and 17 deletions

View File

@@ -109,4 +109,11 @@ public final class Config {
public void setProperty(final String key, final String value) {
properties.setProperty(key, value);
}
/**
* Resets the config's properties.
*/
public void reset() {
properties = null;
}
}

View File

@@ -1,33 +1,56 @@
package de.rwu.easydrop.api.dto;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNull;
import org.junit.jupiter.api.Test;
class ProductDTOTest {
@Test
void testToString1() {
ProductDTO product1 = new ProductDTO("12345", "Amazon");
product1.setMerchant("Merchant A");
product1.setCurrentPrice(19.99);
product1.setAvailable(true);
void constructor_SetsProductIdAndDataOrigin() {
// Arrange
String productId = "12345";
String dataOrigin = "Amazon";
String expectedString1 = "ProductDTO{12345 from Merchant A (Amazon) at 19,99 € (available: yes)}";
String result1 = product1.toString();
// Act
ProductDTO productDTO = new ProductDTO(productId, dataOrigin);
assertEquals(expectedString1, result1);
// Assert
assertEquals(productId, productDTO.getProductId());
assertEquals(dataOrigin, productDTO.getDataOrigin());
}
@Test
void testToString2() {
ProductDTO product2 = new ProductDTO("67890", "eBay");
product2.setMerchant("Merchant B");
product2.setCurrentPrice(9.99);
product2.setAvailable(false);
void gettersAndSetters_WorkAsExpected() {
// Arrange
ProductDTO productDTO = new ProductDTO("12345", "Amazon");
String expectedString2 = "ProductDTO{67890 from Merchant B (eBay) at 9,99 € (available: no)}";
String result2 = product2.toString();
// Act and Assert
assertEquals("12345", productDTO.getProductId());
assertEquals("Amazon", productDTO.getDataOrigin());
assertEquals(expectedString2, result2);
// Modify fields
productDTO.setProductId("54321");
productDTO.setDataOrigin("eBay");
// Assert
assertEquals("54321", productDTO.getProductId());
assertEquals("eBay", productDTO.getDataOrigin());
}
@Test
void defaultConstructor_SetsDefaultValues() {
// Act
ProductDTO productDTO = new ProductDTO(null, null);
// Assert
assertNull(productDTO.getProductId());
assertNull(productDTO.getDataOrigin());
assertEquals(0.0, productDTO.getCurrentPrice());
assertNull(productDTO.getMerchant());
assertEquals(0.0, productDTO.getDeliveryPrice());
assertFalse(productDTO.isAvailable());
}
}

View File

@@ -0,0 +1,75 @@
package de.rwu.easydrop.model;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
import org.junit.jupiter.api.Test;
class ProductTest {
@Test
void testToString1() {
Product product1 = new Product();
product1.setDataOrigin("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 € (available: yes)]";
String result1 = product1.toString();
assertEquals(expectedString1, result1);
}
@Test
void testToString2() {
Product product2 = new Product();
product2.setDataOrigin("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 € (available: no)]";
String result2 = product2.toString();
assertEquals(expectedString2, result2);
}
@Test
void gettersAndSetters_WorkAsExpected() {
// Arrange
Product product = new Product();
product.setDataOrigin("Amazon");
product.setProductId("12345");
product.setCurrentPrice(9.99);
product.setMerchant("Example Merchant");
product.setDeliveryPrice(2.50);
product.setAvailable(true);
// Act and Assert
assertEquals("Amazon", product.getDataOrigin());
assertEquals("12345", product.getProductId());
assertEquals(9.99, product.getCurrentPrice());
assertEquals("Example Merchant", product.getMerchant());
assertEquals(2.50, product.getDeliveryPrice());
assertTrue(product.isAvailable());
// Modify fields
product.setDataOrigin("eBay");
product.setProductId("54321");
product.setCurrentPrice(19.99);
product.setMerchant("New Merchant");
product.setDeliveryPrice(3.50);
product.setAvailable(false);
// Assert
assertEquals("eBay", product.getDataOrigin());
assertEquals("54321", product.getProductId());
assertEquals(19.99, product.getCurrentPrice());
assertEquals("New Merchant", product.getMerchant());
assertEquals(3.50, product.getDeliveryPrice());
assertFalse(product.isAvailable());
}
}

View File

@@ -1,6 +1,7 @@
package de.rwu.easydrop.util;
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.fail;
@@ -34,7 +35,9 @@ class ConfigImplTest {
}
@Test
void testGetProperty_ConfigNotLoaded() {
void testGetProperty_ConfigNotLoaded() throws Exception {
config.reset();
NoSuchElementException exception = assertThrows(NoSuchElementException.class, () -> {
config.getProperty(TESTDATA_KEY);
});
@@ -92,4 +95,19 @@ class ConfigImplTest {
assertEquals("Couldn't load required config file", exception.getMessage());
}
@Test
void testReset() throws ConfigurationException {
config.setConfigLocation("src/test/resources/testdata.properties");
config.loadConfig();
assertNotNull(config.getProperty(TESTDATA_KEY));
config.reset();
NoSuchElementException exception = assertThrows(NoSuchElementException.class, () -> {
config.getProperty(TESTDATA_KEY);
});
assertEquals("Config has not been loaded", exception.getMessage());
}
}