@Test /** Avoid regression on https://github.com/marklogic/java-client-api/issues/172 */ public void test_172() { ResourceExtensionsManager extensionMgr = Common.adminClient.newServerConfigManager().newResourceExtensionsManager(); Common.adminClient.release(); // since we released the existing connection, clear it out Common.adminClient = null; String expectedMessage = "You cannot use this connected object anymore--connection has already been released"; try { extensionMgr.writeServices(ResourceExtensionsTest.RESOURCE_NAME, null, null); } catch (IllegalStateException e) { assertEquals("Wrong error", expectedMessage, e.getMessage()); } try { extensionMgr.readServices(ResourceExtensionsTest.RESOURCE_NAME, new StringHandle()); } catch (IllegalStateException e) { assertEquals("Wrong error", expectedMessage, e.getMessage()); } try { extensionMgr.listServices(new DOMHandle()); } catch (IllegalStateException e) { assertEquals("Wrong error", expectedMessage, e.getMessage()); } try { extensionMgr.deleteServices(ResourceExtensionsTest.RESOURCE_NAME); } catch (IllegalStateException e) { assertEquals("Wrong error", expectedMessage, e.getMessage()); } }
@Test public void testResourceServiceExtension() throws XpathException, SAXException, IOException { ResourceExtensionsManager extensionMgr = Common.adminClient.newServerConfigManager().newResourceExtensionsManager(); StringHandle handle = new StringHandle(); ExtensionMetadata metadata = makeMetadata(); MethodParameters[] params = makeParameters(); handle.set(resourceServices); extensionMgr.writeServices(RESOURCE_NAME, handle, metadata, params); extensionMgr.readServices(RESOURCE_NAME, handle); assertEquals("Failed to retrieve resource services", resourceServices, handle.get()); String result = extensionMgr.listServices(new StringHandle().withFormat(Format.XML), true).get(); assertNotNull("Failed to retrieve resource services list", result); assertTrue("List without resource", xpather.getMatchingNodes( "/rapi:resources/rapi:resource/rapi:name[string(.) = 'testresource']", XMLUnit.buildControlDocument(result) ).getLength() == 1); extensionMgr.deleteServices(RESOURCE_NAME); result = extensionMgr.readServices(RESOURCE_NAME, handle).get(); assertTrue("Failed to delete resource services", result == null); } }