@Override public ValidationResult validate(String subject, String uri, ValidationContext context) { String message = "not set"; boolean isValid = true; if (uri.trim().isEmpty()) { isValid = false; } else { final boolean elPresent = context.isExpressionLanguageSupported(subject) && context.isExpressionLanguagePresent(uri); if (!elPresent) { try { new URIBuilder(URI.create(uri)).build(); } catch (RuntimeException e) { message = e.getMessage(); isValid = false; } } } return new ValidationResult.Builder() .subject(subject) .input(uri) .explanation("Dataset URI is invalid: " + message) .valid(isValid) .build(); } };
@Override public URI getUri() { URIBuilder builder = new URIBuilder(dataset.getUri()); for (Map.Entry<String, String> entry : constraints.toQueryMap().entrySet()) { builder.with(entry.getKey(), entry.getValue()); } return builder.build(); }
@Override public void run() { new URIBuilder("dataset:file:/datasets/test-name", "ns", "test-name-2") .build(); } });
@Override public void run() { new URIBuilder((URI) null).build(); } });
@Test public void testBuildDatasetUri() { URI uri = new URIBuilder("repo:file:/tmp/data", "ns", "test-ds").build(); Assert.assertEquals(URI.create("dataset:file:/tmp/data/ns/test-ds"), uri); }
@Test public void testRepoUriHasQueryString() { URI uri = new URIBuilder("repo:file:/tmp/data?repoParam=x", "ns", "test-ds") .with("username", "bob") .build(); Assert.assertEquals(URI.create("view:file:/tmp/data/ns/test-ds?repoParam=x&username=bob"), uri); } }
@Override public void run() { Datasets.list(new URIBuilder(repoUri, "ns", "test").build()); } });
@Test public void testDeleteStringUri() { URI datasetUri = new URIBuilder(repoUri, "ns", "test").build(); Datasets.delete(datasetUri.toString()); verify(repo).delete("ns", "test"); verifyNoMoreInteractions(repo); }
@Test public void testDatasetUriToDatasetUri() { Assert.assertEquals("Should produce an equivalent dataset URI", URI.create("dataset:file:/datasets/test-name"), new URIBuilder("dataset:file:/datasets/test-name").build()); }
@Test public void testRepoUriAndNameToDatasetUri() { Assert.assertEquals("Should construct the correct dataset URI", URI.create("dataset:file:/datasets/ns/test-name"), new URIBuilder("repo:file:/datasets", "ns", "test-name").build()); }
@Test public void testExistsStringUri() { URI datasetUri = new URIBuilder(repoUri, "ns", "test").build(); when(repo.exists("ns", "test")).thenReturn(false); Assert.assertFalse(Datasets.exists(datasetUri.toString())); verify(repo).exists("ns", "test"); verifyNoMoreInteractions(repo); }
@Test public void testMoveToTrash() { URI datasetUri = new URIBuilder(repoUri, "ns", "test").build(); Datasets.moveToTrash(datasetUri); verify(repo).moveToTrash("ns", "test"); verifyNoMoreInteractions(repo); }
@Test public void testDelete() { URI datasetUri = new URIBuilder(repoUri, "ns", "test").build(); Datasets.delete(datasetUri); verify(repo).delete("ns", "test"); verifyNoMoreInteractions(repo); }
@Test public void testRepositoryFor() { URI datasetUri = new URIBuilder(repoUri, "ns", "test").build(); Assert.assertEquals(repo, DatasetRepositories.repositoryFor(datasetUri)); verifyNoMoreInteractions(repo); }
@Test public void testEmptyConstraints() { Assert.assertEquals("Empty constraints should produce dataset URI", URI.create("dataset:file:/datasets/test"), new URIBuilder("dataset:file:/datasets/test") .constraints(empty) .build()); } }
@Override public void run() { Datasets.list(new URIBuilder(repoUri, "ns", "test") .with("field", 34) .build()); } });
@Test public void testRepositoryForView() { URI datasetUri = new URIBuilder(repoUri, "ns", "test") .with("field", 34) .build(); Assert.assertEquals(repo, DatasetRepositories.repositoryFor(datasetUri)); verifyNoMoreInteractions(repo); }
@Test(expected=NullPointerException.class) public void testCreateNullType() { URI datasetUri = new URIBuilder(repoUri, "ns", "test").build(); DatasetDescriptor descriptor = new DatasetDescriptor.Builder() .schemaLiteral("\"string\"") .build(); Datasets.<Object, Dataset<Object>> create(datasetUri, descriptor, null); }
@Test(expected=NullPointerException.class) public void testUpdateNullType() { URI datasetUri = new URIBuilder(repoUri, "ns", "test").build(); DatasetDescriptor descriptor = new DatasetDescriptor.Builder() .schemaLiteral("\"string\"") .build(); Datasets.<Object, Dataset<Object>> update(datasetUri, descriptor, null); }