optionally allow extended key validation in RecoveryKeyFactory#validateRecoveryKey

This commit is contained in:
Sebastian Stenzel
2022-04-05 09:19:58 +02:00
parent 9ed7438f05
commit 78a50548ab
2 changed files with 40 additions and 3 deletions

View File

@@ -7,10 +7,13 @@ import org.cryptomator.cryptolib.common.MasterkeyFileAccess;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;
import org.mockito.Mockito;
import java.io.IOException;
import java.nio.file.Path;
import java.util.function.Predicate;
public class RecoveryKeyFactoryTest {
@@ -75,4 +78,19 @@ public class RecoveryKeyFactoryTest {
Assertions.assertTrue(result);
}
@ParameterizedTest(name = "success = {0}")
@DisplayName("validateRecoveryKey() with extended validation")
@ValueSource(booleans = {true, false})
public void testValidateValidateRecoveryKeyWithValidKey(boolean extendedValidationResult) {
Predicate<byte[]> validator = Mockito.mock(Predicate.class);
Mockito.doReturn(extendedValidationResult).when(validator).test(Mockito.any());
boolean result = inTest.validateRecoveryKey("""
pathway lift abuse plenty export texture gentleman landscape beyond ceiling around leaf cafe charity \
border breakdown victory surely computer cat linger restrict infer crowd live computer true written amazed \
investor boot depth left theory snow whereby terminal weekly reject happiness circuit partial cup ad \
""", validator);
Mockito.verify(validator).test(Mockito.any());
Assertions.assertEquals(extendedValidationResult, result);
}
}