diff --git a/webprotege-gwt-ui-server-core/src/main/java/edu/stanford/bmir/protege/web/server/form/FormControlValueDeserializer.java b/webprotege-gwt-ui-server-core/src/main/java/edu/stanford/bmir/protege/web/server/form/FormControlValueDeserializer.java index aa9b3e96f..682d8459d 100644 --- a/webprotege-gwt-ui-server-core/src/main/java/edu/stanford/bmir/protege/web/server/form/FormControlValueDeserializer.java +++ b/webprotege-gwt-ui-server-core/src/main/java/edu/stanford/bmir/protege/web/server/form/FormControlValueDeserializer.java @@ -56,19 +56,20 @@ else if(node.isObject()) { case "Class" : return PrimitiveFormControlData.get(df.getOWLClass(iri)); case "owl:ObjectProperty": - case "ObjectProperty": + case "ObjectProperty" : return PrimitiveFormControlData.get(df.getOWLObjectProperty(iri)); case "owl:DatatypeProperty" : case "DatatypeProperty" : + case "DataProperty" : return PrimitiveFormControlData.get(df.getOWLDataProperty(iri)); case "owl:AnnotationProperty": - case "AnnotationProperty": + case "AnnotationProperty" : return PrimitiveFormControlData.get(df.getOWLAnnotationProperty(iri)); case "rdfs:Datatype" : case "Datatype" : return PrimitiveFormControlData.get(df.getOWLDatatype(iri)); case "owl:NamedIndividual" : - case "NamedIndividual" : + case "NamedIndividual" : return PrimitiveFormControlData.get(df.getOWLNamedIndividual(iri)); } throw new JsonParseException(p, "Unrecognised entity type: " + type); diff --git a/webprotege-gwt-ui-server-core/src/test/java/edu/stanford/bmir/protege/web/server/form/FormControlValueDeserializer_TestCase.java b/webprotege-gwt-ui-server-core/src/test/java/edu/stanford/bmir/protege/web/server/form/FormControlValueDeserializer_TestCase.java index 12f978c78..f0b8d6339 100644 --- a/webprotege-gwt-ui-server-core/src/test/java/edu/stanford/bmir/protege/web/server/form/FormControlValueDeserializer_TestCase.java +++ b/webprotege-gwt-ui-server-core/src/test/java/edu/stanford/bmir/protege/web/server/form/FormControlValueDeserializer_TestCase.java @@ -1,7 +1,5 @@ package edu.stanford.bmir.protege.web.server.form; -import com.fasterxml.jackson.annotation.JsonTypeName; -import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import edu.stanford.bmir.protege.web.MockingUtils; import edu.stanford.bmir.protege.web.server.jackson.ObjectMapperProvider; @@ -10,13 +8,15 @@ import edu.stanford.bmir.protege.web.shared.form.data.LiteralFormControlData; import edu.stanford.bmir.protege.web.shared.form.data.PrimitiveFormControlData; import edu.stanford.bmir.protege.web.shared.match.JsonSerializationTestUtil; +import org.assertj.core.api.Assertions; import org.junit.Before; import org.junit.Test; +import org.semanticweb.owlapi.model.*; import java.io.IOException; +import java.io.StringReader; import static org.hamcrest.Matchers.is; -import static org.junit.Assert.assertThat; public class FormControlValueDeserializer_TestCase { @@ -47,33 +47,127 @@ public void shouldRoundTripOwlClass() throws IOException { JsonSerializationTestUtil.testSerialization(value, PrimitiveFormControlData.class); } + @Test + public void shouldDeserializeOwlClass() throws IOException { + var json = "{\"@type\":\"owl:Class\",\"iri\":\"http://stuff.com/I1\"}"; + var value = objectMapper.readValue(new StringReader(json), PrimitiveFormControlData.class); + Assertions.assertThat(value.asEntity()).containsInstanceOf(OWLClass.class); + } + + @Test + public void shouldDeserializeClass() throws IOException { + var json = "{\"@type\":\"Class\",\"iri\":\"http://stuff.com/I1\"}"; + var value = objectMapper.readValue(new StringReader(json), PrimitiveFormControlData.class); + Assertions.assertThat(value.asEntity()).containsInstanceOf(OWLClass.class); + } + @Test public void shouldRoundTripOwlObjectProperty() throws IOException { var value = EntityFormControlData.get(MockingUtils.mockOWLObjectProperty()); JsonSerializationTestUtil.testSerialization(value, PrimitiveFormControlData.class); } + + + @Test + public void shouldDeserializeOwlObjectProperty() throws IOException { + var json = "{\"@type\":\"owl:ObjectProperty\",\"iri\":\"http://stuff.com/I1\"}"; + var value = objectMapper.readValue(new StringReader(json), PrimitiveFormControlData.class); + Assertions.assertThat(value.asEntity()).containsInstanceOf(OWLObjectProperty.class); + } + + @Test + public void shouldDeserializeObjectProperty() throws IOException { + var json = "{\"@type\":\"ObjectProperty\",\"iri\":\"http://stuff.com/I1\"}"; + var value = objectMapper.readValue(new StringReader(json), PrimitiveFormControlData.class); + Assertions.assertThat(value.asEntity()).containsInstanceOf(OWLObjectProperty.class); + } + + @Test public void shouldRoundTripOwlDataProperty() throws IOException { var value = EntityFormControlData.get(MockingUtils.mockOWLDataProperty()); JsonSerializationTestUtil.testSerialization(value, PrimitiveFormControlData.class); } + @Test + public void shouldDeserializeOwlDatatypeProperty() throws IOException { + var json = "{\"@type\":\"owl:DatatypeProperty\",\"iri\":\"http://stuff.com/I1\"}"; + var value = objectMapper.readValue(new StringReader(json), PrimitiveFormControlData.class); + Assertions.assertThat(value.asEntity()).containsInstanceOf(OWLDataProperty.class); + } + + @Test + public void shouldDeserializeDatatypeProperty() throws IOException { + var json = "{\"@type\":\"DatatypeProperty\",\"iri\":\"http://stuff.com/I1\"}"; + var value = objectMapper.readValue(new StringReader(json), PrimitiveFormControlData.class); + Assertions.assertThat(value.asEntity()).containsInstanceOf(OWLDataProperty.class); + } + + @Test + public void shouldDeserializeDataProperty() throws IOException { + var json = "{\"@type\":\"DataProperty\",\"iri\":\"http://stuff.com/I1\"}"; + var value = objectMapper.readValue(new StringReader(json), PrimitiveFormControlData.class); + Assertions.assertThat(value.asEntity()).containsInstanceOf(OWLDataProperty.class); + } + @Test public void shouldRoundTripOwlAnnotationProperty() throws IOException { var value = EntityFormControlData.get(MockingUtils.mockOWLAnnotationProperty()); JsonSerializationTestUtil.testSerialization(value, PrimitiveFormControlData.class); } + @Test + public void shouldDeserializeOwlAnnotationProperty() throws IOException { + var json = "{\"@type\":\"owl:AnnotationProperty\",\"iri\":\"http://stuff.com/I1\"}"; + var value = objectMapper.readValue(new StringReader(json), PrimitiveFormControlData.class); + Assertions.assertThat(value.asEntity()).containsInstanceOf(OWLAnnotationProperty.class); + } + + @Test + public void shouldDeserializeAnnotationProperty() throws IOException { + var json = "{\"@type\":\"AnnotationProperty\",\"iri\":\"http://stuff.com/I1\"}"; + var value = objectMapper.readValue(new StringReader(json), PrimitiveFormControlData.class); + Assertions.assertThat(value.asEntity()).containsInstanceOf(OWLAnnotationProperty.class); + } + @Test public void shouldRoundTripOwlNamedIndividual() throws IOException { var value = EntityFormControlData.get(MockingUtils.mockOWLNamedIndividual()); JsonSerializationTestUtil.testSerialization(value, PrimitiveFormControlData.class); } + @Test + public void shouldDeserializeOwlNamedIndividual() throws IOException { + var json = "{\"@type\":\"owl:NamedIndividual\",\"iri\":\"http://stuff.com/I1\"}"; + var value = objectMapper.readValue(new StringReader(json), PrimitiveFormControlData.class); + Assertions.assertThat(value.asEntity()).containsInstanceOf(OWLNamedIndividual.class); + } + + @Test + public void shouldDeserializeNamedIndividual() throws IOException { + var json = "{\"@type\":\"NamedIndividual\",\"iri\":\"http://stuff.com/I1\"}"; + var value = objectMapper.readValue(new StringReader(json), PrimitiveFormControlData.class); + Assertions.assertThat(value.asEntity()).containsInstanceOf(OWLNamedIndividual.class); + } + @Test public void shouldRoundTripOwlDatatype() throws IOException { var value = EntityFormControlData.get(MockingUtils.mockOWLDatatype()); JsonSerializationTestUtil.testSerialization(value, PrimitiveFormControlData.class); } + + @Test + public void shouldDeserializeRdfsDatatype() throws IOException { + var json = "{\"@type\":\"rdfs:Datatype\",\"iri\":\"http://stuff.com/I1\"}"; + var value = objectMapper.readValue(new StringReader(json), PrimitiveFormControlData.class); + Assertions.assertThat(value.asEntity()).containsInstanceOf(OWLDatatype.class); + } + + @Test + public void shouldDeserializeDatatype() throws IOException { + var json = "{\"@type\":\"Datatype\",\"iri\":\"http://stuff.com/I1\"}"; + var value = objectMapper.readValue(new StringReader(json), PrimitiveFormControlData.class); + Assertions.assertThat(value.asEntity()).containsInstanceOf(OWLDatatype.class); + } } \ No newline at end of file diff --git a/webprotege-gwt-ui-server-core/src/test/java/edu/stanford/bmir/protege/web/server/form/data/SingleChoiceControlDataDtoTest.java b/webprotege-gwt-ui-server-core/src/test/java/edu/stanford/bmir/protege/web/server/form/data/SingleChoiceControlDataDtoTest.java new file mode 100644 index 000000000..6544f102a --- /dev/null +++ b/webprotege-gwt-ui-server-core/src/test/java/edu/stanford/bmir/protege/web/server/form/data/SingleChoiceControlDataDtoTest.java @@ -0,0 +1,27 @@ +package edu.stanford.bmir.protege.web.server.form.data; + +import com.google.common.collect.ImmutableList; +import edu.stanford.bmir.protege.web.shared.form.data.PrimitiveFormControlDataDto; +import edu.stanford.bmir.protege.web.shared.form.data.SingleChoiceControlDataDto; +import edu.stanford.bmir.protege.web.shared.form.field.FixedChoiceListSourceDescriptor; +import edu.stanford.bmir.protege.web.shared.form.field.SingleChoiceControlDescriptor; +import edu.stanford.bmir.protege.web.shared.form.field.SingleChoiceControlType; +import edu.stanford.bmir.protege.web.shared.match.JsonSerializationTestUtil; +import org.junit.Test; + +import java.io.IOException; + +public class SingleChoiceControlDataDtoTest { + + @Test + public void shouldDeserializeData() throws IOException { + SingleChoiceControlDataDto data = SingleChoiceControlDataDto.get( + SingleChoiceControlDescriptor.get(SingleChoiceControlType.COMBO_BOX, + FixedChoiceListSourceDescriptor.get(ImmutableList.of())), + PrimitiveFormControlDataDto.get("Hello"), + 1 + ); + + JsonSerializationTestUtil.testSerialization(data, SingleChoiceControlDataDto.class); + } +} \ No newline at end of file diff --git a/webprotege-gwt-ui-shared/src/main/java/edu/stanford/bmir/protege/web/shared/form/data/SingleChoiceControlDataDto.java b/webprotege-gwt-ui-shared/src/main/java/edu/stanford/bmir/protege/web/shared/form/data/SingleChoiceControlDataDto.java index fc43beec2..0ded0b5b9 100644 --- a/webprotege-gwt-ui-shared/src/main/java/edu/stanford/bmir/protege/web/shared/form/data/SingleChoiceControlDataDto.java +++ b/webprotege-gwt-ui-shared/src/main/java/edu/stanford/bmir/protege/web/shared/form/data/SingleChoiceControlDataDto.java @@ -27,7 +27,7 @@ public static SingleChoiceControlDataDto get(@JsonProperty(PropertyNames.CONTROL @JsonProperty(PropertyNames.CONTROL) public abstract SingleChoiceControlDescriptor getDescriptor(); - @JsonProperty(PropertyNames.CHOICE) + @JsonProperty(PropertyNames.VALUE) @Nullable protected abstract PrimitiveFormControlDataDto getChoiceInternal();