/** * Creates a new business object data notification. <p>Requires WRITE permission on namespace</p> <p>Requires READ permission on filter namespace</p> * <p>Requires EXECUTE permission on ALL job action namespaces</p> * * @param request the information needed to create the business object data notification * * @return the created business object data notification */ @RequestMapping(value = BUSINESS_OBJECT_DATA_NOTIFICATIONS_URI_PREFIX, method = RequestMethod.POST, consumes = {"application/xml", "application/json"}) @Secured(SecurityFunctions.FN_BUSINESS_OBJECT_DATA_NOTIFICATION_REGISTRATIONS_POST) public BusinessObjectDataNotificationRegistration createBusinessObjectDataNotificationRegistration( @RequestBody BusinessObjectDataNotificationRegistrationCreateRequest request) { return businessObjectDataNotificationRegistrationService.createBusinessObjectDataNotificationRegistration(request); }
/** * Deletes an existing business object data notification by key. <p>Requires WRITE permission on namespace</p> * * @param namespace the namespace * @param notificationName the business object data notification name * * @return the business object data notification that got deleted */ @RequestMapping(value = BUSINESS_OBJECT_DATA_NOTIFICATIONS_URI_PREFIX + "/namespaces/{namespace}/notificationNames/{notificationName}", method = RequestMethod.DELETE) @Secured(SecurityFunctions.FN_BUSINESS_OBJECT_DATA_NOTIFICATION_REGISTRATIONS_DELETE) public BusinessObjectDataNotificationRegistration deleteBusinessObjectDataNotification(@PathVariable("namespace") String namespace, @PathVariable("notificationName") String notificationName) { return businessObjectDataNotificationRegistrationService .deleteBusinessObjectDataNotificationRegistration(new NotificationRegistrationKey(namespace, notificationName)); }
/** * Gets an existing business object data notification by key. <p>Requires READ permission on namespace</p> * * @param namespace the namespace * @param notificationName the business object data notification name * * @return the retrieved business object data notification */ @RequestMapping(value = BUSINESS_OBJECT_DATA_NOTIFICATIONS_URI_PREFIX + "/namespaces/{namespace}/notificationNames/{notificationName}", method = RequestMethod.GET) @Secured(SecurityFunctions.FN_BUSINESS_OBJECT_DATA_NOTIFICATION_REGISTRATIONS_GET) public BusinessObjectDataNotificationRegistration getBusinessObjectDataNotificationRegistration(@PathVariable("namespace") String namespace, @PathVariable("notificationName") String notificationName) { return businessObjectDataNotificationRegistrationService .getBusinessObjectDataNotificationRegistration(new NotificationRegistrationKey(namespace, notificationName)); }
/** * Updates an existing business object data notification by key. <p>Requires WRITE permission on namespace</p> <p>Requires READ permission on filter * namespace</p> <p>Requires EXECUTE permission on ALL job action namespaces</p> * * @param namespace the namespace * @param notificationName the business object data notification name * @param request the information needed to update the business object data notification * * @return the updated business object data notification */ @RequestMapping(value = BUSINESS_OBJECT_DATA_NOTIFICATIONS_URI_PREFIX + "/namespaces/{namespace}/notificationNames/{notificationName}", method = RequestMethod.PUT, consumes = {"application/xml", "application/json"}) @Secured(SecurityFunctions.FN_BUSINESS_OBJECT_DATA_NOTIFICATION_REGISTRATIONS_PUT) public BusinessObjectDataNotificationRegistration updateBusinessObjectDataNotificationRegistration(@PathVariable("namespace") String namespace, @PathVariable("notificationName") String notificationName, @RequestBody BusinessObjectDataNotificationRegistrationUpdateRequest request) { return businessObjectDataNotificationRegistrationService .updateBusinessObjectDataNotificationRegistration(new NotificationRegistrationKey(namespace, notificationName), request); }
/** * Gets a list of keys for all existing business object data notification registrations for the specified business object data notification registration * namespace. * * @param namespace the namespace of the business object data notification registration * * @return the business object data notification registration keys */ @RequestMapping(value = BUSINESS_OBJECT_DATA_NOTIFICATIONS_URI_PREFIX + "/namespaces/{namespace}", method = RequestMethod.GET) @Secured(SecurityFunctions.FN_BUSINESS_OBJECT_DATA_NOTIFICATION_REGISTRATIONS_BY_NAMESPACE_GET) public BusinessObjectDataNotificationRegistrationKeys getBusinessObjectDataNotificationRegistrationsByNamespace(@PathVariable("namespace") String namespace) { return businessObjectDataNotificationRegistrationService.getBusinessObjectDataNotificationRegistrationsByNamespace(namespace); }
return businessObjectDataNotificationRegistrationService.getBusinessObjectDataNotificationRegistrationsByNotificationFilter( new BusinessObjectDataNotificationFilter(businessObjectDefinitionNamespace, businessObjectDefinitionName, businessObjectFormatUsage, businessObjectFormatFileType, null, null, null, null));
/** * Updates an existing business object data notification by key. <p>Requires WRITE permission on namespace</p> <p>Requires READ permission on filter * namespace</p> <p>Requires EXECUTE permission on ALL job action namespaces</p> * * @param namespace the namespace * @param notificationName the business object data notification name * @param request the information needed to update the business object data notification * * @return the updated business object data notification */ @RequestMapping(value = BUSINESS_OBJECT_DATA_NOTIFICATIONS_URI_PREFIX + "/namespaces/{namespace}/notificationNames/{notificationName}", method = RequestMethod.PUT, consumes = {"application/xml", "application/json"}) @Secured(SecurityFunctions.FN_BUSINESS_OBJECT_DATA_NOTIFICATION_REGISTRATIONS_PUT) public BusinessObjectDataNotificationRegistration updateBusinessObjectDataNotificationRegistration(@PathVariable("namespace") String namespace, @PathVariable("notificationName") String notificationName, @RequestBody BusinessObjectDataNotificationRegistrationUpdateRequest request) { return businessObjectDataNotificationRegistrationService .updateBusinessObjectDataNotificationRegistration(new NotificationRegistrationKey(namespace, notificationName), request); }
/** * Gets a list of keys for all existing business object data notification registrations for the specified business object data notification registration * namespace. * * @param namespace the namespace of the business object data notification registration * * @return the business object data notification registration keys */ @RequestMapping(value = BUSINESS_OBJECT_DATA_NOTIFICATIONS_URI_PREFIX + "/namespaces/{namespace}", method = RequestMethod.GET) @Secured(SecurityFunctions.FN_BUSINESS_OBJECT_DATA_NOTIFICATION_REGISTRATIONS_BY_NAMESPACE_GET) public BusinessObjectDataNotificationRegistrationKeys getBusinessObjectDataNotificationRegistrationsByNamespace(@PathVariable("namespace") String namespace) { return businessObjectDataNotificationRegistrationService.getBusinessObjectDataNotificationRegistrationsByNamespace(namespace); }
return businessObjectDataNotificationRegistrationService.getBusinessObjectDataNotificationRegistrationsByNotificationFilter( new BusinessObjectDataNotificationFilter(businessObjectDefinitionNamespace, businessObjectDefinitionName, businessObjectFormatUsage, businessObjectFormatFileType, null, null, null, null));
/** * Creates a new business object data notification. <p>Requires WRITE permission on namespace</p> <p>Requires READ permission on filter namespace</p> * <p>Requires EXECUTE permission on ALL job action namespaces</p> * * @param request the information needed to create the business object data notification * * @return the created business object data notification */ @RequestMapping(value = BUSINESS_OBJECT_DATA_NOTIFICATIONS_URI_PREFIX, method = RequestMethod.POST, consumes = {"application/xml", "application/json"}) @Secured(SecurityFunctions.FN_BUSINESS_OBJECT_DATA_NOTIFICATION_REGISTRATIONS_POST) public BusinessObjectDataNotificationRegistration createBusinessObjectDataNotificationRegistration( @RequestBody BusinessObjectDataNotificationRegistrationCreateRequest request) { return businessObjectDataNotificationRegistrationService.createBusinessObjectDataNotificationRegistration(request); }
.updateBusinessObjectDataNotificationRegistration(new NotificationRegistrationKey(NAMESPACE.toLowerCase(), NOTIFICATION_NAME.toLowerCase()), new BusinessObjectDataNotificationRegistrationUpdateRequest( NotificationEventTypeEntity.EventTypesBdata.BUS_OBJCT_DATA_RGSTN.name().toLowerCase(),
@Test public void testGetBusinessObjectDataNotificationRegistrationsByNamespaceMissingRequiredParameters() { // Try to get business object data notifications when namespace is not specified. try { businessObjectDataNotificationRegistrationService.getBusinessObjectDataNotificationRegistrationsByNamespace(BLANK_TEXT); fail("Should throw an IllegalArgumentException when namespace is not specified."); } catch (IllegalArgumentException e) { assertEquals("A namespace must be specified.", e.getMessage()); } }
@Test public void testGetBusinessObjectDataNotificationRegistrationsByNotificationFilterUpperCaseParameters() { // Create a business object data notification registration key. NotificationRegistrationKey notificationRegistrationKey = new NotificationRegistrationKey(NAMESPACE, NOTIFICATION_NAME); // Create and persist a business object data notification registration entity. notificationRegistrationDaoTestHelper.createBusinessObjectDataNotificationRegistrationEntity(notificationRegistrationKey, NotificationEventTypeEntity.EventTypesBdata.BUS_OBJCT_DATA_STTS_CHG.name(), BDEF_NAMESPACE, BDEF_NAME, FORMAT_USAGE_CODE, FORMAT_FILE_TYPE_CODE, FORMAT_VERSION, STORAGE_NAME, BDATA_STATUS, BDATA_STATUS_2, notificationRegistrationDaoTestHelper.getTestJobActions(), NotificationRegistrationStatusEntity.ENABLED); // Retrieve a list of business object data notification registration keys using upper case input parameters. assertEquals(new BusinessObjectDataNotificationRegistrationKeys(Arrays.asList(notificationRegistrationKey)), businessObjectDataNotificationRegistrationService.getBusinessObjectDataNotificationRegistrationsByNotificationFilter( new BusinessObjectDataNotificationFilter(BDEF_NAMESPACE.toUpperCase(), BDEF_NAME.toUpperCase(), FORMAT_USAGE_CODE.toUpperCase(), FORMAT_FILE_TYPE_CODE.toUpperCase(), NO_FORMAT_VERSION, NO_STORAGE_NAME, NO_BDATA_STATUS, NO_BDATA_STATUS))); }
/** * Deletes an existing business object data notification by key. <p>Requires WRITE permission on namespace</p> * * @param namespace the namespace * @param notificationName the business object data notification name * * @return the business object data notification that got deleted */ @RequestMapping(value = BUSINESS_OBJECT_DATA_NOTIFICATIONS_URI_PREFIX + "/namespaces/{namespace}/notificationNames/{notificationName}", method = RequestMethod.DELETE) @Secured(SecurityFunctions.FN_BUSINESS_OBJECT_DATA_NOTIFICATION_REGISTRATIONS_DELETE) public BusinessObjectDataNotificationRegistration deleteBusinessObjectDataNotification(@PathVariable("namespace") String namespace, @PathVariable("notificationName") String notificationName) { return businessObjectDataNotificationRegistrationService .deleteBusinessObjectDataNotificationRegistration(new NotificationRegistrationKey(namespace, notificationName)); }
/** * Gets an existing business object data notification by key. <p>Requires READ permission on namespace</p> * * @param namespace the namespace * @param notificationName the business object data notification name * * @return the retrieved business object data notification */ @RequestMapping(value = BUSINESS_OBJECT_DATA_NOTIFICATIONS_URI_PREFIX + "/namespaces/{namespace}/notificationNames/{notificationName}", method = RequestMethod.GET) @Secured(SecurityFunctions.FN_BUSINESS_OBJECT_DATA_NOTIFICATION_REGISTRATIONS_GET) public BusinessObjectDataNotificationRegistration getBusinessObjectDataNotificationRegistration(@PathVariable("namespace") String namespace, @PathVariable("notificationName") String notificationName) { return businessObjectDataNotificationRegistrationService .getBusinessObjectDataNotificationRegistration(new NotificationRegistrationKey(namespace, notificationName)); }
@Test public void testCreateBusinessObjectDataNotificationRegistrationUpperCaseParameters() { // Create and persist the relative database entities using lower case values. notificationRegistrationServiceTestHelper.createDatabaseEntitiesForBusinessObjectDataNotificationRegistrationTesting(NAMESPACE.toLowerCase(), Arrays.asList(NotificationEventTypeEntity.EventTypesBdata.BUS_OBJCT_DATA_STTS_CHG.name()), BDEF_NAMESPACE.toLowerCase(), BDEF_NAME.toLowerCase(), Arrays.asList(FORMAT_FILE_TYPE_CODE.toLowerCase()), Arrays.asList(STORAGE_NAME.toLowerCase()), Arrays.asList(BDATA_STATUS.toLowerCase(), BDATA_STATUS_2.toLowerCase()), Arrays.asList(new JobAction(NAMESPACE.toLowerCase(), JOB_NAME.toLowerCase(), BLANK_TEXT))); // Create a business object data notification using upper case input parameters. BusinessObjectDataNotificationRegistration resultBusinessObjectDataNotificationRegistration = businessObjectDataNotificationRegistrationService .createBusinessObjectDataNotificationRegistration(new BusinessObjectDataNotificationRegistrationCreateRequest( new NotificationRegistrationKey(NAMESPACE.toUpperCase(), NOTIFICATION_NAME.toUpperCase()), NotificationEventTypeEntity.EventTypesBdata.BUS_OBJCT_DATA_STTS_CHG.name().toUpperCase(), new BusinessObjectDataNotificationFilter(BDEF_NAMESPACE.toUpperCase(), BDEF_NAME.toUpperCase(), FORMAT_USAGE_CODE.toUpperCase(), FORMAT_FILE_TYPE_CODE.toUpperCase(), FORMAT_VERSION, STORAGE_NAME.toUpperCase(), BDATA_STATUS.toUpperCase(), BDATA_STATUS_2.toUpperCase()), Arrays.asList(new JobAction(NAMESPACE.toUpperCase(), JOB_NAME.toUpperCase(), CORRELATION_DATA.toUpperCase())), NotificationRegistrationStatusEntity.ENABLED.toUpperCase())); // Validate the returned object. assertEquals(new BusinessObjectDataNotificationRegistration(resultBusinessObjectDataNotificationRegistration.getId(), new NotificationRegistrationKey(NAMESPACE.toLowerCase(), NOTIFICATION_NAME.toUpperCase()), NotificationEventTypeEntity.EventTypesBdata.BUS_OBJCT_DATA_STTS_CHG.name(), new BusinessObjectDataNotificationFilter(BDEF_NAMESPACE.toLowerCase(), BDEF_NAME.toLowerCase(), FORMAT_USAGE_CODE.toUpperCase(), FORMAT_FILE_TYPE_CODE.toLowerCase(), FORMAT_VERSION, STORAGE_NAME.toLowerCase(), BDATA_STATUS.toLowerCase(), BDATA_STATUS_2.toLowerCase()), Arrays.asList(new JobAction(NAMESPACE.toLowerCase(), JOB_NAME.toLowerCase(), CORRELATION_DATA.toUpperCase())), NotificationRegistrationStatusEntity.ENABLED), resultBusinessObjectDataNotificationRegistration); }
.updateBusinessObjectDataNotificationRegistration(new NotificationRegistrationKey(NAMESPACE.toUpperCase(), NOTIFICATION_NAME.toUpperCase()), new BusinessObjectDataNotificationRegistrationUpdateRequest( NotificationEventTypeEntity.EventTypesBdata.BUS_OBJCT_DATA_RGSTN.name().toUpperCase(),
@Test public void testGetBusinessObjectDataNotificationRegistrationsByNamespace() { // Create notification registration keys. BusinessObjectDataNotificationRegistrationKeys businessObjectDataNotificationRegistrationKeys = new BusinessObjectDataNotificationRegistrationKeys(Arrays.asList(new NotificationRegistrationKey(NAMESPACE, NOTIFICATION_NAME))); // Mock the external calls. when(businessObjectDataNotificationRegistrationService.getBusinessObjectDataNotificationRegistrationsByNamespace(NAMESPACE)) .thenReturn(businessObjectDataNotificationRegistrationKeys); // Call the method under test. BusinessObjectDataNotificationRegistrationKeys result = businessObjectDataNotificationRegistrationRestController.getBusinessObjectDataNotificationRegistrationsByNamespace(NAMESPACE); // Verify the external calls. verify(businessObjectDataNotificationRegistrationService).getBusinessObjectDataNotificationRegistrationsByNamespace(NAMESPACE); verifyNoMoreInteractionsHelper(); // Validate the results. assertEquals(businessObjectDataNotificationRegistrationKeys, result); }
@Test public void testGetBusinessObjectDataNotificationRegistrationsByNotificationFilterLowerCaseParameters() { // Create a business object data notification registration key. NotificationRegistrationKey notificationRegistrationKey = new NotificationRegistrationKey(NAMESPACE, NOTIFICATION_NAME); // Create and persist a business object data notification registration entity. notificationRegistrationDaoTestHelper.createBusinessObjectDataNotificationRegistrationEntity(notificationRegistrationKey, NotificationEventTypeEntity.EventTypesBdata.BUS_OBJCT_DATA_STTS_CHG.name(), BDEF_NAMESPACE, BDEF_NAME, FORMAT_USAGE_CODE, FORMAT_FILE_TYPE_CODE, FORMAT_VERSION, STORAGE_NAME, BDATA_STATUS, BDATA_STATUS_2, notificationRegistrationDaoTestHelper.getTestJobActions(), NotificationRegistrationStatusEntity.ENABLED); // Retrieve a list of business object data notification registration keys using lower case input parameters. assertEquals(new BusinessObjectDataNotificationRegistrationKeys(Arrays.asList(notificationRegistrationKey)), businessObjectDataNotificationRegistrationService.getBusinessObjectDataNotificationRegistrationsByNotificationFilter( new BusinessObjectDataNotificationFilter(BDEF_NAMESPACE.toLowerCase(), BDEF_NAME.toLowerCase(), FORMAT_USAGE_CODE.toLowerCase(), FORMAT_FILE_TYPE_CODE.toLowerCase(), NO_FORMAT_VERSION, NO_STORAGE_NAME, NO_BDATA_STATUS, NO_BDATA_STATUS))); }
@Test public void testDeleteBusinessObjectDataNotificationRegistration() { // Create a notification registration key. NotificationRegistrationKey businessObjectDataNotificationRegistrationKey = new NotificationRegistrationKey(NAMESPACE, NOTIFICATION_NAME); // Create a business object data notification filter. BusinessObjectDataNotificationFilter businessObjectDataNotificationFilter = new BusinessObjectDataNotificationFilter(BDEF_NAMESPACE, BDEF_NAME, FORMAT_USAGE_CODE, FORMAT_FILE_TYPE_CODE, FORMAT_VERSION, STORAGE_NAME, BDATA_STATUS, BDATA_STATUS_2); // Create a list of job actions. List<JobAction> jobActions = Arrays.asList(new JobAction(JOB_NAMESPACE, JOB_NAME, CORRELATION_DATA)); // Create a business object data notification registration. BusinessObjectDataNotificationRegistration businessObjectDataNotificationRegistration = new BusinessObjectDataNotificationRegistration(ID, businessObjectDataNotificationRegistrationKey, NOTIFICATION_EVENT_TYPE, businessObjectDataNotificationFilter, jobActions, NOTIFICATION_REGISTRATION_STATUS); // Mock the external calls. when(businessObjectDataNotificationRegistrationService.deleteBusinessObjectDataNotificationRegistration(businessObjectDataNotificationRegistrationKey)) .thenReturn(businessObjectDataNotificationRegistration); // Call the method under test. BusinessObjectDataNotificationRegistration result = businessObjectDataNotificationRegistrationRestController.deleteBusinessObjectDataNotification(NAMESPACE, NOTIFICATION_NAME); // Verify the external calls. verify(businessObjectDataNotificationRegistrationService) .deleteBusinessObjectDataNotificationRegistration(businessObjectDataNotificationRegistrationKey); verifyNoMoreInteractionsHelper(); // Validate the results. assertEquals(businessObjectDataNotificationRegistration, result); }