/** * Creates a new business object definition tag. <p>Requires WRITE or WRITE_DESCRIPTIVE_CONTENT permission on namespace</p> * * @param request the information needed to create a business object definition tag * * @return the newly created business object definition tag */ @RequestMapping(value = BUSINESS_OBJECT_DEFINITION_TAGS_URI_PREFIX, method = RequestMethod.POST, consumes = {"application/xml", "application/json"}) @Secured(SecurityFunctions.FN_BUSINESS_OBJECT_DEFINITION_TAGS_POST) public BusinessObjectDefinitionTag createBusinessObjectDefinitionTag(@RequestBody BusinessObjectDefinitionTagCreateRequest request) { return businessObjectDefinitionTagService.createBusinessObjectDefinitionTag(request); }
/** * Deletes an existing business object definition tag. <p>Requires WRITE or WRITE_DESCRIPTIVE_CONTENT permission on namespace</p> * * @param namespace the namespace of the business object definition * @param businessObjectDefinitionName the name of the business object definition * @param tagTypeCode the tag type reference code of the tag * @param tagCode the tag reference code of the tag * * @return the business object definition tag that got deleted */ @RequestMapping(value = BUSINESS_OBJECT_DEFINITION_TAGS_URI_PREFIX + "/namespaces/{namespace}" + "/businessObjectDefinitionNames/{businessObjectDefinitionName}" + "/tagTypes/{tagTypeCode}" + "/tagCodes/{tagCode}", method = RequestMethod.DELETE) @Secured(SecurityFunctions.FN_BUSINESS_OBJECT_DEFINITION_TAGS_DELETE) public BusinessObjectDefinitionTag deleteBusinessObjectDefinitionTag(@PathVariable("namespace") String namespace, @PathVariable("businessObjectDefinitionName") String businessObjectDefinitionName, @PathVariable("tagTypeCode") String tagTypeCode, @PathVariable("tagCode") String tagCode) { return businessObjectDefinitionTagService.deleteBusinessObjectDefinitionTag( new BusinessObjectDefinitionTagKey(new BusinessObjectDefinitionKey(namespace, businessObjectDefinitionName), new TagKey(tagTypeCode, tagCode))); }
/** * Gets a list of keys for all existing business object definition tags that are associated with the specified business object definition. * * @param namespace the namespace of the business object definition * @param businessObjectDefinitionName the name of the business object definition * * @return the list of business object definition tag keys */ @RequestMapping(value = BUSINESS_OBJECT_DEFINITION_TAGS_URI_PREFIX + "/namespaces/{namespace}" + "/businessObjectDefinitionNames/{businessObjectDefinitionName}", method = RequestMethod.GET) @Secured(SecurityFunctions.FN_BUSINESS_OBJECT_DEFINITION_TAGS_BY_BUSINESS_OBJECT_DEFINITION_GET) public BusinessObjectDefinitionTagKeys getBusinessObjectDefinitionTagsByBusinessObjectDefinition(@PathVariable(value = "namespace") String namespace, @PathVariable(value = "businessObjectDefinitionName") String businessObjectDefinitionName) { return businessObjectDefinitionTagService .getBusinessObjectDefinitionTagsByBusinessObjectDefinition(new BusinessObjectDefinitionKey(namespace, businessObjectDefinitionName)); }
/** * Gets a list of keys for all existing business object definition tags that are associated with the specified tag. * * @param tagTypeCode the tag type reference code * @param tagCode the tag reference code * * @return the list of business object definition tag keys */ @RequestMapping(value = BUSINESS_OBJECT_DEFINITION_TAGS_URI_PREFIX + "/tagTypes/{tagTypeCode}" + "/tagCodes/{tagCode}", method = RequestMethod.GET) @Secured(SecurityFunctions.FN_BUSINESS_OBJECT_DEFINITION_TAGS_BY_TAG_GET) public BusinessObjectDefinitionTagKeys getBusinessObjectDefinitionTagsByTag(@PathVariable(value = "tagTypeCode") String tagTypeCode, @PathVariable(value = "tagCode") String tagCode) { return businessObjectDefinitionTagService.getBusinessObjectDefinitionTagsByTag(new TagKey(tagTypeCode, tagCode)); } }
/** * Gets a list of keys for all existing business object definition tags that are associated with the specified tag. * * @param tagTypeCode the tag type reference code * @param tagCode the tag reference code * * @return the list of business object definition tag keys */ @RequestMapping(value = BUSINESS_OBJECT_DEFINITION_TAGS_URI_PREFIX + "/tagTypes/{tagTypeCode}" + "/tagCodes/{tagCode}", method = RequestMethod.GET) @Secured(SecurityFunctions.FN_BUSINESS_OBJECT_DEFINITION_TAGS_BY_TAG_GET) public BusinessObjectDefinitionTagKeys getBusinessObjectDefinitionTagsByTag(@PathVariable(value = "tagTypeCode") String tagTypeCode, @PathVariable(value = "tagCode") String tagCode) { return businessObjectDefinitionTagService.getBusinessObjectDefinitionTagsByTag(new TagKey(tagTypeCode, tagCode)); } }
/** * Creates a new business object definition tag. <p>Requires WRITE or WRITE_DESCRIPTIVE_CONTENT permission on namespace</p> * * @param request the information needed to create a business object definition tag * * @return the newly created business object definition tag */ @RequestMapping(value = BUSINESS_OBJECT_DEFINITION_TAGS_URI_PREFIX, method = RequestMethod.POST, consumes = {"application/xml", "application/json"}) @Secured(SecurityFunctions.FN_BUSINESS_OBJECT_DEFINITION_TAGS_POST) public BusinessObjectDefinitionTag createBusinessObjectDefinitionTag(@RequestBody BusinessObjectDefinitionTagCreateRequest request) { return businessObjectDefinitionTagService.createBusinessObjectDefinitionTag(request); }
@Test public void testGetBusinessObjectDefinitionTagsByTag() { TagKey tagKey = new TagKey(TAG_TYPE, TAG_CODE); BusinessObjectDefinitionTagKey businessObjectDefinitionTagKey = new BusinessObjectDefinitionTagKey(new BusinessObjectDefinitionKey(BDEF_NAMESPACE, BDEF_NAME), new TagKey(TAG_TYPE, TAG_CODE)); BusinessObjectDefinitionTagKeys businessObjectDefinitionTagKeys = new BusinessObjectDefinitionTagKeys(Arrays.asList(businessObjectDefinitionTagKey)); when(businessObjectDefinitionTagService.getBusinessObjectDefinitionTagsByTag(tagKey)).thenReturn(businessObjectDefinitionTagKeys); // Get business object definition tags by tag. BusinessObjectDefinitionTagKeys result = businessObjectDefinitionTagRestController.getBusinessObjectDefinitionTagsByTag(TAG_TYPE, TAG_CODE); // Verify the external calls. verify(businessObjectDefinitionTagService).getBusinessObjectDefinitionTagsByTag(tagKey); verifyNoMoreInteractions(businessObjectDefinitionTagService); // Validate the returned object. assertEquals(businessObjectDefinitionTagKeys, result); } }
/** * Gets a list of keys for all existing business object definition tags that are associated with the specified business object definition. * * @param namespace the namespace of the business object definition * @param businessObjectDefinitionName the name of the business object definition * * @return the list of business object definition tag keys */ @RequestMapping(value = BUSINESS_OBJECT_DEFINITION_TAGS_URI_PREFIX + "/namespaces/{namespace}" + "/businessObjectDefinitionNames/{businessObjectDefinitionName}", method = RequestMethod.GET) @Secured(SecurityFunctions.FN_BUSINESS_OBJECT_DEFINITION_TAGS_BY_BUSINESS_OBJECT_DEFINITION_GET) public BusinessObjectDefinitionTagKeys getBusinessObjectDefinitionTagsByBusinessObjectDefinition(@PathVariable(value = "namespace") String namespace, @PathVariable(value = "businessObjectDefinitionName") String businessObjectDefinitionName) { return businessObjectDefinitionTagService .getBusinessObjectDefinitionTagsByBusinessObjectDefinition(new BusinessObjectDefinitionKey(namespace, businessObjectDefinitionName)); }
/** * Deletes an existing business object definition tag. <p>Requires WRITE or WRITE_DESCRIPTIVE_CONTENT permission on namespace</p> * * @param namespace the namespace of the business object definition * @param businessObjectDefinitionName the name of the business object definition * @param tagTypeCode the tag type reference code of the tag * @param tagCode the tag reference code of the tag * * @return the business object definition tag that got deleted */ @RequestMapping(value = BUSINESS_OBJECT_DEFINITION_TAGS_URI_PREFIX + "/namespaces/{namespace}" + "/businessObjectDefinitionNames/{businessObjectDefinitionName}" + "/tagTypes/{tagTypeCode}" + "/tagCodes/{tagCode}", method = RequestMethod.DELETE) @Secured(SecurityFunctions.FN_BUSINESS_OBJECT_DEFINITION_TAGS_DELETE) public BusinessObjectDefinitionTag deleteBusinessObjectDefinitionTag(@PathVariable("namespace") String namespace, @PathVariable("businessObjectDefinitionName") String businessObjectDefinitionName, @PathVariable("tagTypeCode") String tagTypeCode, @PathVariable("tagCode") String tagCode) { return businessObjectDefinitionTagService.deleteBusinessObjectDefinitionTag( new BusinessObjectDefinitionTagKey(new BusinessObjectDefinitionKey(namespace, businessObjectDefinitionName), new TagKey(tagTypeCode, tagCode))); }
@Test public void testCreateBusinessObjectDefinitionTag() { // Create a business object definition key. BusinessObjectDefinitionKey businessObjectDefinitionKey = new BusinessObjectDefinitionKey(BDEF_NAMESPACE, BDEF_NAME); // Create a business object definition tag key. BusinessObjectDefinitionTagKey businessObjectDefinitionTagKey = new BusinessObjectDefinitionTagKey(businessObjectDefinitionKey, new TagKey(TAG_TYPE, TAG_CODE)); BusinessObjectDefinitionTag businessObjectDefinitionTag = new BusinessObjectDefinitionTag(ID, businessObjectDefinitionTagKey); BusinessObjectDefinitionTagCreateRequest request = new BusinessObjectDefinitionTagCreateRequest(businessObjectDefinitionTagKey); when(businessObjectDefinitionTagService.createBusinessObjectDefinitionTag(request)).thenReturn(businessObjectDefinitionTag); // Create a business object definition tag. BusinessObjectDefinitionTag result = businessObjectDefinitionTagRestController.createBusinessObjectDefinitionTag(request); // Verify the external calls. verify(businessObjectDefinitionTagService).createBusinessObjectDefinitionTag(request); verifyNoMoreInteractions(businessObjectDefinitionTagService); // Validate the returned object. assertEquals(businessObjectDefinitionTag, result); }
@Test public void testGetBusinessObjectDefinitionTagsByTagMissingRequiredParameters() { // Try to get business object definition tags by tag when when tag type is not specified. try { businessObjectDefinitionTagService.getBusinessObjectDefinitionTagsByTag(new TagKey(BLANK_TEXT, TAG_CODE)); fail(); } catch (IllegalArgumentException e) { assertEquals("A tag type code must be specified.", e.getMessage()); } // Try to get business object definition tags by tag when tag code is not specified. try { businessObjectDefinitionTagService.getBusinessObjectDefinitionTagsByTag(new TagKey(TAG_TYPE, BLANK_TEXT)); fail(); } catch (IllegalArgumentException e) { assertEquals("A tag code must be specified.", e.getMessage()); } }
@Test public void testGetBusinessObjectDefinitionTagsByBusinessObjectDefinition() { // Create a business object definition key. BusinessObjectDefinitionKey businessObjectDefinitionKey = new BusinessObjectDefinitionKey(BDEF_NAMESPACE, BDEF_NAME); // Create tag keys. List<TagKey> tagKeys = Arrays.asList(new TagKey(TAG_TYPE, TAG_CODE), new TagKey(TAG_TYPE_2, TAG_CODE_2)); BusinessObjectDefinitionTagKey businessObjectDefinitionTagKey = new BusinessObjectDefinitionTagKey(businessObjectDefinitionKey, new TagKey(TAG_TYPE, TAG_CODE)); BusinessObjectDefinitionTagKeys BusinessObjectDefinitionTagKeys = new BusinessObjectDefinitionTagKeys(Arrays.asList(businessObjectDefinitionTagKey)); when(businessObjectDefinitionTagService.getBusinessObjectDefinitionTagsByBusinessObjectDefinition(businessObjectDefinitionKey)) .thenReturn(BusinessObjectDefinitionTagKeys); // Get business object definition tags by business object definition. BusinessObjectDefinitionTagKeys result = businessObjectDefinitionTagRestController.getBusinessObjectDefinitionTagsByBusinessObjectDefinition(BDEF_NAMESPACE, BDEF_NAME); // Verify the external calls. verify(businessObjectDefinitionTagService).getBusinessObjectDefinitionTagsByBusinessObjectDefinition(businessObjectDefinitionKey); verifyNoMoreInteractions(businessObjectDefinitionTagService); // Validate the returned object. assertEquals(BusinessObjectDefinitionTagKeys, result); }
@Test public void testDeleteBusinessObjectDefinitionTag() { // Create a business object definition tag key. BusinessObjectDefinitionTagKey businessObjectDefinitionTagKey = new BusinessObjectDefinitionTagKey(new BusinessObjectDefinitionKey(BDEF_NAMESPACE, BDEF_NAME), new TagKey(TAG_TYPE, TAG_CODE)); BusinessObjectDefinitionTag businessObjectDefinitionTag = new BusinessObjectDefinitionTag(ID, businessObjectDefinitionTagKey); when(businessObjectDefinitionTagService.deleteBusinessObjectDefinitionTag(businessObjectDefinitionTagKey)).thenReturn(businessObjectDefinitionTag); // Delete this business object definition tag. BusinessObjectDefinitionTag result = businessObjectDefinitionTagRestController.deleteBusinessObjectDefinitionTag(BDEF_NAMESPACE, BDEF_NAME, TAG_TYPE, TAG_CODE); // Verify the external calls. verify(businessObjectDefinitionTagService).deleteBusinessObjectDefinitionTag(businessObjectDefinitionTagKey); verifyNoMoreInteractions(businessObjectDefinitionTagService); // Validate the returned object. assertEquals(businessObjectDefinitionTag, result); }
@Test public void testCreateBusinessObjectDefinitionTagLowerCaseParameters() { // Create and persist a business object definition entity. businessObjectDefinitionDaoTestHelper .createBusinessObjectDefinitionEntity(new BusinessObjectDefinitionKey(BDEF_NAMESPACE, BDEF_NAME), DATA_PROVIDER_NAME, DESCRIPTION); // Create and persist a tag entity. tagDaoTestHelper.createTagEntity(TAG_TYPE, TAG_CODE, TAG_DISPLAY_NAME, TAG_DESCRIPTION); // Create a business object definition tag using lower case parameter values. BusinessObjectDefinitionTag result = businessObjectDefinitionTagService.createBusinessObjectDefinitionTag(new BusinessObjectDefinitionTagCreateRequest( new BusinessObjectDefinitionTagKey(new BusinessObjectDefinitionKey(BDEF_NAMESPACE.toLowerCase(), BDEF_NAME.toLowerCase()), new TagKey(TAG_TYPE.toLowerCase(), TAG_CODE.toLowerCase())))); // Validate the returned object. assertEquals(new BusinessObjectDefinitionTag(result.getId(), new BusinessObjectDefinitionTagKey(new BusinessObjectDefinitionKey(BDEF_NAMESPACE, BDEF_NAME), new TagKey(TAG_TYPE, TAG_CODE))), result); }
@Test public void testGetBusinessObjectDefinitionTagsByTagTagNoExists() { // Try to get business object definition tags for a non-existing tag. try { businessObjectDefinitionTagService.getBusinessObjectDefinitionTagsByTag(new TagKey(TAG_TYPE, TAG_CODE)); fail(); } catch (ObjectNotFoundException e) { assertEquals(String.format("Tag with code \"%s\" doesn't exist for tag type \"%s\".", TAG_CODE, TAG_TYPE), e.getMessage()); } }
@Test public void testGetBusinessObjectDefinitionTagsByBusinessObjectDefinitionMissingRequiredParameters() { // Try to get business object definition tags by business object definition when business object definition namespace is not specified. try { businessObjectDefinitionTagService .getBusinessObjectDefinitionTagsByBusinessObjectDefinition(new BusinessObjectDefinitionKey(BLANK_TEXT, BDEF_NAME)); fail(); } catch (IllegalArgumentException e) { assertEquals("A namespace must be specified.", e.getMessage()); } // Try to get business object definition tags by business object definition when business object definition name is not specified. try { businessObjectDefinitionTagService .getBusinessObjectDefinitionTagsByBusinessObjectDefinition(new BusinessObjectDefinitionKey(BDEF_NAMESPACE, BLANK_TEXT)); fail(); } catch (IllegalArgumentException e) { assertEquals("A business object definition name must be specified.", e.getMessage()); } }
@Test public void testDeleteBusinessObjectDefinitionTagTagNoExists() { // Try to create a non-existing business object definition tag. try { businessObjectDefinitionTagService.deleteBusinessObjectDefinitionTag( new BusinessObjectDefinitionTagKey(new BusinessObjectDefinitionKey(BDEF_NAMESPACE, BDEF_NAME), new TagKey(TAG_TYPE, TAG_CODE))); fail(); } catch (ObjectNotFoundException e) { assertEquals(String.format("Tag with tag type \"%s\" and code \"%s\" does not exist for business object definition {%s}.", TAG_TYPE, TAG_CODE, businessObjectDefinitionServiceTestHelper.getExpectedBusinessObjectDefinitionKeyAsString(BDEF_NAMESPACE, BDEF_NAME)), e.getMessage()); } }
@Test public void testCreateBusinessObjectDefinitionTagUpperCaseParameters() { // Create and persist a business object definition entity. businessObjectDefinitionDaoTestHelper .createBusinessObjectDefinitionEntity(new BusinessObjectDefinitionKey(BDEF_NAMESPACE, BDEF_NAME), DATA_PROVIDER_NAME, DESCRIPTION); // Create and persist a tag entity. tagDaoTestHelper.createTagEntity(TAG_TYPE, TAG_CODE, TAG_DISPLAY_NAME, TAG_DESCRIPTION); // Create a business object definition tag using upper case parameter values. BusinessObjectDefinitionTag result = businessObjectDefinitionTagService.createBusinessObjectDefinitionTag(new BusinessObjectDefinitionTagCreateRequest( new BusinessObjectDefinitionTagKey(new BusinessObjectDefinitionKey(BDEF_NAMESPACE.toUpperCase(), BDEF_NAME.toUpperCase()), new TagKey(TAG_TYPE.toUpperCase(), TAG_CODE.toUpperCase())))); // Validate the returned object. assertEquals(new BusinessObjectDefinitionTag(result.getId(), new BusinessObjectDefinitionTagKey(new BusinessObjectDefinitionKey(BDEF_NAMESPACE, BDEF_NAME), new TagKey(TAG_TYPE, TAG_CODE))), result); }
@Test public void testGetBusinessObjectDefinitionTagsByTagNoBusinessObjectDefinitionTagsExist() { // Create and persist a tag entity. tagDaoTestHelper.createTagEntity(TAG_TYPE, TAG_CODE, TAG_DISPLAY_NAME, TAG_DESCRIPTION); // Get business object definition tags by tag. BusinessObjectDefinitionTagKeys result = businessObjectDefinitionTagService.getBusinessObjectDefinitionTagsByTag(new TagKey(TAG_TYPE, TAG_CODE)); // Validate the returned object. assertNotNull(result); assertTrue(result.getBusinessObjectDefinitionTagKeys().isEmpty()); }
@Test public void testGetBusinessObjectDefinitionTagsByBusinessObjectDefinitionUpperCaseParameters() { // Create a business object definition key. BusinessObjectDefinitionKey businessObjectDefinitionKey = new BusinessObjectDefinitionKey(BDEF_NAMESPACE, BDEF_NAME); // Create tag keys. List<TagKey> tagKeys = Arrays.asList(new TagKey(TAG_TYPE, TAG_CODE), new TagKey(TAG_TYPE_2, TAG_CODE_2)); // Create and persist business object definition tag entities. for (TagKey tagKey : tagKeys) { businessObjectDefinitionTagDaoTestHelper.createBusinessObjectDefinitionTagEntity(businessObjectDefinitionKey, tagKey); } // Get business object definition tags by business object definition using upper case parameter values. BusinessObjectDefinitionTagKeys result = businessObjectDefinitionTagService .getBusinessObjectDefinitionTagsByBusinessObjectDefinition(new BusinessObjectDefinitionKey(BDEF_NAMESPACE.toUpperCase(), BDEF_NAME.toUpperCase())); // Validate the returned object. assertNotNull(result); assertEquals(Arrays.asList(new BusinessObjectDefinitionTagKey(businessObjectDefinitionKey, tagKeys.get(0)), new BusinessObjectDefinitionTagKey(businessObjectDefinitionKey, tagKeys.get(1))), result.getBusinessObjectDefinitionTagKeys()); }