public void testSelectors() throws Exception { System.out.println("Running TestManagementNotifications.testSelectors..."); messageConsumer.close(); String messageSelector = "methodName LIKE 'ingest%'"; messageConsumer = jmsSession.createConsumer(destination, messageSelector); messageConsumer.setMessageListener(this); // Ingest - message should be delivered String pid = apim.ingest(demo998FOXMLObjectXML, FOXML1_1.uri, "ingesting new foxml object"); assertNotNull(pid); checkNotification(pid, "ingest"); // Purge - message selector should prevent message from being delivered String purgeResult = apim.purgeObject(pid, "Purging object " + pid, false); assertNotNull(purgeResult); checkNoNotifications(); }
public static void purge(FedoraAPIM skeleton, String pid, String logMessage, boolean force) throws RemoteException, IOException { skeleton.purgeObject(pid, logMessage, force); }
/** * Test notifications on 1) addDatastream 2) modifyDatastreamByReference 3) * modifyDatastreamByValue 4) setDatastreamState 5) setDatastreamVersionable 6) purgeDatastream * * @throws Exception */ public void testDatastreamMethodNotifications() throws Exception { // (1) test addDatastream System.out.println("Running TestManagementNotifications.testAddDatastream..."); String[] altIds = new String[1]; altIds[0] = "Datastream Alternate ID"; String pid = "demo:14"; String datastreamId = apim.addDatastream( pid, "NEWDS1", altIds, "A New M-type Datastream", true, "text/xml", "info:myFormatURI/Mtype/stuff#junk", getBaseURL() + "/get/fedora-system:ContentModel-3.0/DC", "M", "A", null, null, "adding new datastream"); // test that datastream was added assertEquals(datastreamId, "NEWDS1"); // Check on the notification produced by addDatastream checkNotification(pid, "addDatastream"); datastreamId = apim.addDatastream( pid, "NEWDS2", altIds, "A New X-type Datastream", true, "text/xml", "info:myFormatURI/Mtype/stuff#junk", getBaseURL() + "/get/fedora-system:ContentModel-3.0/DC", "X", "A", null, null, "adding new datastream"); // test that datastream was added assertEquals(datastreamId, "NEWDS2"); // Check on the notification produced by addDatastream checkNotification(pid, "addDatastream"); // (2) test modifyDatastreamByReference System.out.println("Running TestManagementNotifications.testModifyDatastreamByReference..."); String updateTimestamp = apim.modifyDatastreamByReference( pid, "NEWDS1", altIds, "Modified Datastream by Reference", "text/xml", "info:newMyFormatURI/Mtype/stuff#junk", getBaseURL() + "/get/fedora-system:ContentModel-3.0/DC", null, null, "modified datastream", false); // test that method returned properly assertNotNull(updateTimestamp); // Check on the notification produced by modifyDatastreamByReference checkNotification(pid, "modifyDatastreamByReference"); // (3) test modifyDatastreamByValue System.out.println("Running TestManagementNotifications.testModifyDatastreamByValue..."); updateTimestamp = apim.modifyDatastreamByValue( pid, "NEWDS2", altIds, "Modified Datastream by Value", "text/xml", "info:newMyFormatURI/Xtype/stuff#junk", dsXML, null, null, "modified datastream", false); // test that method returned properly assertNotNull(updateTimestamp); // Check on the notification produced by modifyDatastreamByValue checkNotification(pid, "modifyDatastreamByValue"); // (4) test setDatastreamState System.out.println("Running TestManagementNotifications.testSetDatastreamState..."); String setStateresult = apim.setDatastreamState(pid, "NEWDS1", "I", "Changed state of datstream DC to Inactive"); assertNotNull(setStateresult); // Check on the notification produced by setDatastreamState checkNotification(pid, "setDatastreamState"); // (5) test setDatastreamVersionable System.out.println("Running TestManagementNotifications.testSetDatastreamVersionable..."); String setVersionableResult = apim.setDatastreamVersionable( pid, "NEWDS2", false, "Changed versionable on datastream NEWDS1 to false"); assertNotNull(setVersionableResult); // Check on the notification produced by setDatastreamVersionable checkNotification(pid, "setDatastreamVersionable"); // (5) test purgeDatastream System.out.println("Running TestManagementNotifications.testPurgeDatastream..."); String[] results = apim.purgeDatastream(pid, "NEWDS1", null, null, "purging datastream NEWDS1", false); assertTrue(results.length > 0); // Check on the notification produced by purgeDatastream checkNotification(pid, "purgeDatastream"); results = apim.purgeDatastream(pid, "NEWDS2", null, null, "purging datastream NEWDS2", false); assertTrue(results.length > 0); // Check on the notification produced by purgeDatastream checkNotification(pid, "purgeDatastream"); }
/** * Tests notifications on 1) ingest 2) modifyObject 3) addRelationship 4) purgeRelationship 5) * purgeObject * * @throws Exception */ public void testObjectMethodNotifications() throws Exception { // (1) test ingest System.out.println("Running TestManagementNotifications.testIngest..."); String pid = apim.ingest(demo998FOXMLObjectXML, FOXML1_1.uri, "ingesting new foxml object"); assertNotNull(pid); // Check on the notification produced by ingest checkNotification(pid, "ingest"); // (2) test modifyObject System.out.println("Running TestManagementNotifications.testModifyObject..."); String modifyResult = apim.modifyObject( pid, "I", "Updated Object Label", null, "Changed state to inactive and updated label"); assertNotNull(modifyResult); // Check on the notification produced by modifyObject checkNotification(pid, "modifyObject"); // (3a) test addRelationship - pid System.out.println("Running TestManagementNotifications.testAddRelationship..."); boolean addRelResult = apim.addRelationship(pid, "rel:isRelatedTo", "demo:5", false, null); assertTrue(addRelResult); // Check on the notification produced by addRelationship checkNotification(pid, "addRelationship"); // (3b) test addRelationship - object uri System.out.println("Running TestManagementNotifications.testAddRelationship..."); addRelResult = apim.addRelationship(PID.toURI(pid), "rel:isRelatedTo", "demo:6", false, null); assertTrue(addRelResult); // Check on the notification produced by addRelationship checkNotification(pid, "addRelationship"); // (3c) test addRelationship - datastream uri System.out.println("Running TestManagementNotifications.testAddRelationship..."); addRelResult = apim.addRelationship(PID.toURI(pid) + "/DS1", "rel:isRelatedTo", "demo:7", false, null); assertTrue(addRelResult); // Check on the notification produced by addRelationship checkNotification(pid, "addRelationship"); // (4a) test purgeRelationship - pid System.out.println("Running TestManagementNotifications.testPurgeRelationship..."); boolean purgeRelResult = apim.purgeRelationship(pid, "rel:isRelatedTo", "demo:5", false, null); assertTrue(purgeRelResult); // Check on the notification produced by purgeRelationship checkNotification(pid, "purgeRelationship"); // (4b) test purgeRelationship - object uri System.out.println("Running TestManagementNotifications.testPurgeRelationship..."); purgeRelResult = apim.purgeRelationship(PID.toURI(pid), "rel:isRelatedTo", "demo:6", false, null); assertTrue(purgeRelResult); // Check on the notification produced by purgeRelationship checkNotification(pid, "purgeRelationship"); // (4c) test purgeRelationship - datastream uri System.out.println("Running TestManagementNotifications.testPurgeRelationship..."); purgeRelResult = apim.purgeRelationship(PID.toURI(pid) + "/DS1", "rel:isRelatedTo", "demo:7", false, null); assertTrue(purgeRelResult); // Check on the notification produced by purgeRelationship checkNotification(pid, "purgeRelationship"); // (5) test purgeObject System.out.println("Running TestManagementNotifications.testPurgeObject..."); String purgeResult = apim.purgeObject(pid, "Purging object " + pid, false); assertNotNull(purgeResult); // Check on the notification produced by purgeObject checkNotification(pid, "purgeObject"); }