79 lines
1.8 KiB
Java
79 lines
1.8 KiB
Java
package de.rwu.easydrop.service.writer;
|
|
|
|
import static org.mockito.ArgumentMatchers.any;
|
|
|
|
import static org.junit.jupiter.api.Assertions.assertThrows;
|
|
|
|
import org.junit.jupiter.api.BeforeEach;
|
|
import org.junit.jupiter.api.Test;
|
|
import org.mockito.Mock;
|
|
import org.mockito.Mockito;
|
|
import org.mockito.MockitoAnnotations;
|
|
|
|
import de.rwu.easydrop.api.dto.OfferDTO;
|
|
import de.rwu.easydrop.data.connector.OfferPersistenceInterface;
|
|
import de.rwu.easydrop.model.Offer;
|
|
import de.rwu.easydrop.model.Product;
|
|
import de.rwu.easydrop.model.Webshop;
|
|
|
|
class OfferWriterTest {
|
|
|
|
@Mock
|
|
private OfferDTO offerDTO;
|
|
@Mock
|
|
private OfferPersistenceInterface persistence;
|
|
|
|
private OfferWriter offerWriter;
|
|
|
|
@BeforeEach
|
|
public void setup() {
|
|
MockitoAnnotations.openMocks(this);
|
|
offerWriter = new OfferWriter(persistence);
|
|
}
|
|
|
|
@Test
|
|
void writeOfferToPersistence_InvalidProduct_ThrowsException() {
|
|
//Arrange
|
|
Offer offer = new Offer();
|
|
offer.setOfferId("");
|
|
offer.setLastUpdate("");
|
|
|
|
//Act and Assert
|
|
assertThrows(Exception.class, () -> offerWriter.writeOfferToPersistence(offer));
|
|
}
|
|
|
|
@Test
|
|
void writeOfferToPresistence_ValidProduct_CallsSaveProduct(){
|
|
|
|
// Arrange
|
|
Product product = new Product();
|
|
product.setProductId("12345");
|
|
product.setDataOrigin(Webshop.AMAZON);
|
|
product.setCurrentPrice(9.99);
|
|
|
|
// Arrange
|
|
Offer offer = new Offer();
|
|
offer.setOfferId("26876");
|
|
offer.setLastUpdate("2022-12-25");
|
|
offer.setSourceProduct(product);
|
|
offer.setTargetProduct(product);
|
|
|
|
// Act
|
|
offerWriter.writeOfferToPersistence(offer);
|
|
|
|
// Assert
|
|
Mockito.verify(persistence).writeOffer(any(OfferDTO.class));
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|