test: CurrencyServiceTest completed?
This commit is contained in:
parent
6d8a2093b9
commit
c87bcc8b54
6 changed files with 128 additions and 9 deletions
|
@ -3,9 +3,11 @@ package eu.ztsh.wymiana.service;
|
|||
import eu.ztsh.wymiana.EntityCreator;
|
||||
import eu.ztsh.wymiana.RepositoryBasedTest;
|
||||
import eu.ztsh.wymiana.data.repository.UserRepository;
|
||||
import eu.ztsh.wymiana.exception.ExchangeFailedException;
|
||||
import eu.ztsh.wymiana.exception.InsufficientFundsException;
|
||||
import eu.ztsh.wymiana.validation.InstanceValidator;
|
||||
import eu.ztsh.wymiana.validation.ValidationFailedException;
|
||||
import jakarta.transaction.Transactional;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.params.ParameterizedTest;
|
||||
|
@ -32,8 +34,11 @@ class CurrencyServiceTest extends RepositoryBasedTest {
|
|||
currencyService = new CurrencyService(new UserService(userRepository, instanceValidator), nbp, instanceValidator);
|
||||
}
|
||||
|
||||
@Transactional
|
||||
@Test
|
||||
void toSellSuccessTest() {
|
||||
void plnToUsdToSellSuccessTest() {
|
||||
var entity = EntityCreator.user().build();
|
||||
userRepository.save(entity);
|
||||
var result = currencyService.exchange(EntityCreator.exchangeRequest()
|
||||
.from(PLN_SYMBOL)
|
||||
.to(USD_SYMBOL)
|
||||
|
@ -45,8 +50,11 @@ class CurrencyServiceTest extends RepositoryBasedTest {
|
|||
expect(expected);
|
||||
}
|
||||
|
||||
@Transactional
|
||||
@Test
|
||||
void toBuySuccessTest() {
|
||||
void plnToUsdToBuySuccessTest() {
|
||||
var entity = EntityCreator.user().build();
|
||||
userRepository.save(entity);
|
||||
var result = currencyService.exchange(EntityCreator.exchangeRequest()
|
||||
.from(PLN_SYMBOL)
|
||||
.to(USD_SYMBOL)
|
||||
|
@ -57,6 +65,37 @@ class CurrencyServiceTest extends RepositoryBasedTest {
|
|||
var expected = EntityCreator.user().pln(0).usd(USD_BUY).build();
|
||||
expect(expected);
|
||||
}
|
||||
@Transactional
|
||||
@Test
|
||||
void usdToPlnToSellSuccessTest() {
|
||||
var entity = EntityCreator.user().build();
|
||||
userRepository.save(entity);
|
||||
var result = currencyService.exchange(EntityCreator.exchangeRequest()
|
||||
.from(USD_SYMBOL)
|
||||
.to(PLN_SYMBOL)
|
||||
.toSell(USD_SELL)
|
||||
.build());
|
||||
assertThat(result.currencies())
|
||||
.matches(map -> map.get(PLN_SYMBOL).amount() == PLN && map.get(USD_SYMBOL).amount() == 0);
|
||||
var expected = EntityCreator.user().pln(PLN).usd(0).build();
|
||||
expect(expected);
|
||||
}
|
||||
|
||||
@Transactional
|
||||
@Test
|
||||
void usdToPlnToBuySuccessTest() {
|
||||
var entity = EntityCreator.user().build();
|
||||
userRepository.save(entity);
|
||||
var result = currencyService.exchange(EntityCreator.exchangeRequest()
|
||||
.from(USD_SYMBOL)
|
||||
.to(PLN_SYMBOL)
|
||||
.toBuy(PLN)
|
||||
.build());
|
||||
assertThat(result.currencies())
|
||||
.matches(map -> map.get(PLN_SYMBOL).amount() == PLN && map.get(USD_SYMBOL).amount() == 0);
|
||||
var expected = EntityCreator.user().pln(PLN).usd(0).build();
|
||||
expect(expected);
|
||||
}
|
||||
|
||||
@Test
|
||||
void insufficientFundsTest() {
|
||||
|
@ -80,7 +119,19 @@ class CurrencyServiceTest extends RepositoryBasedTest {
|
|||
.toSell(USD_SELL)
|
||||
.build();
|
||||
assertThatThrownBy(() -> currencyService.exchange(entity))
|
||||
.isInstanceOf(ValidationFailedException.class);
|
||||
.isInstanceOf(ValidationFailedException.class)
|
||||
.hasMessageContaining("PESEL");
|
||||
}
|
||||
|
||||
@Test
|
||||
void notExistingUserTest() {
|
||||
var entity = EntityCreator.exchangeRequest()
|
||||
.from(PLN_SYMBOL)
|
||||
.to(USD_SYMBOL)
|
||||
.toSell(USD_SELL)
|
||||
.build();
|
||||
assertThatThrownBy(() -> currencyService.exchange(entity))
|
||||
.isInstanceOf(ExchangeFailedException.class);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -91,7 +142,8 @@ class CurrencyServiceTest extends RepositoryBasedTest {
|
|||
.toSell(USD_SELL)
|
||||
.build();
|
||||
assertThatThrownBy(() -> currencyService.exchange(entity))
|
||||
.isInstanceOf(ValidationFailedException.class);
|
||||
.isInstanceOf(ValidationFailedException.class)
|
||||
.hasMessageContaining("null");
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -102,7 +154,8 @@ class CurrencyServiceTest extends RepositoryBasedTest {
|
|||
.toSell(USD_SELL)
|
||||
.build();
|
||||
assertThatThrownBy(() -> currencyService.exchange(entity))
|
||||
.isInstanceOf(ValidationFailedException.class);
|
||||
.isInstanceOf(ValidationFailedException.class)
|
||||
.hasMessageContaining("null");
|
||||
}
|
||||
|
||||
private static Stream<String> invalidPeselTest() {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue