/// <inheritdoc cref="VerifyCode(byte[], string, TotpSettings)"/> public static bool VerifyCode(string?key, string?code, TotpSettings settings) => !string.IsNullOrEmpty(key) && !string.IsNullOrEmpty(code) && Base32F.FromBase32String(key).Switch( some: k => VerifyCode(k, code, settings), none: false );
public void Input_String_Too_Short_Returns_None_With_InputStringNotLongEnoughMsg(string input) { // Arrange // Act var result = Base32F.FromBase32String(input); // Assert result.AssertNone().AssertType <InputStringNotLongEnoughMsg>(); }
public void Empty_String_Returns_Empty_Byte_Array() { // Arrange // Act var result = Base32F.FromBase32String(string.Empty).UnsafeUnwrap(); // Assert Assert.Empty(result); }
public void Returns_Byte_Array_Of_Correct_Length() { // Arrange var str = "5C5NHZDVBT4RWPBK"; // Act var result = Base32F.FromBase32String(str).UnsafeUnwrap(); // Assert Assert.Equal(10, result.Length); }
public void Empty_Byte_Array_Returns_Empty_String() { // Arrange var bytes = Array.Empty <byte>(); // Act var result = Base32F.ToBase32String(bytes); // Assert Assert.Equal(string.Empty, result); }
public void Returns_String_Of_Correct_Length() { // Arrange var bytes = Rnd.ByteF.Get(10); // Act var result = Base32F.ToBase32String(bytes); // Assert Assert.Equal(16, result.Length); }
public void Works_Both_Ways() { // Arrange var expected = Base32F.FromBase32String("5C5NHZDVBT4RWPBK").UnsafeUnwrap(); var str = Base32F.ToBase32String(expected); // Act var result = Base32F.FromBase32String(str).UnsafeUnwrap(); // Assert Assert.Equal(expected, result); }
public void Invalid_Character_In_Input_String_Returns_None_With_CharacterNotInBase32AlphabetMsg(char input) { // Arrange var str = Rnd.Str + input; // Act var result = Base32F.FromBase32String(str); // Assert var none = result.AssertNone().AssertType <CharacterNotInBase32AlphabetMsg>(); Assert.Equal(input, none.Value); }