#11 Updated and moved tests

This commit is contained in:
Shan Ruhhammer
2023-06-25 03:16:29 +02:00
parent e593290f3c
commit cba6e46de7
2 changed files with 91 additions and 56 deletions

View File

@@ -1,56 +0,0 @@
package de.rwu.easydrop.api;
import java.net.MalformedURLException;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
public class AmazonPriceFetcherTest {
private static final String BASE_URL = "https://api.amazon.com";
private static final String API_KEY = "your_api_key";
private static final String PRODUCT_ID = "12345";
private AmazonPriceFetcher priceFetcher;
@BeforeEach
public void setup() {
priceFetcher = new AmazonPriceFetcher(BASE_URL, API_KEY);
}
@Test
public void testGetProductPrice_ValidProductId_ReturnsPrice() throws MalformedURLException {
// Arrange
double expectedPrice = -1.0;
// Act
double actualPrice = priceFetcher.getProductPrice(PRODUCT_ID);
// Assert
Assertions.assertEquals(expectedPrice, actualPrice);
}
@Test
public void testGetProductPrice_InvalidProductId_ReturnsNegativePrice() throws MalformedURLException {
// Arrange
double expectedPrice = -1.0;
// Act
double actualPrice = priceFetcher.getProductPrice("invalid_product_id");
// Assert
Assertions.assertEquals(expectedPrice, actualPrice);
}
@Test
public void testGetProductPrice_ExceptionThrown_ReturnsNegativePrice() throws MalformedURLException {
// Arrange
double expectedPrice = -1.0;
// Act
double actualPrice = priceFetcher.getProductPrice("exception_thrown");
// Assert
Assertions.assertEquals(expectedPrice, actualPrice);
}
}

View File

@@ -0,0 +1,91 @@
package de.rwu.easydrop.service.processing;
import java.util.ArrayList;
import java.util.List;
import org.junit.jupiter.api.Assertions;
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 testCreateOrders_ValidCatalogues_OrdersCreated() {
// Arrange
List<ProductCatalogue> catalogues = createSampleCatalogues();
// Act
OrderManager.createOrders(catalogues);
// No assertions, just checking if the orders are created successfully
}
@Test
void testGetHighestMarginProducts_ValidCatalogue_CheapestAndMostExpensiveProductsReturned() {
// Arrange
ProductCatalogue catalogue = createSampleCatalogue();
// Act
ProductPair pair = OrderManager.getHighestMarginProducts(catalogue);
// Assert
Assertions.assertNotNull(pair);
Assertions.assertNotNull(pair.getProduct1());
Assertions.assertNotNull(pair.getProduct2());
Assertions.assertEquals("Product1", pair.getProduct1().getProductId());
Assertions.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
Assertions.assertThrows(InvalidCatalogueException.class,
() -> OrderManager.getHighestMarginProducts(catalogue));
}
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(2.34);
catalogue.addProduct(product2);
Product product3 = new Product();
product3.setProductId("Product3");
product3.setCurrentPrice(4.56);
catalogue.addProduct(product3);
return catalogue;
}
}