Allow filtering Java test cases.
This commit is contained in:
parent
073ef4f439
commit
5501f1f97d
@ -18,6 +18,8 @@
|
|||||||
|
|
||||||
package com.lyndir.masterpassword;
|
package com.lyndir.masterpassword;
|
||||||
|
|
||||||
|
import static com.lyndir.lhunath.opal.system.util.StringUtils.strf;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||||
import com.fasterxml.jackson.annotation.JsonValue;
|
import com.fasterxml.jackson.annotation.JsonValue;
|
||||||
import com.google.common.primitives.UnsignedInteger;
|
import com.google.common.primitives.UnsignedInteger;
|
||||||
@ -190,6 +192,12 @@ public abstract class MPAlgorithm {
|
|||||||
|
|
||||||
protected abstract byte[] toID(byte[] bytes);
|
protected abstract byte[] toID(byte[] bytes);
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
|
||||||
|
return strf( "%d, %s", version().toInt(), getClass().getSimpleName() );
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The algorithm iterations.
|
* The algorithm iterations.
|
||||||
*/
|
*/
|
||||||
|
@ -25,7 +25,8 @@ import static com.lyndir.lhunath.opal.system.util.StringUtils.*;
|
|||||||
import com.google.common.primitives.UnsignedInteger;
|
import com.google.common.primitives.UnsignedInteger;
|
||||||
import com.lyndir.lhunath.opal.system.logging.Logger;
|
import com.lyndir.lhunath.opal.system.logging.Logger;
|
||||||
import com.lyndir.lhunath.opal.system.util.NNSupplier;
|
import com.lyndir.lhunath.opal.system.util.NNSupplier;
|
||||||
import java.util.List;
|
import java.util.*;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import javax.xml.bind.annotation.XmlTransient;
|
import javax.xml.bind.annotation.XmlTransient;
|
||||||
@ -41,11 +42,21 @@ public class MPTests {
|
|||||||
@SuppressWarnings("UnusedDeclaration")
|
@SuppressWarnings("UnusedDeclaration")
|
||||||
private static final Logger logger = Logger.get( MPTests.class );
|
private static final Logger logger = Logger.get( MPTests.class );
|
||||||
|
|
||||||
|
private final Set<String> filters = new HashSet<>();
|
||||||
|
|
||||||
List<Case> cases;
|
List<Case> cases;
|
||||||
|
|
||||||
@Nonnull
|
@Nonnull
|
||||||
public List<Case> getCases() {
|
public List<Case> getCases() {
|
||||||
|
if (filters.isEmpty())
|
||||||
return checkNotNull( cases );
|
return checkNotNull( cases );
|
||||||
|
|
||||||
|
return checkNotNull( cases ).stream().filter( testCase -> {
|
||||||
|
for (final String filter : filters)
|
||||||
|
if (testCase.getIdentifier().startsWith( filter ))
|
||||||
|
return true;
|
||||||
|
return false;
|
||||||
|
} ).collect( Collectors.toList() );
|
||||||
}
|
}
|
||||||
|
|
||||||
public Case getCase(final String identifier) {
|
public Case getCase(final String identifier) {
|
||||||
@ -65,6 +76,10 @@ public class MPTests {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean addFilters(final String... filters) {
|
||||||
|
return this.filters.addAll( Arrays.asList( filters ) );
|
||||||
|
}
|
||||||
|
|
||||||
public static class Case {
|
public static class Case {
|
||||||
|
|
||||||
String identifier;
|
String identifier;
|
||||||
|
@ -39,6 +39,7 @@ public class MPMasterKeyTest {
|
|||||||
throws Exception {
|
throws Exception {
|
||||||
|
|
||||||
testSuite = new MPTestSuite();
|
testSuite = new MPTestSuite();
|
||||||
|
//testSuite.getTests().addFilters( "v0" );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -53,20 +54,20 @@ public class MPMasterKeyTest {
|
|||||||
assertEquals(
|
assertEquals(
|
||||||
CodeUtils.encodeHex( masterKey.getKeyID( testCase.getAlgorithm() ) ),
|
CodeUtils.encodeHex( masterKey.getKeyID( testCase.getAlgorithm() ) ),
|
||||||
testCase.getKeyID(),
|
testCase.getKeyID(),
|
||||||
"[testMasterKey] keyID mismatch: " + testCase );
|
"[testMasterKey] keyID mismatch for test case: " + testCase );
|
||||||
|
|
||||||
// Test invalidation
|
// Test invalidation
|
||||||
masterKey.invalidate();
|
masterKey.invalidate();
|
||||||
try {
|
try {
|
||||||
masterKey.getKeyID( testCase.getAlgorithm() );
|
masterKey.getKeyID( testCase.getAlgorithm() );
|
||||||
fail( "[testMasterKey] invalidate ineffective: " + testCase );
|
fail( "[testMasterKey] invalidate ineffective for test case: " + testCase );
|
||||||
}
|
}
|
||||||
catch (final MPKeyUnavailableException ignored) {
|
catch (final MPKeyUnavailableException ignored) {
|
||||||
}
|
}
|
||||||
assertNotEquals(
|
assertNotEquals(
|
||||||
masterPassword,
|
masterPassword,
|
||||||
testCase.getMasterPassword().toCharArray(),
|
testCase.getMasterPassword().toCharArray(),
|
||||||
"[testMasterKey] masterPassword not wiped: " + testCase );
|
"[testMasterKey] masterPassword not wiped for test case: " + testCase );
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
} );
|
} );
|
||||||
@ -87,7 +88,7 @@ public class MPMasterKeyTest {
|
|||||||
testCase.getKeyContext(), testCase.getResultType(),
|
testCase.getKeyContext(), testCase.getResultType(),
|
||||||
null ),
|
null ),
|
||||||
testCase.getResult(),
|
testCase.getResult(),
|
||||||
"[testSiteResult] result mismatch: " + testCase );
|
"[testSiteResult] result mismatch for test case: " + testCase );
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
} );
|
} );
|
||||||
@ -115,7 +116,7 @@ public class MPMasterKeyTest {
|
|||||||
assertEquals(
|
assertEquals(
|
||||||
result,
|
result,
|
||||||
password,
|
password,
|
||||||
"[testSiteState] state mismatch: " + testCase );
|
"[testSiteState] state mismatch for test case: " + testCase );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user