File size: 1,648 Bytes
9438a57 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class IbanValidatorTest {
static final String VALID = "TR330006100519786457841326";
@Test void validIban() { assertTrue(IbanValidator.isValid(VALID)); }
@Test void validWithSpacesAndLowercase() { assertTrue(IbanValidator.isValid("tr33 0006 1005 1978 6457 8413 26")); }
@Test void secondValidIban() { assertTrue(IbanValidator.isValid("TR650001000000000000123456")); }
@Test void wrongCheckDigits() { assertFalse(IbanValidator.isValid("TR340006100519786457841326")); }
@Test void wrongLength() { assertFalse(IbanValidator.isValid("TR33000610051978645784132")); }
@Test void wrongCountry() { assertFalse(IbanValidator.isValid("DE330006100519786457841326")); }
@Test void nonDigitCharacter() { assertFalse(IbanValidator.isValid("TR33000610051978645784132X")); }
@Test void reservedDigitMustBeZero() {
// mod-97 açısından geçerli ama ayrılmış hane 0 değil
assertFalse(IbanValidator.isValid("TR080006110519786457841326"));
}
@Test void nullRejected() { assertThrows(IllegalArgumentException.class, () -> IbanValidator.isValid(null)); }
@Test void bankCode() { assertEquals("00061", IbanValidator.bankCode(VALID)); }
@Test void bankCodeOfInvalidThrows() {
assertThrows(IllegalArgumentException.class, () -> IbanValidator.bankCode("TR340006100519786457841326"));
}
@Test void format() { assertEquals("TR33 0006 1005 1978 6457 8413 26", IbanValidator.format(VALID)); }
@Test void mod97OfKnownValue() { assertEquals(1, IbanValidator.mod97("0006100519786457841326TR33")); }
}
|