diff --git a/src/main/java/eu/ztsh/wymiana/validation/ValidExchangeRequestValidator.java b/src/main/java/eu/ztsh/wymiana/validation/ValidExchangeRequestValidator.java index 43d4f1f..0895d92 100644 --- a/src/main/java/eu/ztsh/wymiana/validation/ValidExchangeRequestValidator.java +++ b/src/main/java/eu/ztsh/wymiana/validation/ValidExchangeRequestValidator.java @@ -4,12 +4,21 @@ import eu.ztsh.wymiana.web.model.CurrencyExchangeRequest; import jakarta.validation.ConstraintValidator; import jakarta.validation.ConstraintValidatorContext; -public class ValidExchangeRequestValidator implements ConstraintValidator { +public class ValidExchangeRequestValidator implements + ConstraintValidator { @Override - public boolean isValid(CurrencyExchangeRequest currencyExchangeRequest, + public boolean isValid(CurrencyExchangeRequest request, ConstraintValidatorContext constraintValidatorContext) { - return false; + if (request == null) { + return false; + } + + return !request.from().equals(request.to()) + && !((request.toBuy() == null && request.toSell() == null) + || (request.toBuy() != null && request.toSell() != null)) + && ((request.toBuy() != null && request.toBuy() >= 0) + || (request.toSell() != null && request.toSell() >= 0)); } } diff --git a/src/test/java/eu/ztsh/wymiana/validation/ValidExchangeRequestValidatorTest.java b/src/test/java/eu/ztsh/wymiana/validation/ValidExchangeRequestValidatorTest.java index 0e6ebb8..85161e6 100644 --- a/src/test/java/eu/ztsh/wymiana/validation/ValidExchangeRequestValidatorTest.java +++ b/src/test/java/eu/ztsh/wymiana/validation/ValidExchangeRequestValidatorTest.java @@ -2,8 +2,13 @@ package eu.ztsh.wymiana.validation; import eu.ztsh.wymiana.EntityCreator; import eu.ztsh.wymiana.web.model.CurrencyExchangeRequest; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; + +import java.util.stream.Stream; import static eu.ztsh.wymiana.EntityCreator.Constants.*; @@ -33,17 +38,13 @@ class ValidExchangeRequestValidatorTest extends ValidatorTest invalidPeselTest() { + return Stream.of("INVALID", PESEL.replace('6', '7')); + } + }