|
41 | 41 | import cz.cvut.kbss.jsonld.environment.model.Organization; |
42 | 42 | import cz.cvut.kbss.jsonld.environment.model.OwlPropertyType; |
43 | 43 | import cz.cvut.kbss.jsonld.environment.model.Person; |
| 44 | +import cz.cvut.kbss.jsonld.environment.model.PersonWithTypedProperties; |
44 | 45 | import cz.cvut.kbss.jsonld.environment.model.Role; |
45 | 46 | import cz.cvut.kbss.jsonld.environment.model.Study; |
46 | 47 | import cz.cvut.kbss.jsonld.environment.model.StudyOnPersons; |
|
75 | 76 | import static org.hamcrest.Matchers.anyOf; |
76 | 77 | import static org.hamcrest.Matchers.containsString; |
77 | 78 | import static org.hamcrest.Matchers.hasItems; |
| 79 | +import static org.hamcrest.Matchers.hasKey; |
78 | 80 | import static org.hamcrest.Matchers.instanceOf; |
79 | 81 | import static org.junit.jupiter.api.Assertions.assertEquals; |
80 | 82 | import static org.junit.jupiter.api.Assertions.assertFalse; |
@@ -891,4 +893,49 @@ void deserializationHandlesNumericValuesWithDatatypes() throws Exception { |
891 | 893 | assertEquals(BigInteger.valueOf(128000), result.getBigIntegerValue()); |
892 | 894 | assertEquals(BigDecimal.valueOf(128000.821), result.getBigDecimalValue()); |
893 | 895 | } |
| 896 | + |
| 897 | + /** |
| 898 | + * Bug #84 |
| 899 | + */ |
| 900 | + @Test |
| 901 | + void deserializationHandlesTypedLiteralsForTypedProperties() throws Exception { |
| 902 | + final JsonArray input = readAndExpand("objectWithTypedLiteralInProperties.json"); |
| 903 | + final PersonWithTypedProperties result = sut.deserialize(input, PersonWithTypedProperties.class); |
| 904 | + assertNotNull(result); |
| 905 | + assertEquals("Catherine", result.getFirstName()); |
| 906 | + assertEquals("Halsey", result.getLastName()); |
| 907 | + assertThat(result.getProperties(), |
| 908 | + hasKey(URI.create("http://onto.fel.cvut.cz/ontologies/application/jb4jsonld/attribute/warrantor"))); |
| 909 | + assertEquals(Set.of("Lord Hood"), result.getProperties().get(URI.create( |
| 910 | + "http://onto.fel.cvut.cz/ontologies/application/jb4jsonld/attribute/warrantor"))); |
| 911 | + assertThat(result.getProperties(), hasKey(URI.create( |
| 912 | + "http://onto.fel.cvut.cz/ontologies/application/jb4jsonld/attribute/revision-count"))); |
| 913 | + assertEquals(Set.of(4, 8), result.getProperties().get(URI.create( |
| 914 | + "http://onto.fel.cvut.cz/ontologies/application/jb4jsonld/attribute/revision-count"))); |
| 915 | + assertThat(result.getProperties(), |
| 916 | + hasKey(URI.create("http://onto.fel.cvut.cz/ontologies/application/jb4jsonld/attribute/approved"))); |
| 917 | + assertEquals(Set.of(true), result.getProperties().get(URI.create( |
| 918 | + "http://onto.fel.cvut.cz/ontologies/application/jb4jsonld/attribute/approved"))); |
| 919 | + } |
| 920 | + |
| 921 | + @Test |
| 922 | + void deserializationHandlesTypedLiteralsForUntypedProperties() throws Exception { |
| 923 | + final JsonArray input = readAndExpand("objectWithTypedLiteralInProperties.json"); |
| 924 | + final Person result = sut.deserialize(input, Person.class); |
| 925 | + assertNotNull(result); |
| 926 | + assertEquals("Catherine", result.getFirstName()); |
| 927 | + assertEquals("Halsey", result.getLastName()); |
| 928 | + assertThat(result.getProperties(), |
| 929 | + hasKey("http://onto.fel.cvut.cz/ontologies/application/jb4jsonld/attribute/warrantor")); |
| 930 | + assertEquals(Set.of("Lord Hood"), result.getProperties() |
| 931 | + .get("http://onto.fel.cvut.cz/ontologies/application/jb4jsonld/attribute/warrantor")); |
| 932 | + assertThat(result.getProperties(), |
| 933 | + hasKey("http://onto.fel.cvut.cz/ontologies/application/jb4jsonld/attribute/revision-count")); |
| 934 | + assertEquals(Set.of("4", "8"), result.getProperties() |
| 935 | + .get("http://onto.fel.cvut.cz/ontologies/application/jb4jsonld/attribute/revision-count")); |
| 936 | + assertThat(result.getProperties(), |
| 937 | + hasKey("http://onto.fel.cvut.cz/ontologies/application/jb4jsonld/attribute/approved")); |
| 938 | + assertEquals(Set.of("true"), result.getProperties() |
| 939 | + .get("http://onto.fel.cvut.cz/ontologies/application/jb4jsonld/attribute/approved")); |
| 940 | + } |
894 | 941 | } |
0 commit comments