/** * Test updating an indirect container with no member resource. */ @Test @DisplayName("Test updating an indirect container with no member resource") default void testUpdateIndirectContainerMissingMemberResource() { final String location = createSimpleIndirectContainer(MEMBER_RESOURCE2); final String content = getResourceAsString(INDIRECT_CONTAINER); // PUT an LDP-DC try (final Response res = target(location).request() .header(LINK, fromUri(LDP.IndirectContainer.getIRIString()).rel(TYPE).build()) .put(entity(content, TEXT_TURTLE))) { assertEquals(CLIENT_ERROR, res.getStatusInfo().getFamily(), "no membershipResource results in 4xx"); assertTrue(getLinks(res).stream().anyMatch(hasConstrainedBy(Trellis.InvalidCardinality)), "A missing membershipResource property results in an InvalidCardinality constraint"); } }
/** * Test updating an indirect container with no member resource. */ @Test @DisplayName("Test updating an indirect container with no member resource") default void testUpdateIndirectContainerMissingMemberResource() { final String location = createSimpleIndirectContainer(MEMBER_RESOURCE2); final String content = getResourceAsString(INDIRECT_CONTAINER); // PUT an LDP-DC try (final Response res = target(location).request() .header(LINK, fromUri(LDP.IndirectContainer.getIRIString()).rel(TYPE).build()) .put(entity(content, TEXT_TURTLE))) { assertEquals(CLIENT_ERROR, res.getStatusInfo().getFamily(), "no membershipResource results in 4xx"); assertTrue(getLinks(res).stream().anyMatch(hasConstrainedBy(Trellis.InvalidCardinality)), "A missing membershipResource property results in an InvalidCardinality constraint"); } }
/** * Test updating an indirect container with no ldp:insertedContentRelation property. */ @Test @DisplayName("Test updating an indirect container with no ldp:insertedContentRelation property") default void testUpdateIndirectContainerNoICRProp() { final String location = createSimpleIndirectContainer(MEMBER_RESOURCE2); final String content = getResourceAsString(DIRECT_CONTAINER) + membershipResource(getContainerLocation() + MEMBER_RESOURCE2); // PUT an LDP-DC try (final Response res = target(location).request() .header(LINK, fromUri(LDP.IndirectContainer.getIRIString()).rel(TYPE).build()) .put(entity(content, TEXT_TURTLE))) { assertEquals(CLIENT_ERROR, res.getStatusInfo().getFamily(), "Check for a 4xx response"); assertTrue(getLinks(res).stream().anyMatch(hasConstrainedBy(Trellis.InvalidCardinality)), "Check for an InvalidCardinality constraint IRI"); } }
/** * Test updating an indirect container with no member relation property. */ @Test @DisplayName("Test updating an indirect container with no member relation property") default void testUpdateIndirectContainerMissingMemberRelation() { final String location = createSimpleIndirectContainer(MEMBER_RESOURCE2); final String content = "PREFIX skos: <http://www.w3.org/2004/02/skos/core#> \n" + "PREFIX ldp: <http://www.w3.org/ns/ldp#> \n" + "PREFIX foaf: <http://xmlns.com/foaf/0.1/> \n" + "PREFIX dc: <http://purl.org/dc/terms/> \n\n" + "<> skos:prefLabel \"Indirect Container\"@eng ; " + " ldp:membershipResource <" + getContainerLocation() + MEMBER_RESOURCE2 + "> ; " + " ldp:insertedContentRelation foaf:primaryTopic ; " + " dc:description \"This is an Indirect Container for testing.\"@eng ."; // PUT an LDP-DC try (final Response res = target(location).request() .header(LINK, fromUri(LDP.IndirectContainer.getIRIString()).rel(TYPE).build()) .put(entity(content, TEXT_TURTLE))) { assertEquals(CLIENT_ERROR, res.getStatusInfo().getFamily(), "Missing member property results in 4xx"); assertTrue(getLinks(res).stream().anyMatch(hasConstrainedBy(Trellis.InvalidCardinality)), "Check that a missing memberRelation results in an InvalidCardinality constraint"); } }
/** * Test updating an indirect container with no ldp:insertedContentRelation property. */ @Test @DisplayName("Test updating an indirect container with no ldp:insertedContentRelation property") default void testUpdateIndirectContainerNoICRProp() { final String location = createSimpleIndirectContainer(MEMBER_RESOURCE2); final String content = getResourceAsString(DIRECT_CONTAINER) + membershipResource(getContainerLocation() + MEMBER_RESOURCE2); // PUT an LDP-DC try (final Response res = target(location).request() .header(LINK, fromUri(LDP.IndirectContainer.getIRIString()).rel(TYPE).build()) .put(entity(content, TEXT_TURTLE))) { assertEquals(CLIENT_ERROR, res.getStatusInfo().getFamily(), "Check for a 4xx response"); assertTrue(getLinks(res).stream().anyMatch(hasConstrainedBy(Trellis.InvalidCardinality)), "Check for an InvalidCardinality constraint IRI"); } }
/** * Test updating an indirect container with no member relation property. */ @Test @DisplayName("Test updating an indirect container with no member relation property") default void testUpdateIndirectContainerMissingMemberRelation() { final String location = createSimpleIndirectContainer(MEMBER_RESOURCE2); final String content = "PREFIX skos: <http://www.w3.org/2004/02/skos/core#> \n" + "PREFIX ldp: <http://www.w3.org/ns/ldp#> \n" + "PREFIX foaf: <http://xmlns.com/foaf/0.1/> \n" + "PREFIX dc: <http://purl.org/dc/terms/> \n\n" + "<> skos:prefLabel \"Indirect Container\"@eng ; " + " ldp:membershipResource <" + getContainerLocation() + MEMBER_RESOURCE2 + "> ; " + " ldp:insertedContentRelation foaf:primaryTopic ; " + " dc:description \"This is an Indirect Container for testing.\"@eng ."; // PUT an LDP-DC try (final Response res = target(location).request() .header(LINK, fromUri(LDP.IndirectContainer.getIRIString()).rel(TYPE).build()) .put(entity(content, TEXT_TURTLE))) { assertEquals(CLIENT_ERROR, res.getStatusInfo().getFamily(), "Missing member property results in 4xx"); assertTrue(getLinks(res).stream().anyMatch(hasConstrainedBy(Trellis.InvalidCardinality)), "Check that a missing memberRelation results in an InvalidCardinality constraint"); } }
/** * Test updating an indirect container with too many member-related properties. */ @Test @DisplayName("Test updating an indirect container with too many member-related properties") default void testUpdateIndirectContainerTooManyMemberProps() { final String location = createSimpleIndirectContainer(MEMBER_RESOURCE2); final String content = getResourceAsString(INDIRECT_CONTAINER) + membershipResource(getContainerLocation() + MEMBER_RESOURCE2) + "<> ldp:isMemberOfRelation dc:isPartOf ."; // PUT an LDP-DC try (final Response res = target(location).request() .header(LINK, fromUri(LDP.IndirectContainer.getIRIString()).rel(TYPE).build()) .put(entity(content, TEXT_TURTLE))) { assertEquals(CLIENT_ERROR, res.getStatusInfo().getFamily(), "Check for a 4xx response"); assertTrue(getLinks(res).stream().anyMatch(hasConstrainedBy(Trellis.InvalidCardinality)), "Check for an InvalidCardinality constraint IRI"); } }
/** * Test updating an indirect container with too many member-related properties. */ @Test @DisplayName("Test updating an indirect container with too many member-related properties") default void testUpdateIndirectContainerTooManyMemberProps() { final String location = createSimpleIndirectContainer(MEMBER_RESOURCE2); final String content = getResourceAsString(INDIRECT_CONTAINER) + membershipResource(getContainerLocation() + MEMBER_RESOURCE2) + "<> ldp:isMemberOfRelation dc:isPartOf ."; // PUT an LDP-DC try (final Response res = target(location).request() .header(LINK, fromUri(LDP.IndirectContainer.getIRIString()).rel(TYPE).build()) .put(entity(content, TEXT_TURTLE))) { assertEquals(CLIENT_ERROR, res.getStatusInfo().getFamily(), "Check for a 4xx response"); assertTrue(getLinks(res).stream().anyMatch(hasConstrainedBy(Trellis.InvalidCardinality)), "Check for an InvalidCardinality constraint IRI"); } }
/** * Test updating an indirect container with too many membership resources. */ @Test @DisplayName("Test updating an indirect container with too many membership resources") default void testUpdateIndirectContainerMultipleMemberResources() { final String location = createSimpleIndirectContainer(MEMBER_RESOURCE2); final String content = getResourceAsString(INDIRECT_CONTAINER) + membershipResource(getContainerLocation() + MEMBER_RESOURCE2) + membershipResource(getContainerLocation() + "/member3"); // PUT an LDP-DC try (final Response res = target(location).request() .header(LINK, fromUri(LDP.IndirectContainer.getIRIString()).rel(TYPE).build()) .put(entity(content, TEXT_TURTLE))) { assertEquals(CLIENT_ERROR, res.getStatusInfo().getFamily(), "Check for a 4xx response"); assertTrue(getLinks(res).stream().anyMatch(hasConstrainedBy(Trellis.InvalidCardinality)), "Check for an InvalidCardinality contraint IRI"); } }
/** * Test updating an indirect container with too many membership resources. */ @Test @DisplayName("Test updating an indirect container with too many membership resources") default void testUpdateIndirectContainerMultipleMemberResources() { final String location = createSimpleIndirectContainer(MEMBER_RESOURCE2); final String content = getResourceAsString(INDIRECT_CONTAINER) + membershipResource(getContainerLocation() + MEMBER_RESOURCE2) + membershipResource(getContainerLocation() + "/member3"); // PUT an LDP-DC try (final Response res = target(location).request() .header(LINK, fromUri(LDP.IndirectContainer.getIRIString()).rel(TYPE).build()) .put(entity(content, TEXT_TURTLE))) { assertEquals(CLIENT_ERROR, res.getStatusInfo().getFamily(), "Check for a 4xx response"); assertTrue(getLinks(res).stream().anyMatch(hasConstrainedBy(Trellis.InvalidCardinality)), "Check for an InvalidCardinality contraint IRI"); } }
/** * Test updating an indirect container via PUT. */ @Test @DisplayName("Test updating an indirect container via PUT") default void testUpdateIndirectContainerViaPut() { final String location = createSimpleIndirectContainer(MEMBER_RESOURCE2); final String content = getResourceAsString("/indirectContainerInverse.ttl") + membershipResource(getContainerLocation() + MEMBER_RESOURCE2); // PUT an LDP-IC try (final Response res = target(location).request() .header(LINK, fromUri(LDP.IndirectContainer.getIRIString()).rel(TYPE).build()) .put(entity(content, TEXT_TURTLE))) { assertAll("Check replacing an LDP-IC via PUT", checkRdfResponse(res, LDP.IndirectContainer, null)); } }
/** * Test updating an indirect container via PUT. */ @Test @DisplayName("Test updating an indirect container via PUT") default void testUpdateIndirectContainerViaPut() { final String location = createSimpleIndirectContainer(MEMBER_RESOURCE2); final String content = getResourceAsString("/indirectContainerInverse.ttl") + membershipResource(getContainerLocation() + MEMBER_RESOURCE2); // PUT an LDP-IC try (final Response res = target(location).request() .header(LINK, fromUri(LDP.IndirectContainer.getIRIString()).rel(TYPE).build()) .put(entity(content, TEXT_TURTLE))) { assertAll("Check replacing an LDP-IC via PUT", checkRdfResponse(res, LDP.IndirectContainer, null)); } }