@Test public void testPresentTotalCount() throws URISyntaxException { Integer totalResults = new Integer(17); Resource thisMetaPage = createMetadata(true, totalResults); Literal tr = thisMetaPage.getModel().createTypedLiteral(totalResults); assertTrue(thisMetaPage.hasProperty(OpenSearch.totalResults, tr)); }
@Test public void testTermbindsIncludesMetaproperties() throws URISyntaxException { Integer totalResults = null; Resource thisMetaPage = createMetadata(false, totalResults); for (Property p : expectedTermboundProperties) { Model model = thisMetaPage.getModel(); if (!model.contains(null, API.property, p)) { fail("term bindings should include " + model.shortForm(p.getURI())); } } }
@Test public void testAbsentTotalCount() throws URISyntaxException { Integer totalResults = null; Resource thisMetaPage = createMetadata(true, totalResults); assertFalse(thisMetaPage.hasProperty(OpenSearch.totalResults)); }
private Resource createMetadata(final boolean isListEndpoint, Integer totalResults) throws URISyntaxException { Model objectModel = ModelFactory.createDefaultModel(); MergedModels mergedModels = new MergedModels(objectModel); // Model meta = mergedModels.getMetaModel(); // Resource thisMetaPage = meta.createResource("eh:/thisMetaPage"); Resource SEP = meta.createResource("eh:/sparqlEndpoint"); thisMetaPage.addProperty(API.sparqlEndpoint, SEP); Bindings bindings = new Bindings(); URI ru = new URI(thisMetaPage.getURI()); Resource uriForDefinition = objectModel.createResource(thisMetaPage.getURI()); boolean suppressIPTO = true; int page = 1, perPage = 10; boolean hasMorePages = true; Context context = new Context(); CompleteContext cc = new CompleteContext(Mode.PreferLocalnames, context, objectModel); // SetsMetadata setsMeta = new SetsMetadata() { @Override public void setMetadata(String type, Model meta) {} }; WantsMetadata wantsMeta = new WantsMetadata() { @Override public boolean wantsMetadata(String name) { return true; } }; // Map<String, View> views = new HashMap<String, View>(); Set<FormatNameAndType> formats = new HashSet<FormatNameAndType>(); // EndpointDetails details = new EndpointDetails() { @Override public boolean isListEndpoint() { return isListEndpoint; } @Override public boolean hasParameterBasedContentNegotiation() { return false; } }; // EndpointMetadata.addAllMetadata( mergedModels, ru, uriForDefinition, bindings, cc, suppressIPTO, thisMetaPage, page, perPage, totalResults, hasMorePages, CollectionUtils.list(objectModel.createResource("eh:/item/_1")), setsMeta, wantsMeta, "SELECT", "VIEW", new TestCaches.FakeSource("Nemos"), views, formats, details); return thisMetaPage; }
@Test public void testItemEndpointHasCorrectType() throws URISyntaxException { Integer totalResults = null; Resource thisMetaPage = createMetadata(false, totalResults); assertTrue(thisMetaPage.hasProperty(RDF.type, API.ItemEndpoint)); }