use of org.finra.herd.model.api.xml.BusinessObjectDefinitionSearchKey in project herd by FINRAOS.
the class BusinessObjectDefinitionServiceTest method testSearchBusinessObjectDefinitionsMissingOptionalParams.
@Test
public void testSearchBusinessObjectDefinitionsMissingOptionalParams() {
// Set up test data.
Set<BusinessObjectDefinition> expectedBusinessObjectDefinitions = setUpTestEntitiesForSearchTesting();
// Remove fields which are not expected from the expected business object definition objects.
for (BusinessObjectDefinition businessObjectDefinition : expectedBusinessObjectDefinitions) {
businessObjectDefinition.setDisplayName(null);
businessObjectDefinition.setShortDescription(null);
businessObjectDefinition.setDataProviderName(null);
}
// Retrieve the actual business object definition objects from the search response.
// Fields are required to have a blank text value because that is set by default in the controller.
BusinessObjectDefinitionSearchResponse searchResponse = businessObjectDefinitionService.searchBusinessObjectDefinitions(new BusinessObjectDefinitionSearchRequest(Arrays.asList(new BusinessObjectDefinitionSearchFilter(NO_EXCLUSION_SEARCH_FILTER, Arrays.asList(new BusinessObjectDefinitionSearchKey(new TagKey(TAG_TYPE, TAG_CODE), INCLUDE_TAG_HIERARCHY))))), Sets.newHashSet(BLANK_TEXT));
Set<BusinessObjectDefinition> actualBusinessObjectDefinitions = new HashSet<>(searchResponse.getBusinessObjectDefinitions());
assertEquals(actualBusinessObjectDefinitions, expectedBusinessObjectDefinitions);
}
use of org.finra.herd.model.api.xml.BusinessObjectDefinitionSearchKey in project herd by FINRAOS.
the class BusinessObjectDefinitionServiceTest method testSearchBusinessObjectDefinitionsOnlyShortDescriptionAndDataProviderName.
@Test
public void testSearchBusinessObjectDefinitionsOnlyShortDescriptionAndDataProviderName() {
// Set up test data.
Set<BusinessObjectDefinition> expectedBusinessObjectDefinitions = setUpTestEntitiesForSearchTesting();
// Remove fields which are not expected from the expected business object definition objects.
for (BusinessObjectDefinition businessObjectDefinition : expectedBusinessObjectDefinitions) {
businessObjectDefinition.setDisplayName(null);
}
// Retrieve the actual business object definition objects from the search response.
BusinessObjectDefinitionSearchResponse searchResponse = businessObjectDefinitionService.searchBusinessObjectDefinitions(new BusinessObjectDefinitionSearchRequest(Arrays.asList(new BusinessObjectDefinitionSearchFilter(NO_EXCLUSION_SEARCH_FILTER, Arrays.asList(new BusinessObjectDefinitionSearchKey(new TagKey(TAG_TYPE, TAG_CODE), INCLUDE_TAG_HIERARCHY))))), Sets.newHashSet(FIELD_SHORT_DESCRIPTION, FIELD_DATA_PROVIDER_NAME));
Set<BusinessObjectDefinition> actualBusinessObjectDefinitions = new HashSet<>(searchResponse.getBusinessObjectDefinitions());
assertEquals(actualBusinessObjectDefinitions, expectedBusinessObjectDefinitions);
}
use of org.finra.herd.model.api.xml.BusinessObjectDefinitionSearchKey in project herd by FINRAOS.
the class BusinessObjectDefinitionServiceTest method testSearchBusinessObjectDefinitionsUpperCaseParams.
@Test
public void testSearchBusinessObjectDefinitionsUpperCaseParams() {
// Set up test data.
Set<BusinessObjectDefinition> expectedBusinessObjectDefinitions = setUpTestEntitiesForSearchTesting();
// Retrieve the actual business object definition objects from the search response.
BusinessObjectDefinitionSearchResponse searchResponse = businessObjectDefinitionService.searchBusinessObjectDefinitions(new BusinessObjectDefinitionSearchRequest(Arrays.asList(new BusinessObjectDefinitionSearchFilter(NO_EXCLUSION_SEARCH_FILTER, Arrays.asList(new BusinessObjectDefinitionSearchKey(new TagKey(TAG_TYPE, TAG_CODE), INCLUDE_TAG_HIERARCHY))))), Sets.newHashSet(FIELD_DATA_PROVIDER_NAME.toUpperCase(), FIELD_DISPLAY_NAME.toUpperCase(), FIELD_SHORT_DESCRIPTION.toUpperCase()));
Set<BusinessObjectDefinition> actualBusinessObjectDefinitions = new HashSet<>(searchResponse.getBusinessObjectDefinitions());
assertEquals(expectedBusinessObjectDefinitions, actualBusinessObjectDefinitions);
}
use of org.finra.herd.model.api.xml.BusinessObjectDefinitionSearchKey in project herd by FINRAOS.
the class BusinessObjectDefinitionServiceTest method testSearchBusinessObjectDefinitionsOnlyDisplayName.
@Test
public void testSearchBusinessObjectDefinitionsOnlyDisplayName() {
// Set up test data.
Set<BusinessObjectDefinition> expectedBusinessObjectDefinitions = setUpTestEntitiesForSearchTesting();
// Remove fields which are not expected from the expected business object definition objects.
for (BusinessObjectDefinition businessObjectDefinition : expectedBusinessObjectDefinitions) {
businessObjectDefinition.setShortDescription(null);
businessObjectDefinition.setDataProviderName(null);
}
// Retrieve the actual business object definition objects from the search response.
BusinessObjectDefinitionSearchResponse searchResponse = businessObjectDefinitionService.searchBusinessObjectDefinitions(new BusinessObjectDefinitionSearchRequest(Arrays.asList(new BusinessObjectDefinitionSearchFilter(NO_EXCLUSION_SEARCH_FILTER, Arrays.asList(new BusinessObjectDefinitionSearchKey(new TagKey(TAG_TYPE, TAG_CODE), INCLUDE_TAG_HIERARCHY))))), Sets.newHashSet(FIELD_DISPLAY_NAME));
Set<BusinessObjectDefinition> actualBusinessObjectDefinitions = new HashSet<>(searchResponse.getBusinessObjectDefinitions());
assertEquals(actualBusinessObjectDefinitions, expectedBusinessObjectDefinitions);
}
use of org.finra.herd.model.api.xml.BusinessObjectDefinitionSearchKey in project herd by FINRAOS.
the class BusinessObjectDefinitionServiceIndexTest method testIndexSearchBusinessObjectDefinitionsWithMultipleTagsDoNotIncludeTagHierarchy.
@Test
public void testIndexSearchBusinessObjectDefinitionsWithMultipleTagsDoNotIncludeTagHierarchy() {
// Create new tag keys
TagKey tagKey = new TagKey(TAG_TYPE, TAG_CODE);
TagKey tagKeyTwo = new TagKey(TAG_TYPE_2, TAG_CODE_2);
// Create a new business object definition search key for use in the business object definition search key list
BusinessObjectDefinitionSearchKey businessObjectDefinitionSearchKey = new BusinessObjectDefinitionSearchKey(tagKey, NOT_INCLUDE_TAG_HIERARCHY);
// Create another new business object definition search key for use in the business object definition search key list
BusinessObjectDefinitionSearchKey businessObjectDefinitionSearchKeyTwo = new BusinessObjectDefinitionSearchKey(tagKeyTwo, NOT_INCLUDE_TAG_HIERARCHY);
// Create a new business object definition search key list with both the tag keys and the include tag hierarchy boolean flag
List<BusinessObjectDefinitionSearchKey> businessObjectDefinitionSearchKeyList = new ArrayList<>();
businessObjectDefinitionSearchKeyList.add(businessObjectDefinitionSearchKey);
businessObjectDefinitionSearchKeyList.add(businessObjectDefinitionSearchKeyTwo);
// Create a new business object definition search filter list with the new business object definition search key list
List<BusinessObjectDefinitionSearchFilter> businessObjectDefinitionSearchFilterList = new ArrayList<>();
businessObjectDefinitionSearchFilterList.add(new BusinessObjectDefinitionSearchFilter(NO_EXCLUSION_SEARCH_FILTER, businessObjectDefinitionSearchKeyList));
// Create a new business object definition search request that will be used when testing the index search business object definitions method
BusinessObjectDefinitionIndexSearchRequest businessObjectDefinitionIndexSearchRequest = new BusinessObjectDefinitionIndexSearchRequest(businessObjectDefinitionSearchFilterList, new ArrayList<>());
// Create a new fields set that will be used when testing the index search business object definitions method
Set<String> fields = Sets.newHashSet(FIELD_DATA_PROVIDER_NAME, FIELD_DISPLAY_NAME, FIELD_SHORT_DESCRIPTION);
// Create a tag entity to return from the tag dao helper get tag entity method
TagEntity tagEntity = new TagEntity();
tagEntity.setTagCode(TAG_CODE);
// Create a tag entity to return from the tag dao helper get tag entity method
TagEntity tagEntityTwo = new TagEntity();
tagEntity.setTagCode(TAG_CODE_2);
List<BusinessObjectDefinitionIndexSearchResponseDto> businessObjectDefinitionIndexSearchResponseDtoList = new ArrayList<>();
BusinessObjectDefinitionIndexSearchResponseDto businessObjectDefinitionIndexSearchResponseDto1 = new BusinessObjectDefinitionIndexSearchResponseDto(new DataProvider(DATA_PROVIDER_NAME), BDEF_DESCRIPTION, BDEF_DISPLAY_NAME, BDEF_NAME, new Namespace(NAMESPACE));
BusinessObjectDefinitionIndexSearchResponseDto businessObjectDefinitionIndexSearchResponseDto2 = new BusinessObjectDefinitionIndexSearchResponseDto(new DataProvider(DATA_PROVIDER_NAME_2), BDEF_DESCRIPTION_2, BDEF_DISPLAY_NAME_2, BDEF_NAME_2, new Namespace(NAMESPACE));
businessObjectDefinitionIndexSearchResponseDtoList.add(businessObjectDefinitionIndexSearchResponseDto1);
businessObjectDefinitionIndexSearchResponseDtoList.add(businessObjectDefinitionIndexSearchResponseDto2);
ElasticsearchResponseDto elasticsearchResponseDto = new ElasticsearchResponseDto();
elasticsearchResponseDto.setBusinessObjectDefinitionIndexSearchResponseDtos(businessObjectDefinitionIndexSearchResponseDtoList);
// Mock the call to external methods
when(configurationHelper.getProperty(ConfigurationValue.BUSINESS_OBJECT_DEFINITION_SHORT_DESCRIPTION_LENGTH, Integer.class)).thenReturn(SHORT_DESCRIPTION_LENGTH);
when(searchIndexDaoHelper.getActiveSearchIndex(SEARCH_INDEX_TYPE_BDEF)).thenReturn(SEARCH_INDEX_NAME);
when(configurationHelper.getProperty(ConfigurationValue.ELASTICSEARCH_BDEF_DOCUMENT_TYPE, String.class)).thenReturn(SEARCH_INDEX_DOCUMENT_TYPE);
when(tagDaoHelper.getTagEntity(businessObjectDefinitionSearchKey.getTagKey())).thenReturn(tagEntity);
when(tagDaoHelper.getTagEntity(businessObjectDefinitionSearchKeyTwo.getTagKey())).thenReturn(tagEntityTwo);
when(businessObjectDefinitionIndexSearchDao.searchBusinessObjectDefinitionsByTags(any(), any(), any(), any())).thenReturn(elasticsearchResponseDto);
// Call the method under test
BusinessObjectDefinitionIndexSearchResponse businessObjectDefinitionSearchResponse = businessObjectDefinitionService.indexSearchBusinessObjectDefinitions(businessObjectDefinitionIndexSearchRequest, fields);
assertThat("Business object definition service index search business object definitions method response is null, but it should not be.", businessObjectDefinitionSearchResponse, not(nullValue()));
assertThat("The first business object definition name in the search response is not correct.", businessObjectDefinitionSearchResponse.getBusinessObjectDefinitions().get(0).getBusinessObjectDefinitionName(), is(BDEF_NAME));
assertThat("The second business object definition name in the search response is not correct.", businessObjectDefinitionSearchResponse.getBusinessObjectDefinitions().get(1).getBusinessObjectDefinitionName(), is(BDEF_NAME_2));
// Verify the calls to external methods
verify(configurationHelper, times(2)).getProperty(ConfigurationValue.BUSINESS_OBJECT_DEFINITION_SHORT_DESCRIPTION_LENGTH, Integer.class);
verify(searchIndexDaoHelper).getActiveSearchIndex(SEARCH_INDEX_TYPE_BDEF);
verify(configurationHelper).getProperty(ConfigurationValue.ELASTICSEARCH_BDEF_DOCUMENT_TYPE, String.class);
verify(tagHelper).validateTagKey(businessObjectDefinitionSearchKey.getTagKey());
verify(tagHelper).validateTagKey(businessObjectDefinitionSearchKeyTwo.getTagKey());
verify(tagDaoHelper).getTagEntity(businessObjectDefinitionSearchKey.getTagKey());
verify(tagDaoHelper).getTagEntity(businessObjectDefinitionSearchKeyTwo.getTagKey());
verify(businessObjectDefinitionIndexSearchDao).searchBusinessObjectDefinitionsByTags(any(), any(), any(), any());
verifyNoMoreInteractionsHelper();
}
Aggregations