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

64 lines
1.9 KiB
Java

package de.rwu.easydrop.service.writer;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoInteractions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
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.exception.InvalidTransactionException;
import de.rwu.easydrop.model.Transaction;
import de.rwu.easydrop.service.mapping.TransactionMapper;
class TransactionWriterTest {
@Mock
private TransactionPersistenceInterface persistence;
private TransactionWriter writer;
@BeforeEach
void setUp() {
MockitoAnnotations.openMocks(this);
writer = new TransactionWriter(persistence);
}
@Test
void writeTXToPersistence_ValidTransaction_TransactionSaved() {
// Arrange
Transaction transaction = new Transaction();
transaction.setOfferId("123");
transaction.setVolume(123f);
transaction.setEarnings(12.23);
transaction.setTransactionTime("2020-01-01 00:00:00");
TransactionDTO expectedDTO = TransactionMapper.mapTXToDTO(transaction);
// Act
writer.writeTXToPersistence(transaction);
// Assert
verify(persistence).writeTX(expectedDTO);
}
@Test
void writeTXToPersistence_InvalidTransaction_ValidationExceptionThrown() {
// Arrange
Transaction transaction = new Transaction();
transaction.setVolume(123f);
transaction.setEarnings(12.23);
transaction.setTransactionTime("2020-01-01 00:00:00");
// Act & Assert
assertThrows(InvalidTransactionException.class, () -> writer.writeTXToPersistence(transaction));
// Verify that persistence.writeTX is not called
verifyNoInteractions(persistence);
}
}