Added invalid type test

This commit is contained in:
Xavi Aracil 2022-11-25 14:27:44 +01:00
parent 5cb232ea5b
commit 521cce5dd4
4 changed files with 43 additions and 13 deletions

View File

@ -33,8 +33,7 @@ public class TypePropertyProbe extends PropertyProbe {
List<String> allowedValues = expected.getAllowedTypeValues(); List<String> allowedValues = expected.getAllowedTypeValues();
if (allowedValues.isEmpty()) { if (allowedValues.isEmpty()) {
// TODO implement return fatal("The type property is invalid", ctx);
throw new IllegalStateException();
} }
if (!values.stream().anyMatch(v -> allowedValues.contains(v))) { if (!values.stream().anyMatch(v -> allowedValues.contains(v))) {
return fatal(formatMessage(values), ctx); return fatal(formatMessage(values), ctx);

View File

@ -17,6 +17,7 @@ import org.oneedtech.inspect.core.Inspector.Behavior;
import org.oneedtech.inspect.core.report.Report; import org.oneedtech.inspect.core.report.Report;
import org.oneedtech.inspect.test.PrintHelper; import org.oneedtech.inspect.test.PrintHelper;
import org.oneedtech.inspect.vc.probe.ContextPropertyProbe; import org.oneedtech.inspect.vc.probe.ContextPropertyProbe;
import org.oneedtech.inspect.vc.probe.TypePropertyProbe;
import org.oneedtech.inspect.vc.util.TestOB20Inspector.TestBuilder; import org.oneedtech.inspect.vc.util.TestOB20Inspector.TestBuilder;
public class OB20Tests { public class OB20Tests {
@ -43,17 +44,6 @@ public class OB20Tests {
}); });
} }
@Test
void testSimpleJsonInvalidContext() {
assertDoesNotThrow(()->{
Report report = validator.run(Samples.OB20.JSON.SIMPLE_ASSERTION_INVALID_CONTEXT_JSON.asFileResource());
if(verbose) PrintHelper.print(report, true);
assertInvalid(report);
assertFatalCount(report, 1);
assertHasProbeID(report, ContextPropertyProbe.ID, true);
});
}
@Test @Test
void testSimplePNGPlainValid() { void testSimplePNGPlainValid() {
assertDoesNotThrow(()->{ assertDoesNotThrow(()->{
@ -72,6 +62,28 @@ public class OB20Tests {
}); });
} }
@Test
void testSimpleJsonInvalidContext() {
assertDoesNotThrow(()->{
Report report = validator.run(Samples.OB20.JSON.SIMPLE_ASSERTION_INVALID_CONTEXT_JSON.asFileResource());
if(verbose) PrintHelper.print(report, true);
assertInvalid(report);
assertFatalCount(report, 1);
assertHasProbeID(report, ContextPropertyProbe.ID, true);
});
}
@Test
void testSimpleJsonInvalidType() {
assertDoesNotThrow(()->{
Report report = validator.run(Samples.OB20.JSON.SIMPLE_ASSERTION_INVALID_TYPE_JSON.asFileResource());
if(verbose) PrintHelper.print(report, true);
assertInvalid(report);
assertFatalCount(report, 1);
assertHasProbeID(report, TypePropertyProbe.ID, true);
});
}
@Nested @Nested

View File

@ -46,6 +46,7 @@ public class Samples {
// original: test_verify: test_verify_function // original: test_verify: test_verify_function
public final static Sample SIMPLE_ASSERTION_JSON = new Sample("ob20/basic-assertion.json", true); public final static Sample SIMPLE_ASSERTION_JSON = new Sample("ob20/basic-assertion.json", true);
public final static Sample SIMPLE_ASSERTION_INVALID_CONTEXT_JSON = new Sample("ob20/basic-assertion-invalid-context.json", true); public final static Sample SIMPLE_ASSERTION_INVALID_CONTEXT_JSON = new Sample("ob20/basic-assertion-invalid-context.json", true);
public final static Sample SIMPLE_ASSERTION_INVALID_TYPE_JSON = new Sample("ob20/basic-assertion-invalid-type.json", true);
// original: test_graph: test_verify_with_redirection // original: test_graph: test_verify_with_redirection
public final static Sample WARNING_REDIRECTION_ASSERTION_JSON = new Sample("ob20/warning-with-redirection.json", true); public final static Sample WARNING_REDIRECTION_ASSERTION_JSON = new Sample("ob20/warning-with-redirection.json", true);
// original: test_validation: test_can_input_badgeclass // original: test_validation: test_can_input_badgeclass

View File

@ -0,0 +1,18 @@
{
"@context": "https://w3id.org/openbadges/v2",
"type": "OtherAssertion",
"id": "https://example.org/beths-robotics-badge.json",
"recipient": {
"type": "email",
"hashed": true,
"salt": "deadsea",
"identity": "sha256$ecf5409f3f4b91ab60cc5ef4c02aef7032354375e70cf4d8e43f6a1d29891942"
},
"image": "https://example.org/beths-robot-badge.png",
"evidence": "https://example.org/beths-robot-work.html",
"issuedOn": "2016-12-31T23:59:59Z",
"badge": "https://example.org/robotics-badge.json",
"verification": {
"type": "hosted"
}
}