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)); }
private Response handleConstraintReportRetrieval(OperationContext context, boolean includeEntity, Variant variant) { Parameter parameter=RetrievalScenario.constraintReportId(context); if(parameter.cardinality()!=1) { throw new InvalidConstraintReportRetrievalException(context,parameter.rawValues(),includeEntity); } String constraintReportId = parameter.rawValue(); try { LOGGER.debug("Retrieving constraint report: {}",constraintReportId); PublicResource resource=context.resource(); DataSet report=resource.getConstraintReport(constraintReportId); if(report==null) { throw new UnknownConstraintReportException(context,constraintReportId,includeEntity); } LOGGER.trace("Constraint report to serialize:\n{}",report); return prepareConstraintReportRetrievalResponse(context,variant,report,includeEntity); } catch (ApplicationExecutionException e) { throw diagnoseApplicationExecutionException(context, e); } catch (ApplicationContextException e) { throw new InternalServerException(context,e); } }
@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 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 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); }
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));