private void testSystemDatasetAccessFromService(ServiceManager serviceManager) throws Exception {
addDatasetInstance(NamespaceId.SYSTEM.dataset("store"), "keyValueTable");
grantAndAssertSuccess(NamespaceId.SYSTEM.dataset("store"), BOB, EnumSet.of(Action.WRITE));
SecurityRequestContext.setUserId(BOB.getName());
Map<String, String> args = ImmutableMap.of(
CrossNsDatasetAccessApp.OUTPUT_DATASET_NS, NamespaceId.SYSTEM.getNamespace(),
CrossNsDatasetAccessApp.OUTPUT_DATASET_NAME, "store"
);
serviceManager.start(args);
URL url = new URL(serviceManager.getServiceURL(5, TimeUnit.SECONDS), "write/data");
HttpResponse response = HttpRequests.execute(HttpRequest.put(url).build());
Assert.assertEquals(500, response.getResponseCode());
Assert.assertTrue(response.getResponseBodyAsString().contains("Cannot access dataset store in system namespace"));
serviceManager.stop();
serviceManager.waitForStopped(10, TimeUnit.SECONDS);
SecurityRequestContext.setUserId(ALICE.getName());
deleteDatasetInstance(NamespaceId.SYSTEM.dataset("store"));
}