Skip to content

Commit

Permalink
[Bug #74] Fix broken assume type implementation - depending on old ve…
Browse files Browse the repository at this point in the history
…rsion of jb4jsonld.
  • Loading branch information
ledsoft committed Dec 16, 2024
1 parent ef1a910 commit 1f3b456
Show file tree
Hide file tree
Showing 2 changed files with 62 additions and 2 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>

<cz.cvut.kbss.jb4jsonld.version>0.14.3</cz.cvut.kbss.jb4jsonld.version>
<cz.cvut.kbss.jb4jsonld.version>0.15.0</cz.cvut.kbss.jb4jsonld.version>
<com.fasterxml.jackson.version>2.17.2</com.fasterxml.jackson.version>

<org.junit.jupiter.version>5.11.0</org.junit.jupiter.version>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,11 @@
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import cz.cvut.kbss.jopa.model.annotations.Id;
import cz.cvut.kbss.jopa.model.annotations.OWLAnnotationProperty;
import cz.cvut.kbss.jopa.model.annotations.OWLClass;
import cz.cvut.kbss.jopa.model.annotations.OWLDataProperty;
import cz.cvut.kbss.jopa.model.annotations.OWLObjectProperty;
import cz.cvut.kbss.jsonld.ConfigParam;
import cz.cvut.kbss.jsonld.deserialization.DeserializationContext;
import cz.cvut.kbss.jsonld.deserialization.ValueDeserializer;
Expand All @@ -41,6 +46,7 @@

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertInstanceOf;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
Expand Down Expand Up @@ -153,7 +159,7 @@ void deserializationSupportsPolymorphism() throws Exception {
jsonLdModule.configure(ConfigParam.SCAN_PACKAGE, "cz.cvut.kbss.jsonld.jackson.environment.model");
final String input = Environment.readData("objectWithSingularReference.json");
final Person result = objectMapper.readValue(input, Person.class);
assertTrue(result instanceof Employee);
assertInstanceOf(Employee.class, result);
}

@Test
Expand Down Expand Up @@ -181,4 +187,58 @@ public Boolean deserialize(JsonValue map, DeserializationContext<Boolean> deseri
return null;
}
}

@Test
void deserializationSupportsAssumedTargetType() throws Exception {
jsonLdModule.configure(ConfigParam.ASSUME_TARGET_TYPE, "true");
jsonLdModule.configure(ConfigParam.SCAN_PACKAGE, "cz.cvut.kbss.jsonld.jackson.deserialization");
final String input = """
{
"@context": "https://www.w3.org/ns/activitystreams",
"summary": "Martin created an image",
"type": "Create",
"actor": "http://www.test.example/martin",
"object": "http://example.org/foo.jpg"
}
""";
final Create result = objectMapper.readValue(input, Create.class);
assertNotNull(result);
assertEquals("http://www.test.example/martin", result.actor.id);
assertEquals("http://example.org/foo.jpg", result.object.id);
assertEquals("Martin created an image", result.summary);
}

@OWLClass(iri = "https://www.w3.org/ns/activitystreams#Create")
public static class Create {

@Id
private String id;

@OWLAnnotationProperty(iri = "https://www.w3.org/ns/activitystreams#object")
ActivityPubObject object;

@OWLObjectProperty(iri = "https://www.w3.org/ns/activitystreams#actor")
ObjectOrLink actor;

@OWLDataProperty(iri = "https://www.w3.org/ns/activitystreams#@context")
String context;

@OWLDataProperty(iri = "https://www.w3.org/ns/activitystreams#type")
String type;

@OWLDataProperty(iri = "https://www.w3.org/ns/activitystreams#summary")
String summary;
}

@OWLClass(iri = "https://www.w3.org/ns/activitystreams#Object")
public static class ActivityPubObject {
@Id
private String id;
}

@OWLClass(iri = "https://www.w3.org/ns/activitystreams#Link")
public static class ObjectOrLink {
@Id
private String id;
}
}

0 comments on commit 1f3b456

Please sign in to comment.