/** * Instead of retrieving the contents of the resource, return a description * of the query received. */ @Override public DataSet query(ResourceSnapshot resource, Query query, ReadSession session) throws InvalidQueryException { return QuerySupport.getDescription(resource.name(), query); }
@Test public void testGetDescription$failureRequest$otherPath() throws Exception { Name<?> id = NamingScheme.getDefault().name("Test"); Query query = QueryBuilder. newInstance(). withParameter(QueryableResourceHandler.FAILURE, "FALSE"). build(); DataSet data=QuerySupport.getDescription(id, query); assertThat((Object)data.name(),sameInstance((Object)id)); DataSetHelper dHelper = DataSetUtils.newHelper(data); IndividualHelper qInd = dHelper.localIndividual(QuerySupport.queryId()); assertThat(qInd.types(),contains(QuerySupport.QUERY_TYPE)); IndividualHelper pInd = dHelper.localIndividual(QuerySupport.parameterId(QueryableResourceHandler.FAILURE)); assertThat(pInd.types(),contains(QuerySupport.PARAMETER_TYPE)); }
LocalIndividual qIndividual =dataset.individual(queryId(), LocalIndividual.class); ExternalIndividual qtIndividual=dataset.individual(QuerySupport.QUERY_TYPE, ExternalIndividual.class); ExternalIndividual ptIndividual=dataset.individual(QuerySupport.PARAMETER_TYPE, ExternalIndividual.class); dataset. individual( parameterId(parameterName), LocalIndividual.class); qIndividual.addValue(QuerySupport.HAS_PARAMETER, pIndividual);
@Test public void testGetValueLessParameterDescription() throws Exception { Name<?> id = NamingScheme.getDefault().name("Test"); Query query = QueryBuilder. newInstance(). withParameter("param1", ""). withParameter("param1", ""). withParameter("param2", "value1"). build(); DataSet data=QuerySupport.getDescription(id, query); assertThat((Object)data.name(),sameInstance((Object)id)); DataSetHelper dHelper = DataSetUtils.newHelper(data); IndividualHelper qInd = dHelper.localIndividual(QuerySupport.queryId()); assertThat(qInd.types(),contains(QuerySupport.QUERY_TYPE)); IndividualHelper pInd = dHelper.localIndividual(QuerySupport.parameterId("param1")); assertThat(pInd.types(),contains(QuerySupport.PARAMETER_TYPE)); }
@Test public void testGetDescription() throws Exception { Name<?> id = NamingScheme.getDefault().name("Test"); Query query = QueryBuilder. newInstance(). withParameter("param1", "value1"). withParameter("param1", "value2"). withParameter("param2", "value1"). build(); DataSet data=QuerySupport.getDescription(id, query); assertThat((Object)data.name(),sameInstance((Object)id)); DataSetHelper dHelper = DataSetUtils.newHelper(data); IndividualHelper qInd = dHelper.localIndividual(QuerySupport.queryId()); assertThat(qInd.types(),contains(QuerySupport.QUERY_TYPE)); IndividualHelper pInd = dHelper.localIndividual(QuerySupport.parameterId("param1")); assertThat(pInd.types(),contains(QuerySupport.PARAMETER_TYPE)); }
@Test public void testGetDescription$failureRequest$invalidValue() throws Exception { Name<?> id = NamingScheme.getDefault().name("Test"); Query query = QueryBuilder. newInstance(). withParameter(QueryableResourceHandler.FAILURE, "not a boolean"). build(); try { QuerySupport.getDescription(id, query); fail("Should not accept queries with the failure parameter"); } catch (InvalidQueryException e) { assertThat(e.getQuery(),equalTo(query)); assertThat(e.getCause(),instanceOf(ObjectTransformationException.class)); } }
@Test public void testGetDescription$failureRequest$happyPath() throws Exception { Name<?> id = NamingScheme.getDefault().name("Test"); Query query = QueryBuilder. newInstance(). withParameter(QueryableResourceHandler.FAILURE, "true"). build(); try { QuerySupport.getDescription(id, query); fail("Should not accept queries with the failure parameter set to true"); } catch (InvalidQueryException e) { assertThat(e.getQuery(),equalTo(query)); assertThat(e.getCause(),nullValue()); } }
@Test public void testQuery(@Mocked final ResourceSnapshot snapshot, @Mocked final Name<?> name, @Mocked final Query query) throws Exception { QueryableResourceHandler sut = new QueryableResourceHandler(); new Expectations() {{ snapshot.name();result=name; QuerySupport.getDescription(name, query); }}; sut.query(snapshot, query, null); }