Added and rewrote tests

This commit is contained in:
Marvin Scham
2023-06-28 04:31:26 +02:00
parent f32b7fc1c7
commit 44c9e0d9e4
19 changed files with 1145 additions and 18 deletions

View File

@@ -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);
}
}