Added and rewrote tests
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user