From 9f09a4c0487a0c06b2e47525289c7c4126d7baac Mon Sep 17 00:00:00 2001 From: TheArrayser Date: Fri, 30 Jun 2023 23:09:36 +0200 Subject: [PATCH] Tests run now :party: --- src/test/java/test/OTPTest.java | 140 +++++++++++++++++--------------- 1 file changed, 75 insertions(+), 65 deletions(-) diff --git a/src/test/java/test/OTPTest.java b/src/test/java/test/OTPTest.java index 51e8e8a..4ddd8fa 100644 --- a/src/test/java/test/OTPTest.java +++ b/src/test/java/test/OTPTest.java @@ -15,6 +15,7 @@ import org.junit.jupiter.api.Test; import com.cringe_studios.cringe_authenticator_library.OTP; import com.cringe_studios.cringe_authenticator_library.OTPAlgorithm; +import com.cringe_studios.cringe_authenticator_library.OTPException; import com.cringe_studios.cringe_authenticator_library.OTPType; import com.cringe_studios.cringe_authenticator_library.impl.Base32; import com.cringe_studios.cringe_authenticator_library.impl.TOTP; @@ -37,38 +38,43 @@ public class OTPTest { } for (int i = 0; i < 10; i++) { - OTP testOTP1 = OTPType.HOTP.instance(base32secret, OTPAlgorithm.SHA1, 6, i, 30, false); - String calculatedPin = testOTP1.getPin(); - - if(VERBOSE) { - System.out.println(calculatedPin + " == " + expectedValues[i]); - } - - assertEquals(calculatedPin, expectedValues[i]); + int tempi = i; + assertDoesNotThrow(() ->{ + OTP testOTP1 = OTPType.HOTP.instance(base32secret, OTPAlgorithm.SHA1, 6, tempi, 30, false); + String calculatedPin = testOTP1.getPin(); + + if(VERBOSE) { + System.out.println(calculatedPin + " == " + expectedValues[tempi]); + } + + assertEquals(calculatedPin, expectedValues[tempi]); + }); } } @Test public void lengthTest() { - String secret = "1"; - String base32secret = Base32.encode(hexStr2Bytes(secret)); - OTP testOTP1 = OTP.createNewOTP(OTPType.HOTP, base32secret, OTPAlgorithm.SHA1, 1, 0, 0, false); - assertDoesNotThrow(() -> testOTP1.getPin()); - - secret = "100"; - base32secret = Base32.encode(hexStr2Bytes(secret)); - OTP testOTP2 = OTP.createNewOTP(OTPType.HOTP, base32secret, OTPAlgorithm.SHA256, 0, 0, 0, false); - assertDoesNotThrow(() -> testOTP2.getPin()); - - OTP testOTP3 = OTP.createNewOTP(OTPType.HOTP, base32secret, OTPAlgorithm.SHA512, 50, 0, 0, false); - assertDoesNotThrow(() -> testOTP3.getPin()); - - OTP testOTP4 = OTP.createNewOTP(OTPType.HOTP, base32secret, OTPAlgorithm.SHA512, 10, 0, 0, false); - assertDoesNotThrow(() -> testOTP4.getPin()); - assertDoesNotThrow(() -> { - OTP testOTP5 = OTP.createNewOTP(OTPType.HOTP, "", OTPAlgorithm.SHA1, 8, 0, 0, false); - assertNotNull(testOTP5); + String secret = "1"; + String base32secret = Base32.encode(hexStr2Bytes(secret)); + OTP testOTP1 = OTP.createNewOTP(OTPType.HOTP, base32secret, OTPAlgorithm.SHA1, 1, 0, 0, false); + assertDoesNotThrow(() -> testOTP1.getPin()); + + secret = "100"; + base32secret = Base32.encode(hexStr2Bytes(secret)); + OTP testOTP2 = OTP.createNewOTP(OTPType.HOTP, base32secret, OTPAlgorithm.SHA256, 0, 0, 0, false); + assertDoesNotThrow(() -> testOTP2.getPin()); + + OTP testOTP3 = OTP.createNewOTP(OTPType.HOTP, base32secret, OTPAlgorithm.SHA512, 50, 0, 0, false); + assertDoesNotThrow(() -> testOTP3.getPin()); + + OTP testOTP4 = OTP.createNewOTP(OTPType.HOTP, base32secret, OTPAlgorithm.SHA512, 10, 0, 0, false); + assertDoesNotThrow(() -> testOTP4.getPin()); + + assertThrows(OTPException.class, () -> { + OTP testOTP5 = OTP.createNewOTP(OTPType.HOTP, "", OTPAlgorithm.SHA1, 8, 0, 0, false); + assertNotNull(testOTP5); + }); }); } @@ -119,49 +125,53 @@ public class OTPTest { String seed64 = Base32.encode(hexStr2Bytes(base16seed64)); long testTime[] = { 59L, 1111111109L, 1111111111L, 1234567890L, 2000000000L, 20000000000L }; - - TOTP testOTP1 = (TOTP) OTPType.TOTP.instance(seed, OTPAlgorithm.SHA1, 8, 0, 30, false); - TOTP testOTP256 = (TOTP) OTPType.TOTP.instance(seed32, OTPAlgorithm.SHA256, 8, 0, 30, false); - TOTP testOTP512 = (TOTP) OTPType.TOTP.instance(seed64, OTPAlgorithm.SHA512, 8, 0, 30, false); - - long X = 30; - - String steps = "0"; - DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - df.setTimeZone(TimeZone.getTimeZone("UTC")); - - try { - if(VERBOSE) { - System.out.println("+---------------+-----------------------+--------+--------+"); - System.out.println("| Time(sec) | Time (UTC format) | TOTP | Mode |"); - System.out.println("+---------------+-----------------------+--------+--------+"); - } - - for (int i = 0; i < testTime.length; i++) { - String fmtTime = String.format("%1$-11s", testTime[i]); - String utcTime = df.format(new Date(testTime[i] * 1000)); - - String sha1Pin = testOTP1.getPinAt(testTime[i]); - String sha256Pin = testOTP256.getPinAt(testTime[i]); - String sha512Pin = testOTP512.getPinAt(testTime[i]); - - - - + + + assertDoesNotThrow(() -> { + + TOTP testOTP1 = (TOTP) OTPType.TOTP.instance(seed, OTPAlgorithm.SHA1, 8, 0, 30, false); + TOTP testOTP256 = (TOTP) OTPType.TOTP.instance(seed32, OTPAlgorithm.SHA256, 8, 0, 30, false); + TOTP testOTP512 = (TOTP) OTPType.TOTP.instance(seed64, OTPAlgorithm.SHA512, 8, 0, 30, false); + + long X = 30; + + String steps = "0"; + DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + df.setTimeZone(TimeZone.getTimeZone("UTC")); + + try { if(VERBOSE) { - System.out.println("| " + fmtTime + " | " + utcTime + " |" + sha1Pin + "| SHA1 |"); - System.out.println("| " + fmtTime + " | " + utcTime + " |" + sha256Pin + "| SHA256 |"); - System.out.println("| " + fmtTime + " | " + utcTime + " |" + sha512Pin + "| SHA512 |"); + System.out.println("+---------------+-----------------------+--------+--------+"); + System.out.println("| Time(sec) | Time (UTC format) | TOTP | Mode |"); System.out.println("+---------------+-----------------------+--------+--------+"); } - - assertEquals(expectedValues[i * 3 + 0], sha1Pin); - assertEquals(expectedValues[i * 3 + 1], sha256Pin); - assertEquals(expectedValues[i * 3 + 2], sha512Pin); + + for (int i = 0; i < testTime.length; i++) { + String fmtTime = String.format("%1$-11s", testTime[i]); + String utcTime = df.format(new Date(testTime[i] * 1000)); + + String sha1Pin = testOTP1.getPinAt(testTime[i]); + String sha256Pin = testOTP256.getPinAt(testTime[i]); + String sha512Pin = testOTP512.getPinAt(testTime[i]); + + + + + if(VERBOSE) { + System.out.println("| " + fmtTime + " | " + utcTime + " |" + sha1Pin + "| SHA1 |"); + System.out.println("| " + fmtTime + " | " + utcTime + " |" + sha256Pin + "| SHA256 |"); + System.out.println("| " + fmtTime + " | " + utcTime + " |" + sha512Pin + "| SHA512 |"); + System.out.println("+---------------+-----------------------+--------+--------+"); + } + + assertEquals(expectedValues[i * 3 + 0], sha1Pin); + assertEquals(expectedValues[i * 3 + 1], sha256Pin); + assertEquals(expectedValues[i * 3 + 2], sha512Pin); + } + } catch (final Exception e) { + e.printStackTrace(); } - } catch (final Exception e) { - e.printStackTrace(); - } + }); } // @org.junit.jupiter.api.Test