static RetrievalScenario forContext(OperationContext context) { Query query=context.getQuery(); RetrievalScenario result=RESOURCE_RETRIEVAL; if(!query.isEmpty()) { if(query.hasParameter(CONSTRAINT_QUERY_PARAMETER)) { if(query.size()==1) { result=CONSTRAINT_REPORT_RETRIEVAL; } else { result=MIXED_QUERY; } } else if(!context.isResourceQueryable()) { result=QUERY_NOT_SUPPORTED; } } return result; }
@Test public void validateQueryExtraction() throws MalformedURLException, IOException { Query query = QueryResponseHelper. getQuery( new URL("http://www.example.org/"), "resource/", TestingUtil.loadResource("queries/query_dataset.ttl")); assertThat(query.size(),equalTo(2)); assertThat(query.getParameter("param1").rawValues(),contains("value1")); assertThat(query.getParameter("param2").rawValues(),contains("value2")); }
@Test @Category({ HappyPath.class }) @OperateOnDeployment(DEPLOYMENT) public void testSupportForQueriesWithValuedParameters(@ArquillianResource final URL url) throws Exception { LOGGER.info("Started {}",testName.getMethodName()); Query query=queryResource(url, "ldp4j/api/"+MyApplication.ROOT_QUERYABLE_RESOURCE_PATH+"?param1=value1¶m2=value2"); assertThat(query.size(),equalTo(2)); assertThat(query.hasParameter("param1"),equalTo(true)); assertThat(query.hasParameter("param2"),equalTo(true)); LOGGER.info("Completed {}",testName.getMethodName()); }
@Test @Category({ ExceptionPath.class }) @OperateOnDeployment(DEPLOYMENT) public void testQuerySupport$missfailure(@ArquillianResource final URL url) throws Exception { LOGGER.info("Started {}",testName.getMethodName()); Query query=queryResource(url, "ldp4j/api/"+MyApplication.ROOT_QUERYABLE_RESOURCE_PATH+"?"+QueryableResourceHandler.FAILURE+"=false"); assertThat(query.size(),equalTo(1)); assertThat(query.hasParameter(QueryableResourceHandler.FAILURE),equalTo(true)); assertThat(query.getParameter(QueryableResourceHandler.FAILURE).rawValueAs(Boolean.class),equalTo(false)); LOGGER.info("Completed {}",testName.getMethodName()); }
@Test @Category({ HappyPath.class }) @OperateOnDeployment(DEPLOYMENT) public void testSupportForQueriesWithRepeatedValuedParameters(@ArquillianResource final URL url) throws Exception { LOGGER.info("Started {}",testName.getMethodName()); Query query=queryResource(url, "ldp4j/api/"+MyApplication.ROOT_QUERYABLE_RESOURCE_PATH+"?param1=value1¶m2=value2¶m2=value3"); assertThat(query.size(),equalTo(2)); assertThat(query.hasParameter("param1"),equalTo(true)); assertThat(query.hasParameter("param2"),equalTo(true)); assertThat(query.getParameter("param2").cardinality(),equalTo(2)); assertThat(query.getParameter("param2").rawValues(),hasItems("value2","value3")); LOGGER.info("Completed {}",testName.getMethodName()); }
@Test @Category({ HappyPath.class }) @OperateOnDeployment(DEPLOYMENT) public void testSupportForQueriesWithRepeatedParametersWithoutValues(@ArquillianResource final URL url) throws Exception { String pName = testName.getMethodName(); LOGGER.info("Started {}",pName); String path = "ldp4j/api/"+MyApplication.ROOT_QUERYABLE_RESOURCE_PATH+"?param1&"+pName+"&"+pName; String response = IOUtils.toString(new URL(TestingUtil.resolve(url, path)).openStream()); List<String> resources=QueryResponseHelper.getResources(url, path, response); assertThat(resources,hasSize(0)); Query query=QueryResponseHelper.getQuery(url, path, response); assertThat(query.size(),equalTo(2)); assertThat(query.hasParameter("param1"),equalTo(true)); assertThat(query.getParameter("param1").cardinality(),equalTo(1)); assertThat(query.getParameter("param1").rawValues(),hasItems("")); assertThat(query.hasParameter(pName),equalTo(true)); assertThat(query.getParameter(pName).cardinality(),equalTo(1)); assertThat(query.getParameter(pName).rawValues(),hasItems("")); LOGGER.info("Completed {}",pName); }
@Test @Category({ HappyPath.class }) @OperateOnDeployment(DEPLOYMENT) public void testSupportForMixedParameterQueries(@ArquillianResource final URL url) throws Exception { LOGGER.info("Started {}",testName.getMethodName()); Query query=queryResource(url, "ldp4j/api/"+MyApplication.ROOT_QUERYABLE_RESOURCE_PATH+"?param1¶m2=value2"); assertThat(query.size(),equalTo(2)); assertThat(query.hasParameter("param1"),equalTo(true)); assertThat(query.getParameter("param1").cardinality(),equalTo(1)); assertThat(query.getParameter("param1").rawValues(),hasItems("")); assertThat(query.hasParameter("param2"),equalTo(true)); assertThat(query.getParameter("param2").cardinality(),equalTo(1)); assertThat(query.getParameter("param2").rawValues(),hasItems("value2")); LOGGER.info("Completed {}",testName.getMethodName()); }
@Test @Category({ HappyPath.class }) @OperateOnDeployment(DEPLOYMENT) public void testSupportForQueriesWithoutValuedParameters(@ArquillianResource final URL url) throws Exception { LOGGER.info("Started {}",testName.getMethodName()); Query query=queryResource(url, "ldp4j/api/"+MyApplication.ROOT_QUERYABLE_RESOURCE_PATH+"?param1¶m2"); assertThat(query.size(),equalTo(2)); assertThat(query.hasParameter("param1"),equalTo(true)); assertThat(query.getParameter("param1").cardinality(),equalTo(1)); assertThat(query.getParameter("param1").rawValues(),hasItems("")); assertThat(query.hasParameter("param2"),equalTo(true)); assertThat(query.getParameter("param2").cardinality(),equalTo(1)); assertThat(query.getParameter("param2").rawValues(),hasItems("")); LOGGER.info("Completed {}",testName.getMethodName()); }
@Test @Category({ HappyPath.class }) @OperateOnDeployment(DEPLOYMENT) public void testQueryResponsesAreNotEnrichedByTheFramework(@ArquillianResource final URL url) throws Exception { String pName = testName.getMethodName(); LOGGER.info("Started {}",pName); String path = "ldp4j/api/"+MyApplication.ROOT_QUERYABLE_RESOURCE_PATH+"?param1=value1¶m2=value2¶m2=value3¶m3"; String response = IOUtils.toString(new URL(TestingUtil.resolve(url, path)).openStream()); List<String> resources=QueryResponseHelper.getResources(url, path, response); assertThat(resources,hasSize(0)); Query query=QueryResponseHelper.getQuery(url, path, response); assertThat(query.size(),equalTo(3)); assertThat(query.hasParameter("param1"),equalTo(true)); assertThat(query.getParameter("param1").cardinality(),equalTo(1)); assertThat(query.getParameter("param1").rawValues(),hasItems("value1")); assertThat(query.hasParameter("param2"),equalTo(true)); assertThat(query.getParameter("param2").cardinality(),equalTo(2)); assertThat(query.getParameter("param2").rawValues(),hasItems("value2","value3")); assertThat(query.hasParameter("param3"),equalTo(true)); assertThat(query.getParameter("param3").cardinality(),equalTo(1)); assertThat(query.getParameter("param3").rawValues(),hasItems("")); LOGGER.info("Completed {}",pName); }