From b296714d59802cb190f450fbd8897644593af4f2 Mon Sep 17 00:00:00 2001 From: Matthew Horridge Date: Wed, 3 Jul 2024 16:31:55 -0700 Subject: [PATCH] Added serialization tests for FormSubjectFactoryDescriptor --- .../FormSubjectFactoryDescriptorTest.java | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 src/test/java/edu/stanford/protege/webprotege/forms/FormSubjectFactoryDescriptorTest.java diff --git a/src/test/java/edu/stanford/protege/webprotege/forms/FormSubjectFactoryDescriptorTest.java b/src/test/java/edu/stanford/protege/webprotege/forms/FormSubjectFactoryDescriptorTest.java new file mode 100644 index 0000000..576001e --- /dev/null +++ b/src/test/java/edu/stanford/protege/webprotege/forms/FormSubjectFactoryDescriptorTest.java @@ -0,0 +1,54 @@ +package edu.stanford.protege.webprotege.forms; + +import edu.stanford.protege.webprotege.jackson.WebProtegeJacksonApplication; +import org.junit.jupiter.api.*; +import org.semanticweb.owlapi.model.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.json.*; +import org.springframework.boot.test.json.JacksonTester; +import org.springframework.context.annotation.Import; +import uk.ac.manchester.cs.owl.owlapi.OWLClassImpl; + +import java.io.*; +import java.util.Optional; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.*; + +@JsonTest +@AutoConfigureJsonTesters +@Import(WebProtegeJacksonApplication.class) +class FormSubjectFactoryDescriptorTest { + + @Autowired + private JacksonTester tester; + + @Test + void shouldSerialize() throws IOException { + var descriptor = FormSubjectFactoryDescriptor.get( + EntityType.NAMED_INDIVIDUAL, + new OWLClassImpl(IRI.create("http://example.org/A")), + Optional.empty() + ); + var written = tester.write(descriptor); + System.out.println(written.getJson()); + assertThat(written).hasJsonPathValue("entityType"); + assertThat(written).hasJsonPathValue("parent"); + assertThat(written).hasJsonPath("targetOntologyIri"); + } + + @Test + void shouldDeserialize() throws IOException { + var json = """ + {"entityType":"NamedIndividual","parent":{"@type":"Class","iri":"http://example.org/A"},"targetOntologyIri":null} + """; + var expected = FormSubjectFactoryDescriptor.get( + EntityType.NAMED_INDIVIDUAL, + new OWLClassImpl(IRI.create("http://example.org/A")), + Optional.empty() + ); + var read = tester.read(new StringReader(json)); + assertThat(read.getObject()).isEqualTo(expected); + + } +} \ No newline at end of file