use of org.finra.herd.model.api.xml.TagSearchFilter in project herd by FINRAOS.
the class TagServiceImpl method validateTagSearchRequest.
/**
* Validate the tag search request. This method also trims the request parameters.
*
* @param tagSearchRequest the tag search request
*/
private void validateTagSearchRequest(TagSearchRequest tagSearchRequest) {
Assert.notNull(tagSearchRequest, "A tag search request must be specified.");
// Continue validation if the list of tag search filters is not empty.
if (CollectionUtils.isNotEmpty(tagSearchRequest.getTagSearchFilters()) && tagSearchRequest.getTagSearchFilters().get(0) != null) {
// Validate that there is only one tag search filter.
Assert.isTrue(CollectionUtils.size(tagSearchRequest.getTagSearchFilters()) == 1, "At most one tag search filter must be specified.");
// Get the tag search filter.
TagSearchFilter tagSearchFilter = tagSearchRequest.getTagSearchFilters().get(0);
// Validate that exactly one tag search key is specified.
Assert.isTrue(CollectionUtils.size(tagSearchFilter.getTagSearchKeys()) == 1 && tagSearchFilter.getTagSearchKeys().get(0) != null, "Exactly one tag search key must be specified.");
// Get the tag search key.
TagSearchKey tagSearchKey = tagSearchFilter.getTagSearchKeys().get(0);
tagSearchKey.setTagTypeCode(alternateKeyHelper.validateStringParameter("tag type code", tagSearchKey.getTagTypeCode()));
if (tagSearchKey.getParentTagCode() != null) {
tagSearchKey.setParentTagCode(tagSearchKey.getParentTagCode().trim());
}
// Fail validation when parent tag code is specified along with the isParentTagNull flag set to true.
Assert.isTrue(StringUtils.isBlank(tagSearchKey.getParentTagCode()) || BooleanUtils.isNotTrue(tagSearchKey.isIsParentTagNull()), "A parent tag code can not be specified when isParentTagNull flag is set to true.");
}
}
use of org.finra.herd.model.api.xml.TagSearchFilter in project herd by FINRAOS.
the class TagRestControllerTest method testSearchTags.
@Test
public void testSearchTags() {
TagSearchResponse tagSearchResponse = new TagSearchResponse(Arrays.asList(new Tag(NO_ID, new TagKey(TAG_TYPE, TAG_CODE_3), TAG_DISPLAY_NAME_2, TAG_SEARCH_SCORE_MULTIPLIER_3, TAG_DESCRIPTION_3, NO_USER_ID, NO_USER_ID, NO_UPDATED_TIME, new TagKey(TAG_TYPE, TAG_CODE), TAG_HAS_NO_CHILDREN), new Tag(NO_ID, new TagKey(TAG_TYPE, TAG_CODE_2), TAG_DISPLAY_NAME_3, TAG_SEARCH_SCORE_MULTIPLIER_2, TAG_DESCRIPTION_2, NO_USER_ID, NO_USER_ID, NO_UPDATED_TIME, new TagKey(TAG_TYPE, TAG_CODE), TAG_HAS_NO_CHILDREN)));
Set<String> searchFields = Sets.newHashSet(TagServiceImpl.DISPLAY_NAME_FIELD, TagServiceImpl.DESCRIPTION_FIELD, TagServiceImpl.PARENT_TAG_KEY_FIELD, TagServiceImpl.HAS_CHILDREN_FIELD);
TagSearchRequest tagSearchRequest = new TagSearchRequest(Arrays.asList(new TagSearchFilter(Arrays.asList(new TagSearchKey(TAG_TYPE, TAG_CODE, NO_IS_PARENT_TAG_NULL_FLAG)))));
when(tagService.searchTags(tagSearchRequest, searchFields)).thenReturn(tagSearchResponse);
// Search the tags.
TagSearchResponse resultTagSearchResponse = tagRestController.searchTags(tagSearchRequest, searchFields);
// Verify the external calls.
verify(tagService).searchTags(tagSearchRequest, searchFields);
verifyNoMoreInteractions(tagService);
// Validate the returned object.
assertEquals(tagSearchResponse, resultTagSearchResponse);
}
use of org.finra.herd.model.api.xml.TagSearchFilter in project herd by FINRAOS.
the class TagServiceTest method testSearchTagsWithIsParentTagNullFlag.
@Test
public void testSearchTagsWithIsParentTagNullFlag() {
// Create and persist database entities required for testing.
createDatabaseEntitiesForTagSearchTesting();
// Get root tag entities (parent tag must not be set).
assertEquals(new TagSearchResponse(Arrays.asList(new Tag(NO_ID, new TagKey(TAG_TYPE, TAG_CODE), NO_TAG_DISPLAY_NAME, NO_TAG_SEARCH_SCORE_MULTIPLIER, NO_TAG_DESCRIPTION, NO_USER_ID, NO_USER_ID, NO_UPDATED_TIME, NO_PARENT_TAG_KEY, NO_TAG_HAS_CHILDREN_FLAG))), tagService.searchTags(new TagSearchRequest(Arrays.asList(new TagSearchFilter(Arrays.asList(new TagSearchKey(TAG_TYPE, NO_PARENT_TAG_CODE, PARENT_TAG_IS_NULL))))), NO_SEARCH_RESPONSE_FIELDS));
// Get all non-root tag entities (parent tag must be set).
assertEquals(new TagSearchResponse(Arrays.asList(new Tag(NO_ID, new TagKey(TAG_TYPE, TAG_CODE_3), NO_TAG_DISPLAY_NAME, NO_TAG_SEARCH_SCORE_MULTIPLIER, NO_TAG_DESCRIPTION, NO_USER_ID, NO_USER_ID, NO_UPDATED_TIME, NO_PARENT_TAG_KEY, NO_TAG_HAS_CHILDREN_FLAG), new Tag(NO_ID, new TagKey(TAG_TYPE, TAG_CODE_2), NO_TAG_DISPLAY_NAME, NO_TAG_SEARCH_SCORE_MULTIPLIER, NO_TAG_DESCRIPTION, NO_USER_ID, NO_USER_ID, NO_UPDATED_TIME, NO_PARENT_TAG_KEY, NO_TAG_HAS_CHILDREN_FLAG))), tagService.searchTags(new TagSearchRequest(Arrays.asList(new TagSearchFilter(Arrays.asList(new TagSearchKey(TAG_TYPE, NO_PARENT_TAG_CODE, PARENT_TAG_IS_NOT_NULL))))), NO_SEARCH_RESPONSE_FIELDS));
}
use of org.finra.herd.model.api.xml.TagSearchFilter in project herd by FINRAOS.
the class TagServiceTest method testSearchTags.
@Test
public void testSearchTags() {
// Create and persist database entities required for testing.
createDatabaseEntitiesForTagSearchTesting();
// Search the tags.
TagSearchResponse tagSearchResponse = tagService.searchTags(new TagSearchRequest(Arrays.asList(new TagSearchFilter(Arrays.asList(new TagSearchKey(TAG_TYPE, TAG_CODE, NO_IS_PARENT_TAG_NULL_FLAG))))), Sets.newHashSet(TagServiceImpl.DISPLAY_NAME_FIELD, TagServiceImpl.SEARCH_SCORE_MULTIPLIER_FIELD, TagServiceImpl.DESCRIPTION_FIELD, TagServiceImpl.PARENT_TAG_KEY_FIELD, TagServiceImpl.HAS_CHILDREN_FIELD));
// Validate the returned object.
assertEquals(new TagSearchResponse(Arrays.asList(new Tag(NO_ID, new TagKey(TAG_TYPE, TAG_CODE_3), TAG_DISPLAY_NAME_2, TAG_SEARCH_SCORE_MULTIPLIER_3, TAG_DESCRIPTION_3, NO_USER_ID, NO_USER_ID, NO_UPDATED_TIME, new TagKey(TAG_TYPE, TAG_CODE), TAG_HAS_NO_CHILDREN), new Tag(NO_ID, new TagKey(TAG_TYPE, TAG_CODE_2), TAG_DISPLAY_NAME_3, TAG_SEARCH_SCORE_MULTIPLIER_2, TAG_DESCRIPTION_2, NO_USER_ID, NO_USER_ID, NO_UPDATED_TIME, new TagKey(TAG_TYPE, TAG_CODE), TAG_HAS_NO_CHILDREN))), tagSearchResponse);
}
use of org.finra.herd.model.api.xml.TagSearchFilter in project herd by FINRAOS.
the class TagServiceTest method testSearchTagsInvalidParameters.
@Test
public void testSearchTagsInvalidParameters() {
// Try to search tags when there are more than one tag search filter is specified.
try {
tagService.searchTags(new TagSearchRequest(Arrays.asList(new TagSearchFilter(), new TagSearchFilter())), NO_SEARCH_RESPONSE_FIELDS);
fail();
} catch (IllegalArgumentException e) {
assertEquals("At most one tag search filter must be specified.", e.getMessage());
}
// Try to search tags when there are more than one tag search key is specified.
try {
tagService.searchTags(new TagSearchRequest(Arrays.asList(new TagSearchFilter(Arrays.asList(new TagSearchKey(), new TagSearchKey())))), NO_SEARCH_RESPONSE_FIELDS);
fail();
} catch (IllegalArgumentException e) {
assertEquals("Exactly one tag search key must be specified.", e.getMessage());
}
// Try to search tags for a non-existing tag type.
try {
tagService.searchTags(new TagSearchRequest(Arrays.asList(new TagSearchFilter(Arrays.asList(new TagSearchKey("I_DO_NOT_EXIST", NO_PARENT_TAG_CODE, NO_IS_PARENT_TAG_NULL_FLAG))))), NO_SEARCH_RESPONSE_FIELDS);
fail();
} catch (ObjectNotFoundException e) {
assertEquals("Tag type with code \"I_DO_NOT_EXIST\" doesn't exist.", e.getMessage());
}
// Try to search tags using a un-supported search response field option.
try {
tagService.searchTags(new TagSearchRequest(Arrays.asList(new TagSearchFilter(Arrays.asList(new TagSearchKey(TAG_TYPE, NO_PARENT_TAG_CODE, NO_IS_PARENT_TAG_NULL_FLAG))))), Sets.newHashSet("INVALID_FIELD_OPTION"));
fail();
} catch (IllegalArgumentException e) {
assertEquals("Search response field \"invalid_field_option\" is not supported.", e.getMessage());
}
// Try to search tags when parent tag code is specified along with "is parent tag null" flag set to true.
try {
tagService.searchTags(new TagSearchRequest(Arrays.asList(new TagSearchFilter(Arrays.asList(new TagSearchKey(TAG_TYPE, TAG_CODE, PARENT_TAG_IS_NULL))))), NO_SEARCH_RESPONSE_FIELDS);
fail();
} catch (IllegalArgumentException e) {
assertEquals("A parent tag code can not be specified when isParentTagNull flag is set to true.", e.getMessage());
}
}
Aggregations