Files
EasyDrop/src/test/java/de/rwu/easydrop/service/processing/TransactionHandlerTest.java
2023-06-28 04:31:26 +02:00

51 lines
1.7 KiB
Java

package de.rwu.easydrop.service.processing;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import org.junit.jupiter.api.Test;
import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import de.rwu.easydrop.api.dto.TransactionDTO;
import de.rwu.easydrop.data.connector.TransactionPersistenceInterface;
import de.rwu.easydrop.model.Offer;
import de.rwu.easydrop.model.Product;
import de.rwu.easydrop.model.Transaction;
import de.rwu.easydrop.service.mapping.TransactionMapper;
class TransactionHandlerTest {
@Mock
private TransactionPersistenceInterface mockPersistence;
public TransactionHandlerTest() {
MockitoAnnotations.openMocks(this);
}
@Test
void turnOfferToTransaction_ValidOffer_TransactionCreatedAndWrittenToPersistence() {
// Arrange
Offer offer = new Offer();
Product product = new Product();
offer.setSourceProduct(product);
offer.setTargetProduct(product);
TransactionHandler handler = new TransactionHandler(mockPersistence);
// Act
handler.turnOfferToTransaction(offer);
// Assert
ArgumentCaptor<TransactionDTO> transactionDtoCaptor = ArgumentCaptor.forClass(TransactionDTO.class);
verify(mockPersistence, times(1)).writeTX(transactionDtoCaptor.capture());
TransactionDTO capturedTransactionDto = transactionDtoCaptor.getValue();
Transaction capturedTransaction = TransactionMapper.mapTXFromDTO(capturedTransactionDto);
assertEquals(offer.getOfferId(), capturedTransaction.getOfferId());
}
}