51 lines
1.7 KiB
Java
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());
|
|
}
|
|
}
|