static Parameter constraintReportId(OperationContext context) { return context.getQuery().getParameter(CONSTRAINT_QUERY_PARAMETER); }
static String toString(Query query) { List<String> parameters=Lists.newArrayList(); for(String paramName:query.parameterNames()) { for(String rawValue:query.getParameter(paramName).rawValues()) { parameters.add(paramName+"="+rawValue); } } StringBuilder builder=new StringBuilder(); Iterator<String> iterator=parameters.iterator(); while(iterator.hasNext()) { builder.append(iterator.next()); if(iterator.hasNext()) { builder.append("&"); } } return builder.toString(); }
static String retrievalLog(OperationContext context) { StringBuilder builder=new StringBuilder(); Query query=context.getQuery(); if(query.isEmpty()) { builder.append("Executing resource retrieval:").append(NL); } else { builder.append("Executing resource query:").append(NL); builder.append(" - Parameters:").append(NL); for(String parameter:query.parameterNames()) { builder.append(" + ").append(parameter).append(" : ").append(query.getParameter(parameter).rawValues()); } } ContentPreferences preferences=context.contentPreferences(); if(preferences!=null) { builder.append(" - Using preferences: ").append(preferences).append(NL); } else { builder.append(" - Using default preferences: ").append(ContentPreferences.defaultPreferences()).append(NL); } return builder.toString(); }
@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")); }
private void assertHasParameter(Query query, String parameterName, String... rawValues) { assertThat(query.hasParameter(parameterName),equalTo(true)); Parameter parameter = query.getParameter(parameterName); assertThat(parameter,notNullValue()); assertThat(parameter.isMultivalued(),equalTo(rawValues.length>1)); assertThat(parameter.cardinality(),equalTo(rawValues.length)); assertThat(parameter.rawValue(),equalTo(rawValues[0])); assertThat(parameter.rawValues(),hasItems(rawValues)); }
@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 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 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 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); }
@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({ 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()); }
Parameter failure=query.getParameter(QueryableResourceHandler.FAILURE); try { if(failure.rawValueAs(Boolean.class)) { pIndividual.addValue(QuerySupport.TYPE, ptIndividual); pIndividual.addValue(QuerySupport.HAS_NAME, Literals.of(parameterName)); for(String rawValue:query.getParameter(parameterName).rawValues()) { pIndividual.addValue(QuerySupport.HAS_VALUE, Literals.of(rawValue));