use of org.finra.herd.model.api.xml.BusinessObjectFormatRetentionInformationUpdateRequest in project herd by FINRAOS.
the class BusinessObjectFormatServiceTest method testUpdateBusinessObjectFormatRetention.
@Test
public void testUpdateBusinessObjectFormatRetention() {
// Create an initial version of a business object format with format description and schema information.
BusinessObjectFormat originalBusinessObjectFormat = businessObjectFormatServiceTestHelper.createTestBusinessObjectFormat(businessObjectDefinitionServiceTestHelper.getNewAttributes());
Boolean recordFlag = true;
Integer retentionPeriodInDays = new Integer(RETENTION_PERIOD_DAYS);
String retentionType = RetentionTypeEntity.PARTITION_VALUE;
BusinessObjectFormatRetentionInformationUpdateRequest updateRequest = new BusinessObjectFormatRetentionInformationUpdateRequest();
updateRequest.setRetentionType(retentionType);
updateRequest.setRecordFlag(recordFlag);
updateRequest.setRetentionPeriodInDays(retentionPeriodInDays);
BusinessObjectFormat updatedBusinessObjectFormat = businessObjectFormatService.updateBusinessObjectFormatRetentionInformation(new BusinessObjectFormatKey(NAMESPACE, BDEF_NAME, FORMAT_USAGE_CODE, FORMAT_FILE_TYPE_CODE, null), updateRequest);
businessObjectFormatServiceTestHelper.validateRetentionInformation(recordFlag, retentionPeriodInDays, retentionType, updatedBusinessObjectFormat);
// reset the retention information
recordFlag = false;
retentionPeriodInDays = null;
retentionType = null;
updateRequest = new BusinessObjectFormatRetentionInformationUpdateRequest();
updateRequest.setRetentionType(retentionType);
updateRequest.setRecordFlag(recordFlag);
updateRequest.setRetentionPeriodInDays(retentionPeriodInDays);
updatedBusinessObjectFormat = businessObjectFormatService.updateBusinessObjectFormatRetentionInformation(new BusinessObjectFormatKey(NAMESPACE, BDEF_NAME, FORMAT_USAGE_CODE, FORMAT_FILE_TYPE_CODE, null), updateRequest);
businessObjectFormatServiceTestHelper.validateRetentionInformation(false, retentionPeriodInDays, retentionType, updatedBusinessObjectFormat);
}
use of org.finra.herd.model.api.xml.BusinessObjectFormatRetentionInformationUpdateRequest in project herd by FINRAOS.
the class BusinessObjectFormatServiceTest method testUpdateBusinessObjectFormatRetentionValidation.
@Test
public void testUpdateBusinessObjectFormatRetentionValidation() {
// Create an initial version of a business object format with format description and schema information.
BusinessObjectFormat originalBusinessObjectFormat = businessObjectFormatServiceTestHelper.createTestBusinessObjectFormat(businessObjectDefinitionServiceTestHelper.getNewAttributes());
// withNullUpdateRequest
try {
businessObjectFormatService.updateBusinessObjectFormatRetentionInformation(new BusinessObjectFormatKey(NAMESPACE, BDEF_NAME, FORMAT_USAGE_CODE, FORMAT_FILE_TYPE_CODE, null), null);
fail("should throw IllegalArgumentException before");
} catch (IllegalArgumentException ex) {
assertEquals("A Business Object Format Retention Information Update Request is required.", ex.getMessage());
}
// withNullRetenionPeriods
Boolean recordFlag = true;
Integer retentionPeriodInDays = null;
String retentionType = RetentionTypeEntity.PARTITION_VALUE;
;
BusinessObjectFormatRetentionInformationUpdateRequest updateRequest = new BusinessObjectFormatRetentionInformationUpdateRequest();
updateRequest.setRetentionType(retentionType);
updateRequest.setRecordFlag(recordFlag);
updateRequest.setRetentionPeriodInDays(retentionPeriodInDays);
try {
businessObjectFormatService.updateBusinessObjectFormatRetentionInformation(new BusinessObjectFormatKey(NAMESPACE, BDEF_NAME, FORMAT_USAGE_CODE, FORMAT_FILE_TYPE_CODE, null), updateRequest);
fail("should throw IllegalArgumentException before");
} catch (IllegalArgumentException ex) {
assertEquals("A retention period in days must be specified when retention type is present.", ex.getMessage());
}
// withWrongRetentionPeriods
recordFlag = true;
retentionPeriodInDays = new Integer(-180);
retentionType = RetentionTypeEntity.PARTITION_VALUE;
;
updateRequest = new BusinessObjectFormatRetentionInformationUpdateRequest();
updateRequest.setRetentionType(retentionType);
updateRequest.setRecordFlag(recordFlag);
updateRequest.setRetentionPeriodInDays(retentionPeriodInDays);
try {
businessObjectFormatService.updateBusinessObjectFormatRetentionInformation(new BusinessObjectFormatKey(NAMESPACE, BDEF_NAME, FORMAT_USAGE_CODE, FORMAT_FILE_TYPE_CODE, null), updateRequest);
fail("should throw IllegalArgumentException before");
} catch (IllegalArgumentException ex) {
assertEquals("A positive retention period in days must be specified.", ex.getMessage());
}
// withNullRecordFlag
recordFlag = null;
retentionPeriodInDays = new Integer(180);
retentionType = RetentionTypeEntity.PARTITION_VALUE;
;
updateRequest = new BusinessObjectFormatRetentionInformationUpdateRequest();
updateRequest.setRetentionType(retentionType);
updateRequest.setRecordFlag(recordFlag);
updateRequest.setRetentionPeriodInDays(retentionPeriodInDays);
try {
businessObjectFormatService.updateBusinessObjectFormatRetentionInformation(new BusinessObjectFormatKey(NAMESPACE, BDEF_NAME, FORMAT_USAGE_CODE, FORMAT_FILE_TYPE_CODE, null), updateRequest);
fail("should throw IllegalArgumentException before");
} catch (IllegalArgumentException ex) {
assertEquals("A Record Flag in Business Object Format Retention Information Update Request is required.", ex.getMessage());
}
}
use of org.finra.herd.model.api.xml.BusinessObjectFormatRetentionInformationUpdateRequest in project herd by FINRAOS.
the class BusinessObjectFormatRestControllerTest method testUpdateBusinessObjectRetentionInformation.
@Test
public void testUpdateBusinessObjectRetentionInformation() {
BusinessObjectFormatKey businessObjectFormatKey = new BusinessObjectFormatKey(NAMESPACE, BDEF_NAME, FORMAT_USAGE_CODE, FORMAT_FILE_TYPE_CODE, null);
BusinessObjectFormatRetentionInformationUpdateRequest updateRequest = new BusinessObjectFormatRetentionInformationUpdateRequest();
updateRequest.setRetentionType(RetentionTypeEntity.PARTITION_VALUE);
updateRequest.setRecordFlag(true);
updateRequest.setRetentionPeriodInDays(RETENTION_PERIOD_DAYS);
BusinessObjectFormat businessObjectFormat = new BusinessObjectFormat();
when(businessObjectFormatService.updateBusinessObjectFormatRetentionInformation(businessObjectFormatKey, updateRequest)).thenReturn(businessObjectFormat);
BusinessObjectFormat updatedBusinessObjectFormat = businessObjectFormatRestController.updateBusinessObjectFormatRetentionInformation(businessObjectFormatKey.getNamespace(), businessObjectFormatKey.getBusinessObjectDefinitionName(), businessObjectFormatKey.getBusinessObjectFormatUsage(), businessObjectFormatKey.getBusinessObjectFormatFileType(), updateRequest);
// Verify the external calls.
verify(businessObjectFormatService).updateBusinessObjectFormatRetentionInformation(businessObjectFormatKey, updateRequest);
verifyNoMoreInteractions(businessObjectFormatService);
// Validate the returned object.
assertEquals(businessObjectFormat, updatedBusinessObjectFormat);
}
use of org.finra.herd.model.api.xml.BusinessObjectFormatRetentionInformationUpdateRequest in project herd by FINRAOS.
the class BusinessObjectFormatServiceTest method testUpdateBusinessObjectFormatRetentionWithWrongRetentionType.
@Test
public void testUpdateBusinessObjectFormatRetentionWithWrongRetentionType() {
// Create an initial version of a business object format with format description and schema information.
BusinessObjectFormat originalBusinessObjectFormat = businessObjectFormatServiceTestHelper.createTestBusinessObjectFormat(businessObjectDefinitionServiceTestHelper.getNewAttributes());
boolean recordFlag = true;
Integer retentionPeriodInDays = new Integer(180);
String retentionType = "NOTFOUND";
BusinessObjectFormatRetentionInformationUpdateRequest updateRequest = new BusinessObjectFormatRetentionInformationUpdateRequest();
updateRequest.setRetentionType(retentionType);
updateRequest.setRecordFlag(recordFlag);
updateRequest.setRetentionPeriodInDays(retentionPeriodInDays);
try {
businessObjectFormatService.updateBusinessObjectFormatRetentionInformation(new BusinessObjectFormatKey(NAMESPACE, BDEF_NAME, FORMAT_USAGE_CODE, FORMAT_FILE_TYPE_CODE, null), updateRequest);
fail("should throw ObjectNotFoundException before");
} catch (ObjectNotFoundException ex) {
assertEquals(String.format("Record retention type with code \"%s\" doesn't exist.", retentionType), ex.getMessage());
}
}
use of org.finra.herd.model.api.xml.BusinessObjectFormatRetentionInformationUpdateRequest in project herd by FINRAOS.
the class BusinessObjectFormatServiceTest method testUpdateBusinessObjectFormatRetentionWithLatestVersion.
@Test
public void testUpdateBusinessObjectFormatRetentionWithLatestVersion() {
// Create an initial version of a business object format with format description and schema information.
BusinessObjectFormat originalBusinessObjectFormat = businessObjectFormatServiceTestHelper.createTestBusinessObjectFormat(businessObjectDefinitionServiceTestHelper.getNewAttributes());
boolean recordFlag = true;
Integer retentionPeriodInDays = new Integer(180);
String retentionType = "PARTITION_VALUE";
BusinessObjectFormatRetentionInformationUpdateRequest updateRequest = new BusinessObjectFormatRetentionInformationUpdateRequest();
updateRequest.setRetentionType(retentionType);
updateRequest.setRecordFlag(recordFlag);
updateRequest.setRetentionPeriodInDays(retentionPeriodInDays);
BusinessObjectFormat updatedBusinessObjectFormat = businessObjectFormatService.updateBusinessObjectFormatRetentionInformation(new BusinessObjectFormatKey(NAMESPACE, BDEF_NAME, FORMAT_USAGE_CODE, FORMAT_FILE_TYPE_CODE, null), updateRequest);
businessObjectFormatServiceTestHelper.validateRetentionInformation(recordFlag, retentionPeriodInDays, retentionType, updatedBusinessObjectFormat);
BusinessObjectFormatCreateRequest createRequest = new BusinessObjectFormatCreateRequest();
createRequest.setNamespace(NAMESPACE);
createRequest.setBusinessObjectDefinitionName(BDEF_NAME);
createRequest.setBusinessObjectFormatFileType(FORMAT_FILE_TYPE_CODE);
createRequest.setBusinessObjectFormatUsage(FORMAT_USAGE_CODE);
createRequest.setPartitionKey(originalBusinessObjectFormat.getPartitionKey());
createRequest.setSchema(originalBusinessObjectFormat.getSchema());
BusinessObjectFormat newVersionBusinessObjectFormat = businessObjectFormatService.createBusinessObjectFormat(createRequest);
// the new version of business object format should have the retention information
businessObjectFormatServiceTestHelper.validateRetentionInformation(recordFlag, retentionPeriodInDays, retentionType, newVersionBusinessObjectFormat);
BusinessObjectFormatKey businessObjectFormatKey = new BusinessObjectFormatKey(NAMESPACE, BDEF_NAME, FORMAT_USAGE_CODE, FORMAT_FILE_TYPE_CODE, 1);
// now delete the oldest version
businessObjectFormatService.deleteBusinessObjectFormat(businessObjectFormatKey);
// now the old version 0, should have the retention information
businessObjectFormatKey.setBusinessObjectFormatVersion(0);
BusinessObjectFormat businessObjectFormat = businessObjectFormatService.getBusinessObjectFormat(businessObjectFormatKey);
businessObjectFormatServiceTestHelper.validateRetentionInformation(recordFlag, retentionPeriodInDays, retentionType, businessObjectFormat);
}
Aggregations