/** * Creates relative database entities required for the business object data availability service unit tests. */ public void createDatabaseEntitiesForBusinessObjectDataAvailabilityTesting(String partitionKeyGroupName, List<SchemaColumn> columns, List<SchemaColumn> partitionColumns, int partitionColumnPosition, List<String> subPartitionValues, boolean allowDuplicateBusinessObjectData) { createDatabaseEntitiesForBusinessObjectDataAvailabilityTesting(partitionKeyGroupName, columns, partitionColumns, partitionColumnPosition, subPartitionValues, allowDuplicateBusinessObjectData, Arrays.asList(AbstractDaoTest.STORAGE_NAME)); }
/** * Creates relative database entities required for the business object data availability service unit tests. * * @param partitionKeyGroupName the name of the partition key group */ public void createDatabaseEntitiesForBusinessObjectDataAvailabilityTesting(String partitionKeyGroupName) { createDatabaseEntitiesForBusinessObjectDataAvailabilityTesting(partitionKeyGroupName, schemaColumnDaoTestHelper.getTestSchemaColumns(), schemaColumnDaoTestHelper.getTestPartitionColumns(), BusinessObjectDataEntity.FIRST_PARTITION_COLUMN_POSITION, AbstractDaoTest.NO_SUBPARTITION_VALUES, AbstractDaoTest.ALLOW_DUPLICATE_BUSINESS_OBJECT_DATA); }
@Test public void testCheckBusinessObjectDataAvailabilityMultiplePartitionsJson() throws Exception { // Prepare test data. businessObjectDataAvailabilityTestHelper.createDatabaseEntitiesForBusinessObjectDataAvailabilityTesting(null); // Prepare a check business object data availability request. BusinessObjectDataAvailabilityRequest businessObjectDataAvailabilityRequest = businessObjectDataServiceTestHelper.getTestBusinessObjectDataAvailabilityRequest(UNSORTED_PARTITION_VALUES); List<FieldExtension> fieldExtensionList = new ArrayList<>(); fieldExtensionList.add(buildFieldExtension("contentType", "${contentType}")); fieldExtensionList.add(buildFieldExtension("businessObjectDataAvailabilityRequest", "${businessObjectDataAvailabilityRequest}")); List<Parameter> parameters = new ArrayList<>(); parameters.add(buildParameter("contentType", "json")); parameters.add(buildParameter("businessObjectDataAvailabilityRequest", jsonHelper.objectToJson(businessObjectDataAvailabilityRequest))); Map<String, Object> variableValuesToValidate = new HashMap<>(); variableValuesToValidate.put(CheckBusinessObjectDataAvailabilityMultiplePartitions.VARIABLE_IS_ALL_DATA_AVAILABLE, false); variableValuesToValidate.put(BaseJavaDelegate.VARIABLE_JSON_RESPONSE, VARIABLE_VALUE_NOT_NULL); testActivitiServiceTaskSuccess(CheckBusinessObjectDataAvailabilityMultiplePartitions.class.getCanonicalName(), fieldExtensionList, parameters, variableValuesToValidate); }
@Test public void testCheckBusinessObjectDataAvailabilityMultiplePartitionsXml() throws Exception { // Prepare test data. businessObjectDataAvailabilityTestHelper.createDatabaseEntitiesForBusinessObjectDataAvailabilityTesting(null); // Prepare a check business object data availability request. BusinessObjectDataAvailabilityRequest businessObjectDataAvailabilityRequest = businessObjectDataServiceTestHelper.getTestBusinessObjectDataAvailabilityRequest(UNSORTED_PARTITION_VALUES); List<FieldExtension> fieldExtensionList = new ArrayList<>(); fieldExtensionList.add(buildFieldExtension("contentType", "${contentType}")); fieldExtensionList.add(buildFieldExtension("businessObjectDataAvailabilityRequest", "${businessObjectDataAvailabilityRequest}")); List<Parameter> parameters = new ArrayList<>(); parameters.add(buildParameter("contentType", "xml")); parameters.add(buildParameter("businessObjectDataAvailabilityRequest", xmlHelper.objectToXml(businessObjectDataAvailabilityRequest))); Map<String, Object> variableValuesToValidate = new HashMap<>(); variableValuesToValidate.put(CheckBusinessObjectDataAvailabilityMultiplePartitions.VARIABLE_IS_ALL_DATA_AVAILABLE, false); variableValuesToValidate.put(BaseJavaDelegate.VARIABLE_JSON_RESPONSE, VARIABLE_VALUE_NOT_NULL); testActivitiServiceTaskSuccess(CheckBusinessObjectDataAvailabilityMultiplePartitions.class.getCanonicalName(), fieldExtensionList, parameters, variableValuesToValidate); }
@Test public void testCheckBusinessObjectDataAvailabilityMultiplePartitionsXmlAllDataAvailable() throws Exception { // Prepare test data. businessObjectDataAvailabilityTestHelper.createDatabaseEntitiesForBusinessObjectDataAvailabilityTesting(null); // Prepare a check business object data availability request that should result in response with the all business object data being available. BusinessObjectDataAvailabilityRequest businessObjectDataAvailabilityRequest = businessObjectDataServiceTestHelper.getTestBusinessObjectDataAvailabilityRequest(STORAGE_1_AVAILABLE_PARTITION_VALUES); List<FieldExtension> fieldExtensionList = new ArrayList<>(); fieldExtensionList.add(buildFieldExtension("contentType", "${contentType}")); fieldExtensionList.add(buildFieldExtension("businessObjectDataAvailabilityRequest", "${businessObjectDataAvailabilityRequest}")); List<Parameter> parameters = new ArrayList<>(); parameters.add(buildParameter("contentType", "xml")); parameters.add(buildParameter("businessObjectDataAvailabilityRequest", xmlHelper.objectToXml(businessObjectDataAvailabilityRequest))); Map<String, Object> variableValuesToValidate = new HashMap<>(); variableValuesToValidate.put(CheckBusinessObjectDataAvailabilityMultiplePartitions.VARIABLE_IS_ALL_DATA_AVAILABLE, true); variableValuesToValidate.put(BaseJavaDelegate.VARIABLE_JSON_RESPONSE, VARIABLE_VALUE_NOT_NULL); testActivitiServiceTaskSuccess(CheckBusinessObjectDataAvailabilityMultiplePartitions.class.getCanonicalName(), fieldExtensionList, parameters, variableValuesToValidate); }
/** * This method tests the availability activiti task with partition range */ @Test public void testAvailabilityTaskWithPartitionRange() throws Exception { businessObjectDataAvailabilityTestHelper.createDatabaseEntitiesForBusinessObjectDataAvailabilityTesting(PARTITION_KEY_GROUP); expectedPartitionValueDaoTestHelper.createExpectedPartitionValueProcessDatesForApril2014(PARTITION_KEY_GROUP); List<FieldExtension> fieldExtensionList = new ArrayList<>(getMandatoryFields()); fieldExtensionList.add(buildFieldExtension("startPartitionValue", "${startPartitionValue}")); fieldExtensionList.add(buildFieldExtension("endPartitionValue", "${endPartitionValue}")); List<Parameter> parameters = new ArrayList<>(getMandatoryParameters()); parameters.add(buildParameter("startPartitionValue", START_PARTITION_VALUE)); parameters.add(buildParameter("endPartitionValue", END_PARTITION_VALUE)); Map<String, Object> variableValuesToValidate = new HashMap<>(); variableValuesToValidate.put(CheckBusinessObjectDataAvailability.VARIABLE_IS_ALL_DATA_AVAILABLE, Boolean.FALSE); testActivitiServiceTaskSuccess(CheckBusinessObjectDataAvailability.class.getCanonicalName(), fieldExtensionList, parameters, variableValuesToValidate); }
@Test public void testCheckBusinessObjectDataAvailabilityLargePartitionValueListPrimaryPartitionOnly() { final int PRIMARY_PARTITION_VALUES_SIZE = 10000; // Prepare test data. businessObjectDataAvailabilityTestHelper.createDatabaseEntitiesForBusinessObjectDataAvailabilityTesting(null); // Build and execute a business object data availability request with a large list of partition values. List<String> partitionValues = new ArrayList<>(); for (int i = 0; i < PRIMARY_PARTITION_VALUES_SIZE; i++) { partitionValues.add(String.format("%s-%s", PARTITION_VALUE, i)); } partitionValues.addAll(UNSORTED_PARTITION_VALUES); BusinessObjectDataAvailabilityRequest request = businessObjectDataServiceTestHelper.getTestBusinessObjectDataAvailabilityRequest(partitionValues); BusinessObjectDataAvailability resultAvailability = businessObjectDataService.checkBusinessObjectDataAvailability(request); // Validate the results. assertNotNull(resultAvailability); assertEquals(STORAGE_1_AVAILABLE_PARTITION_VALUES.size(), resultAvailability.getAvailableStatuses().size()); assertEquals(partitionValues.size() - STORAGE_1_AVAILABLE_PARTITION_VALUES.size(), resultAvailability.getNotAvailableStatuses().size()); }
/** * This method tests the availability activiti task with partition values */ @Test public void testAvailabilityTaskWithPartitionValues() throws Exception { businessObjectDataAvailabilityTestHelper.createDatabaseEntitiesForBusinessObjectDataAvailabilityTesting(null); List<FieldExtension> fieldExtensionList = new ArrayList<>(getMandatoryFields()); fieldExtensionList.add(buildFieldExtension("businessObjectFormatVersion", "${businessObjectFormatVersion}")); fieldExtensionList.add(buildFieldExtension("partitionKey", "${partitionKey}")); fieldExtensionList.add(buildFieldExtension("partitionValues", "${partitionValues}")); fieldExtensionList.add(buildFieldExtension("businessObjectDataVersion", "${businessObjectDataVersion}")); List<Parameter> parameters = new ArrayList<>(getMandatoryParameters()); parameters.add(buildParameter("businessObjectFormatVersion", FORMAT_VERSION.toString())); parameters.add(buildParameter("partitionKey", FIRST_PARTITION_COLUMN_NAME)); parameters.add(buildParameter("partitionValues", herdStringHelper.buildStringWithDefaultDelimiter(STORAGE_1_AVAILABLE_PARTITION_VALUES))); parameters.add(buildParameter("businessObjectDataVersion", DATA_VERSION.toString())); Map<String, Object> variableValuesToValidate = new HashMap<>(); variableValuesToValidate.put(CheckBusinessObjectDataAvailability.VARIABLE_IS_ALL_DATA_AVAILABLE, Boolean.TRUE); testActivitiServiceTaskSuccess(CheckBusinessObjectDataAvailability.class.getCanonicalName(), fieldExtensionList, parameters, variableValuesToValidate); }
@Test public void testGetBusinessObjectDataMaxMinPartitionValueWhenBusinessObjectFormatKeyDoesNotExist() { // Create database entities required for testing. businessObjectDataAvailabilityTestHelper.createDatabaseEntitiesForBusinessObjectDataAvailabilityTesting(null, new ArrayList<>(), new ArrayList<>(), BusinessObjectDataEntity.FIRST_PARTITION_COLUMN_POSITION, SUBPARTITION_VALUES, ALLOW_DUPLICATE_BUSINESS_OBJECT_DATA); // Create a business object format key that does not exist BusinessObjectFormatKey businessObjectFormatKey = new BusinessObjectFormatKey("NAME_SPACE_VALUE_THAT_DOES_NOT_EXIST", BDEF_NAME, FORMAT_USAGE_CODE, FORMAT_FILE_TYPE_CODE, FORMAT_VERSION); // Get the maximum available partition value - should be null. assertNull(businessObjectDataDao .getBusinessObjectDataMaxPartitionValue(BusinessObjectDataEntity.FIRST_PARTITION_COLUMN_POSITION, businessObjectFormatKey, DATA_VERSION, BusinessObjectDataStatusEntity.VALID, Collections.singletonList(STORAGE_NAME), null, null, null, null)); // Get the minimum available partition value - should be null. assertNull(businessObjectDataDao .getBusinessObjectDataMinPartitionValue(BusinessObjectDataEntity.FIRST_PARTITION_COLUMN_POSITION, businessObjectFormatKey, DATA_VERSION, BusinessObjectDataStatusEntity.VALID, Collections.singletonList(STORAGE_NAME), null, null)); } }
@Test public void testCheckBusinessObjectDataAvailabilityPartitionValueListMinPartitionValueToken() { // Prepare test data. businessObjectDataAvailabilityTestHelper.createDatabaseEntitiesForBusinessObjectDataAvailabilityTesting(null); // Check business object data availability using minimum partition value token. BusinessObjectDataAvailabilityRequest request = businessObjectDataServiceTestHelper.getTestBusinessObjectDataAvailabilityRequest(null); List<PartitionValueFilter> partitionValueFilters = new ArrayList<>(); request.setPartitionValueFilters(partitionValueFilters); partitionValueFilters.add( new PartitionValueFilter(FIRST_PARTITION_COLUMN_NAME, Arrays.asList(BusinessObjectDataService.MIN_PARTITION_VALUE_TOKEN), NO_PARTITION_VALUE_RANGE, NO_LATEST_BEFORE_PARTITION_VALUE, NO_LATEST_AFTER_PARTITION_VALUE)); BusinessObjectDataAvailability resultAvailability = businessObjectDataService.checkBusinessObjectDataAvailability(request); // Validate the results. List<BusinessObjectDataStatus> expectedAvailableStatuses = businessObjectDataServiceTestHelper .getTestBusinessObjectDataStatuses(FORMAT_VERSION, BusinessObjectDataEntity.FIRST_PARTITION_COLUMN_POSITION, Arrays.asList(STORAGE_1_LEAST_PARTITION_VALUE), NO_SUBPARTITION_VALUES, DATA_VERSION, BusinessObjectDataStatusEntity.VALID, false); List<BusinessObjectDataStatus> expectedNotAvailableStatuses = new ArrayList<>(); businessObjectDataServiceTestHelper .validateBusinessObjectDataAvailability(request, expectedAvailableStatuses, expectedNotAvailableStatuses, resultAvailability); }
@Test public void testCheckBusinessObjectDataAvailabilityPartitionValueRangeExpectedPartitionValueMatchesMaxPartitionValueToken() { // Prepare test data with expected partition value set to the maximum partition value token. businessObjectDataAvailabilityTestHelper.createDatabaseEntitiesForBusinessObjectDataAvailabilityTesting(PARTITION_KEY_GROUP); String startPartitionValue = BusinessObjectDataService.MAX_PARTITION_VALUE_TOKEN.replace("maximum", "a"); String endPartitionValue = BusinessObjectDataService.MAX_PARTITION_VALUE_TOKEN.replace("maximum", "z"); expectedPartitionValueDaoTestHelper.createExpectedPartitionValueEntities(PARTITION_KEY_GROUP, Arrays.asList(startPartitionValue, BusinessObjectDataService.MAX_PARTITION_VALUE_TOKEN, endPartitionValue)); // Try to check business object data availability when expected partition value matches to the maximum partition value token. BusinessObjectDataAvailabilityRequest request = businessObjectDataServiceTestHelper.getTestBusinessObjectDataAvailabilityRequest(startPartitionValue, endPartitionValue); try { businessObjectDataService.checkBusinessObjectDataAvailability(request); fail("Should throw an IllegalArgumentException when expected partition value matches to the maximum partition value token."); } catch (IllegalArgumentException e) { assertEquals("A partition value token cannot be specified as one of the expected partition values.", e.getMessage()); } }
@Test public void testCheckBusinessObjectDataAvailabilityPartitionValueListMaxPartitionValueToken() { // Prepare test data. businessObjectDataAvailabilityTestHelper.createDatabaseEntitiesForBusinessObjectDataAvailabilityTesting(null); // Check business object data availability using maximum partition value token. BusinessObjectDataAvailabilityRequest request = businessObjectDataServiceTestHelper.getTestBusinessObjectDataAvailabilityRequest(null); List<PartitionValueFilter> partitionValueFilters = new ArrayList<>(); request.setPartitionValueFilters(partitionValueFilters); partitionValueFilters.add( new PartitionValueFilter(FIRST_PARTITION_COLUMN_NAME, Arrays.asList(BusinessObjectDataService.MAX_PARTITION_VALUE_TOKEN), NO_PARTITION_VALUE_RANGE, NO_LATEST_BEFORE_PARTITION_VALUE, NO_LATEST_AFTER_PARTITION_VALUE)); BusinessObjectDataAvailability resultAvailability = businessObjectDataService.checkBusinessObjectDataAvailability(request); // Validate the results. List<BusinessObjectDataStatus> expectedAvailableStatuses = businessObjectDataServiceTestHelper .getTestBusinessObjectDataStatuses(FORMAT_VERSION, BusinessObjectDataEntity.FIRST_PARTITION_COLUMN_POSITION, Arrays.asList(STORAGE_1_GREATEST_PARTITION_VALUE), NO_SUBPARTITION_VALUES, DATA_VERSION, BusinessObjectDataStatusEntity.VALID, false); List<BusinessObjectDataStatus> expectedNotAvailableStatuses = new ArrayList<>(); businessObjectDataServiceTestHelper .validateBusinessObjectDataAvailability(request, expectedAvailableStatuses, expectedNotAvailableStatuses, resultAvailability); }
@Test public void testCheckBusinessObjectDataAvailabilityPartitionValueRangeExpectedPartitionValueMatchesMinPartitionValueToken() { // Prepare test data with expected partition value set to minimum partition value token. businessObjectDataAvailabilityTestHelper.createDatabaseEntitiesForBusinessObjectDataAvailabilityTesting(PARTITION_KEY_GROUP); String startPartitionValue = BusinessObjectDataService.MIN_PARTITION_VALUE_TOKEN.replace("minimum", "a"); String endPartitionValue = BusinessObjectDataService.MIN_PARTITION_VALUE_TOKEN.replace("minimum", "z"); expectedPartitionValueDaoTestHelper.createExpectedPartitionValueEntities(PARTITION_KEY_GROUP, Arrays.asList(startPartitionValue, BusinessObjectDataService.MIN_PARTITION_VALUE_TOKEN, endPartitionValue)); // Try to check business object data availability when expected partition value matches to the maximum partition value token. BusinessObjectDataAvailabilityRequest request = businessObjectDataServiceTestHelper.getTestBusinessObjectDataAvailabilityRequest(startPartitionValue, endPartitionValue); try { businessObjectDataService.checkBusinessObjectDataAvailability(request); fail("Should throw an IllegalArgumentException when expected partition value matches to the minimum partition value token."); } catch (IllegalArgumentException e) { assertEquals("A partition value token cannot be specified as one of the expected partition values.", e.getMessage()); } }
@Test public void testGetBusinessObjectDataPartitionValue() { // Create database entities required for testing. businessObjectDataAvailabilityTestHelper.createDatabaseEntitiesForBusinessObjectDataAvailabilityTesting(null, new ArrayList<>(), new ArrayList<>(), BusinessObjectDataEntity.FIRST_PARTITION_COLUMN_POSITION, SUBPARTITION_VALUES, ALLOW_DUPLICATE_BUSINESS_OBJECT_DATA); BusinessObjectFormatKey businessObjectFormatKey = new BusinessObjectFormatKey(NAMESPACE, BDEF_NAME, FORMAT_USAGE_CODE, FORMAT_FILE_TYPE_CODE, FORMAT_VERSION); // Get the maximum available partition value. assertEquals(STORAGE_1_GREATEST_PARTITION_VALUE, businessObjectDataDao .getBusinessObjectDataMaxPartitionValue(BusinessObjectDataEntity.FIRST_PARTITION_COLUMN_POSITION, businessObjectFormatKey, DATA_VERSION, BusinessObjectDataStatusEntity.VALID, Collections.singletonList(STORAGE_NAME), null, null, null, null)); // Get the minimum available partition value. assertEquals(STORAGE_1_LEAST_PARTITION_VALUE, businessObjectDataDao .getBusinessObjectDataMinPartitionValue(BusinessObjectDataEntity.FIRST_PARTITION_COLUMN_POSITION, businessObjectFormatKey, DATA_VERSION, BusinessObjectDataStatusEntity.VALID, Collections.singletonList(STORAGE_NAME), null, null)); // Get the maximum available partition value by not passing any of the optional parameters. assertEquals(STORAGE_1_GREATEST_PARTITION_VALUE, businessObjectDataDao .getBusinessObjectDataMaxPartitionValue(BusinessObjectDataEntity.FIRST_PARTITION_COLUMN_POSITION, new BusinessObjectFormatKey(NAMESPACE, BDEF_NAME, FORMAT_USAGE_CODE, FORMAT_FILE_TYPE_CODE, null), null, null, Collections.singletonList(STORAGE_NAME), null, null, null, null)); }
@Test public void testCheckBusinessObjectDataAvailabilityMultipleStorages() { // Create database entities required for testing. businessObjectDataAvailabilityTestHelper.createDatabaseEntitiesForBusinessObjectDataAvailabilityTesting(null, new ArrayList<>(), new ArrayList<>(), BusinessObjectDataEntity.FIRST_PARTITION_COLUMN_POSITION, SUBPARTITION_VALUES, ALLOW_DUPLICATE_BUSINESS_OBJECT_DATA); // Check business object data availability in multiple storages. BusinessObjectDataAvailability resultBusinessObjectDataAvailability = businessObjectDataService.checkBusinessObjectDataAvailability( new BusinessObjectDataAvailabilityRequest(NAMESPACE, BDEF_NAME, FORMAT_USAGE_CODE, FORMAT_FILE_TYPE_CODE, FORMAT_VERSION, Arrays.asList( new PartitionValueFilter(PARTITION_KEY, UNSORTED_PARTITION_VALUES, NO_PARTITION_VALUE_RANGE, NO_LATEST_BEFORE_PARTITION_VALUE, NO_LATEST_AFTER_PARTITION_VALUE)), null, DATA_VERSION, STORAGE_NAMES, NO_STORAGE_NAME, NO_INCLUDE_ALL_REGISTERED_SUBPARTITIONS)); // Validate the response object. assertEquals(new BusinessObjectDataAvailability(NAMESPACE, BDEF_NAME, FORMAT_USAGE_CODE, FORMAT_FILE_TYPE_CODE, FORMAT_VERSION, Arrays.asList( new PartitionValueFilter(PARTITION_KEY, UNSORTED_PARTITION_VALUES, NO_PARTITION_VALUE_RANGE, NO_LATEST_BEFORE_PARTITION_VALUE, NO_LATEST_AFTER_PARTITION_VALUE)), null, DATA_VERSION, STORAGE_NAMES, NO_STORAGE_NAME, businessObjectDataServiceTestHelper .getTestBusinessObjectDataStatuses(FORMAT_VERSION, BusinessObjectDataEntity.FIRST_PARTITION_COLUMN_POSITION, MULTI_STORAGE_AVAILABLE_PARTITION_VALUES_UNION, SUBPARTITION_VALUES, DATA_VERSION, BusinessObjectDataStatusEntity.VALID, false), businessObjectDataServiceTestHelper.getTestBusinessObjectDataStatuses(FORMAT_VERSION, BusinessObjectDataEntity.FIRST_PARTITION_COLUMN_POSITION, MULTI_STORAGE_NOT_AVAILABLE_PARTITION_VALUES, null, DATA_VERSION, BusinessObjectDataServiceImpl.REASON_NOT_REGISTERED, false)), resultBusinessObjectDataAvailability); }
@Test public void testCheckBusinessObjectDataAvailabilityLowerCaseParameters() { // Prepare test data and execute the check business object data availability request // with all parameter values in lower case (except for case-sensitive partition values). businessObjectDataAvailabilityTestHelper.createDatabaseEntitiesForBusinessObjectDataAvailabilityTesting(null); BusinessObjectDataAvailabilityRequest request = businessObjectDataServiceTestHelper.getTestBusinessObjectDataAvailabilityRequest(UNSORTED_PARTITION_VALUES); request.setBusinessObjectDefinitionName(request.getBusinessObjectDefinitionName().toLowerCase()); request.setBusinessObjectFormatUsage(request.getBusinessObjectFormatUsage().toLowerCase()); request.setBusinessObjectFormatFileType(request.getBusinessObjectFormatFileType().toLowerCase()); request.getPartitionValueFilters().get(0).setPartitionKey(request.getPartitionValueFilters().get(0).getPartitionKey().toLowerCase()); request.setStorageName(request.getStorageName().toLowerCase()); BusinessObjectDataAvailability resultAvailability = businessObjectDataService.checkBusinessObjectDataAvailability(request); // Validate the results. List<BusinessObjectDataStatus> expectedAvailableStatuses = businessObjectDataServiceTestHelper .getTestBusinessObjectDataStatuses(FORMAT_VERSION, BusinessObjectDataEntity.FIRST_PARTITION_COLUMN_POSITION, STORAGE_1_AVAILABLE_PARTITION_VALUES, NO_SUBPARTITION_VALUES, DATA_VERSION, BusinessObjectDataStatusEntity.VALID, false); List<BusinessObjectDataStatus> expectedNotAvailableStatuses = businessObjectDataServiceTestHelper .getTestBusinessObjectDataStatuses(FORMAT_VERSION, BusinessObjectDataEntity.FIRST_PARTITION_COLUMN_POSITION, STORAGE_1_NOT_AVAILABLE_PARTITION_VALUES, null, DATA_VERSION, BusinessObjectDataServiceImpl.REASON_NOT_REGISTERED, false); businessObjectDataServiceTestHelper .validateBusinessObjectDataAvailability(request, expectedAvailableStatuses, expectedNotAvailableStatuses, resultAvailability); }
@Test public void testCheckBusinessObjectDataAvailabilityPartitionValueList() { // Prepare test data and execute the check business object data availability request. businessObjectDataAvailabilityTestHelper.createDatabaseEntitiesForBusinessObjectDataAvailabilityTesting(null); BusinessObjectDataAvailabilityRequest request = businessObjectDataServiceTestHelper.getTestBusinessObjectDataAvailabilityRequest(UNSORTED_PARTITION_VALUES); BusinessObjectDataAvailability resultAvailability = businessObjectDataService.checkBusinessObjectDataAvailability(request); // Validate the results. List<BusinessObjectDataStatus> expectedAvailableStatuses = businessObjectDataServiceTestHelper .getTestBusinessObjectDataStatuses(FORMAT_VERSION, BusinessObjectDataEntity.FIRST_PARTITION_COLUMN_POSITION, STORAGE_1_AVAILABLE_PARTITION_VALUES, NO_SUBPARTITION_VALUES, DATA_VERSION, BusinessObjectDataStatusEntity.VALID, false); List<BusinessObjectDataStatus> expectedNotAvailableStatuses = businessObjectDataServiceTestHelper .getTestBusinessObjectDataStatuses(FORMAT_VERSION, BusinessObjectDataEntity.FIRST_PARTITION_COLUMN_POSITION, STORAGE_1_NOT_AVAILABLE_PARTITION_VALUES, null, DATA_VERSION, BusinessObjectDataServiceImpl.REASON_NOT_REGISTERED, false); businessObjectDataServiceTestHelper .validateBusinessObjectDataAvailability(request, expectedAvailableStatuses, expectedNotAvailableStatuses, resultAvailability); }
@Test public void testCheckBusinessObjectDataAvailabilityNoStorageUnitExists() { // Prepare test data and execute the check business object data availability request. businessObjectDataAvailabilityTestHelper.createDatabaseEntitiesForBusinessObjectDataAvailabilityTesting(null); BusinessObjectDataAvailabilityRequest request = businessObjectDataServiceTestHelper.getTestBusinessObjectDataAvailabilityRequest(STORAGE_1_NOT_AVAILABLE_PARTITION_VALUES); BusinessObjectDataAvailability resultAvailability = businessObjectDataService.checkBusinessObjectDataAvailability(request); // Validate the results. List<BusinessObjectDataStatus> expectedAvailableStatuses = businessObjectDataServiceTestHelper.getTestBusinessObjectDataStatuses(FORMAT_VERSION, 0, null, null, DATA_VERSION, null, false); List<BusinessObjectDataStatus> expectedNotAvailableStatuses = businessObjectDataServiceTestHelper .getTestBusinessObjectDataStatuses(FORMAT_VERSION, BusinessObjectDataEntity.FIRST_PARTITION_COLUMN_POSITION, STORAGE_1_NOT_AVAILABLE_PARTITION_VALUES, null, DATA_VERSION, BusinessObjectDataServiceImpl.REASON_NOT_REGISTERED, false); businessObjectDataServiceTestHelper .validateBusinessObjectDataAvailability(request, expectedAvailableStatuses, expectedNotAvailableStatuses, resultAvailability); }
@Test public void testCheckBusinessObjectDataAvailabilityPartitionValueListStandalonePartitionValueFilter() { // Prepare test data and execute the check business object data availability request with a standalone partition value filter. businessObjectDataAvailabilityTestHelper.createDatabaseEntitiesForBusinessObjectDataAvailabilityTesting(null); BusinessObjectDataAvailabilityRequest request = businessObjectDataServiceTestHelper.getTestBusinessObjectDataAvailabilityRequest(UNSORTED_PARTITION_VALUES); request.setPartitionValueFilter(request.getPartitionValueFilters().get(0)); request.setPartitionValueFilters(null); BusinessObjectDataAvailability resultAvailability = businessObjectDataService.checkBusinessObjectDataAvailability(request); // Validate the results. List<BusinessObjectDataStatus> expectedAvailableStatuses = businessObjectDataServiceTestHelper .getTestBusinessObjectDataStatuses(FORMAT_VERSION, BusinessObjectDataEntity.FIRST_PARTITION_COLUMN_POSITION, STORAGE_1_AVAILABLE_PARTITION_VALUES, NO_SUBPARTITION_VALUES, DATA_VERSION, BusinessObjectDataStatusEntity.VALID, false); List<BusinessObjectDataStatus> expectedNotAvailableStatuses = businessObjectDataServiceTestHelper .getTestBusinessObjectDataStatuses(FORMAT_VERSION, BusinessObjectDataEntity.FIRST_PARTITION_COLUMN_POSITION, STORAGE_1_NOT_AVAILABLE_PARTITION_VALUES, null, DATA_VERSION, BusinessObjectDataServiceImpl.REASON_NOT_REGISTERED, true); businessObjectDataServiceTestHelper .validateBusinessObjectDataAvailability(request, expectedAvailableStatuses, expectedNotAvailableStatuses, resultAvailability); }
@Test public void testCheckBusinessObjectDataAvailabilityMissingFormatVersion() { // Prepare test data and execute the check business object data availability request with only business object format version missing. businessObjectDataAvailabilityTestHelper.createDatabaseEntitiesForBusinessObjectDataAvailabilityTesting(null); BusinessObjectDataAvailabilityRequest request = businessObjectDataServiceTestHelper.getTestBusinessObjectDataAvailabilityRequest(UNSORTED_PARTITION_VALUES); request.setBusinessObjectFormatVersion(null); BusinessObjectDataAvailability resultAvailability = businessObjectDataService.checkBusinessObjectDataAvailability(request); // Validate the results. List<BusinessObjectDataStatus> expectedAvailableStatuses = businessObjectDataServiceTestHelper .getTestBusinessObjectDataStatuses(FORMAT_VERSION, BusinessObjectDataEntity.FIRST_PARTITION_COLUMN_POSITION, STORAGE_1_AVAILABLE_PARTITION_VALUES, NO_SUBPARTITION_VALUES, DATA_VERSION, BusinessObjectDataStatusEntity.VALID, false); List<BusinessObjectDataStatus> expectedNotAvailableStatuses = businessObjectDataServiceTestHelper .getTestBusinessObjectDataStatuses(null, BusinessObjectDataEntity.FIRST_PARTITION_COLUMN_POSITION, STORAGE_1_NOT_AVAILABLE_PARTITION_VALUES, null, DATA_VERSION, BusinessObjectDataServiceImpl.REASON_NOT_REGISTERED, false); businessObjectDataServiceTestHelper .validateBusinessObjectDataAvailability(request, expectedAvailableStatuses, expectedNotAvailableStatuses, resultAvailability); }