test_class.declarator: businessObjectDataDaoHelper
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private BusinessObjectDataDaoHelper businessObjectDataDaoHelper;
test_class.type: BusinessObjectDataDaoHelper
test_class.var_name: businessObjectDataDaoHelper
test_class.declarator: businessObjectDataHelper
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private BusinessObjectDataHelper businessObjectDataHelper;
test_class.type: BusinessObjectDataHelper
test_class.var_name: businessObjectDataHelper
test_class.declarator: configurationHelper
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private ConfigurationHelper configurationHelper;
test_class.type: ConfigurationHelper
test_class.var_name: configurationHelper
test_class.declarator: expireRestoredBusinessObjectDataHelperServiceImpl
test_class.modifier: @InjectMocks
      private
test_class.original_string: @InjectMocks
      private ExpireRestoredBusinessObjectDataHelperServiceImpl expireRestoredBusinessObjectDataHelperServiceImpl;
test_class.type: ExpireRestoredBusinessObjectDataHelperServiceImpl
test_class.var_name: expireRestoredBusinessObjectDataHelperServiceImpl
test_class.declarator: s3KeyPrefixHelper
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private S3KeyPrefixHelper s3KeyPrefixHelper;
test_class.type: S3KeyPrefixHelper
test_class.var_name: s3KeyPrefixHelper
test_class.declarator: s3Service
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private S3Service s3Service;
test_class.type: S3Service
test_class.var_name: s3Service
test_class.declarator: storageFileHelper
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private StorageFileHelper storageFileHelper;
test_class.type: StorageFileHelper
test_class.var_name: storageFileHelper
test_class.declarator: storageHelper
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private StorageHelper storageHelper;
test_class.type: StorageHelper
test_class.var_name: storageHelper
test_class.declarator: storageUnitDaoHelper
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private StorageUnitDaoHelper storageUnitDaoHelper;
test_class.type: StorageUnitDaoHelper
test_class.var_name: storageUnitDaoHelper
test_class.file: herd-code/herd-service/src/test/java/org/finra/herd/service/impl/ExpireRestoredBusinessObjectDataHelperServiceImplTest.java
test_class.identifier: ExpireRestoredBusinessObjectDataHelperServiceImplTest
test_class.superclass: extends AbstractServiceTest
test_case.body: @Test
      public void testExecuteS3SpecificSteps()
      {
          // Create a business object data key.
          BusinessObjectDataKey businessObjectDataKey =
              new BusinessObjectDataKey(BDEF_NAMESPACE, BDEF_NAME, FORMAT_USAGE_CODE, FORMAT_FILE_TYPE_CODE, FORMAT_VERSION, PARTITION_VALUE, SUBPARTITION_VALUES,
                  DATA_VERSION);
  
          // Create a list of storage files.
          List<StorageFile> storageFiles = Arrays.asList(new StorageFile(S3_KEY, FILE_SIZE, ROW_COUNT), new StorageFile(S3_KEY_2, FILE_SIZE_2, ROW_COUNT_2));
  
          // Create a DTO for business object data restore parameters.
          BusinessObjectDataRestoreDto businessObjectDataRestoreDto =
              new BusinessObjectDataRestoreDto(businessObjectDataKey, STORAGE_NAME, S3_ENDPOINT, S3_BUCKET_NAME, S3_KEY_PREFIX, STORAGE_UNIT_STATUS_2,
                  STORAGE_UNIT_STATUS, storageFiles, NO_EXCEPTION, ARCHIVE_RETRIEVAL_OPTION);
  
          // Create an initial instance of S3 file transfer parameters DTO.
          S3FileTransferRequestParamsDto s3FileTransferRequestParamsDto = new S3FileTransferRequestParamsDto();
  
          // Create an updated version of S3 file transfer parameters DTO.
          S3FileTransferRequestParamsDto updatedS3FileTransferRequestParamsDto = new S3FileTransferRequestParamsDto();
          updatedS3FileTransferRequestParamsDto.setS3BucketName(S3_BUCKET_NAME);
          updatedS3FileTransferRequestParamsDto.setS3Endpoint(S3_ENDPOINT);
          updatedS3FileTransferRequestParamsDto.setS3KeyPrefix(S3_KEY_PREFIX + "/");
  
          // Create a mock S3 object summary for S3 object that belongs to Glacier storage class.
          S3ObjectSummary glacierS3ObjectSummary = mock(S3ObjectSummary.class);
          when(glacierS3ObjectSummary.getStorageClass()).thenReturn(StorageClass.Glacier.toString());
  
          // Create a mock S3 object summary for S3 object that does not belong to Glacier storage class.
          S3ObjectSummary standardS3ObjectSummary = mock(S3ObjectSummary.class);
          when(standardS3ObjectSummary.getStorageClass()).thenReturn(StorageClass.Standard.toString());
  
          // Create a list of S3 files.
          List<S3ObjectSummary> s3Files = Arrays.asList(glacierS3ObjectSummary, standardS3ObjectSummary);
  
          // Create a list of S3 objects that belong to Glacier storage class.
          List<S3ObjectSummary> glacierS3Files = Arrays.asList(glacierS3ObjectSummary);
  
          // Create a list of storage files that represent S3 objects of Glacier storage class.
          List<StorageFile> glacierStorageFiles = Arrays.asList(new StorageFile(S3_KEY, FILE_SIZE, ROW_COUNT));
  
          // Create a list of files.
          List<File> files = Arrays.asList(new File(S3_KEY));
  
          // Create a final version of DTO for business object data restore parameters.
          S3FileTransferRequestParamsDto finalS3FileTransferRequestParamsDto = new S3FileTransferRequestParamsDto();
          finalS3FileTransferRequestParamsDto.setS3BucketName(S3_BUCKET_NAME);
          finalS3FileTransferRequestParamsDto.setS3Endpoint(S3_ENDPOINT);
          finalS3FileTransferRequestParamsDto.setS3KeyPrefix(S3_KEY_PREFIX + "/");
          finalS3FileTransferRequestParamsDto.setFiles(files);
  
          // Mock the external calls.
          when(storageHelper.getS3FileTransferRequestParamsDto()).thenReturn(s3FileTransferRequestParamsDto);
          when(s3Service.listDirectory(updatedS3FileTransferRequestParamsDto, true)).thenReturn(s3Files);
          when(storageFileHelper.createStorageFilesFromS3ObjectSummaries(glacierS3Files)).thenReturn(glacierStorageFiles);
          when(storageFileHelper.getFiles(glacierStorageFiles)).thenReturn(files);
  
          // Call the method under test.
          expireRestoredBusinessObjectDataHelperServiceImpl.executeS3SpecificSteps(businessObjectDataRestoreDto);
  
          // Verify the external calls.
          verify(storageHelper).getS3FileTransferRequestParamsDto();
          verify(s3Service).listDirectory(any(S3FileTransferRequestParamsDto.class), eq(true));
          verify(storageFileHelper).validateRegisteredS3Files(storageFiles, s3Files, STORAGE_NAME, businessObjectDataKey);
          verify(storageFileHelper).createStorageFilesFromS3ObjectSummaries(glacierS3Files);
          verify(storageFileHelper).getFiles(glacierStorageFiles);
          verify(s3Service).restoreObjects(finalS3FileTransferRequestParamsDto, 1, null);
          verifyNoMoreInteractionsHelper();
      }
test_case.class_method_signature: ExpireRestoredBusinessObjectDataHelperServiceImplTest.testExecuteS3SpecificSteps()
test_case.full_signature: @Test public void testExecuteS3SpecificSteps()
test_case.identifier: testExecuteS3SpecificSteps
test_case.invocations: asList setS3BucketName setS3Endpoint setS3KeyPrefix mock thenReturn when getStorageClass toString mock thenReturn when getStorageClass toString asList asList asList asList setS3BucketName setS3Endpoint setS3KeyPrefix setFiles thenReturn when getS3FileTransferRequestParamsDto thenReturn when listDirectory thenReturn when createStorageFilesFromS3ObjectSummaries thenReturn when getFiles executeS3SpecificSteps getS3FileTransferRequestParamsDto verify listDirectory verify any eq validateRegisteredS3Files verify createStorageFilesFromS3ObjectSummaries verify getFiles verify restoreObjects verify verifyNoMoreInteractionsHelper
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testExecuteS3SpecificSteps()
focal_class.declarator: businessObjectDataDaoHelper
focal_class.modifier: @Autowired
      private
focal_class.original_string: @Autowired
      private BusinessObjectDataDaoHelper businessObjectDataDaoHelper;
focal_class.type: BusinessObjectDataDaoHelper
focal_class.var_name: businessObjectDataDaoHelper
focal_class.declarator: businessObjectDataHelper
focal_class.modifier: @Autowired
      private
focal_class.original_string: @Autowired
      private BusinessObjectDataHelper businessObjectDataHelper;
focal_class.type: BusinessObjectDataHelper
focal_class.var_name: businessObjectDataHelper
focal_class.declarator: configurationHelper
focal_class.modifier: @Autowired
      private
focal_class.original_string: @Autowired
      private ConfigurationHelper configurationHelper;
focal_class.type: ConfigurationHelper
focal_class.var_name: configurationHelper
focal_class.declarator: s3KeyPrefixHelper
focal_class.modifier: @Autowired
      private
focal_class.original_string: @Autowired
      private S3KeyPrefixHelper s3KeyPrefixHelper;
focal_class.type: S3KeyPrefixHelper
focal_class.var_name: s3KeyPrefixHelper
focal_class.declarator: s3Service
focal_class.modifier: @Autowired
      private
focal_class.original_string: @Autowired
      private S3Service s3Service;
focal_class.type: S3Service
focal_class.var_name: s3Service
focal_class.declarator: storageFileHelper
focal_class.modifier: @Autowired
      private
focal_class.original_string: @Autowired
      private StorageFileHelper storageFileHelper;
focal_class.type: StorageFileHelper
focal_class.var_name: storageFileHelper
focal_class.declarator: storageHelper
focal_class.modifier: @Autowired
      private
focal_class.original_string: @Autowired
      private StorageHelper storageHelper;
focal_class.type: StorageHelper
focal_class.var_name: storageHelper
focal_class.declarator: storageUnitDaoHelper
focal_class.modifier: @Autowired
      private
focal_class.original_string: @Autowired
      private StorageUnitDaoHelper storageUnitDaoHelper;
focal_class.type: StorageUnitDaoHelper
focal_class.var_name: storageUnitDaoHelper
focal_class.file: herd-code/herd-service/src/main/java/org/finra/herd/service/impl/ExpireRestoredBusinessObjectDataHelperServiceImpl.java
focal_class.identifier: ExpireRestoredBusinessObjectDataHelperServiceImpl
focal_class.interfaces: implements ExpireRestoredBusinessObjectDataHelperService
focal_class.class_method_signature: ExpireRestoredBusinessObjectDataHelperServiceImpl.completeStorageUnitExpiration(BusinessObjectDataRestoreDto businessObjectDataRestoreDto)
focal_class.full_signature: @PublishNotificationMessages @Override @Transactional(propagation = Propagation.REQUIRES_NEW) public void completeStorageUnitExpiration(BusinessObjectDataRestoreDto businessObjectDataRestoreDto)
focal_class.identifier: completeStorageUnitExpiration
focal_class.modifiers: @PublishNotificationMessages @Override @Transactional(propagation = Propagation.REQUIRES_NEW) public
focal_class.parameters: (BusinessObjectDataRestoreDto businessObjectDataRestoreDto)
focal_class.return: void
focal_class.signature: void completeStorageUnitExpiration(BusinessObjectDataRestoreDto businessObjectDataRestoreDto)
focal_class.class_method_signature: ExpireRestoredBusinessObjectDataHelperServiceImpl.executeS3SpecificSteps(BusinessObjectDataRestoreDto businessObjectDataRestoreDto)
focal_class.full_signature: @Override @Transactional(propagation = Propagation.NOT_SUPPORTED) public void executeS3SpecificSteps(BusinessObjectDataRestoreDto businessObjectDataRestoreDto)
focal_class.identifier: executeS3SpecificSteps
focal_class.modifiers: @Override @Transactional(propagation = Propagation.NOT_SUPPORTED) public
focal_class.parameters: (BusinessObjectDataRestoreDto businessObjectDataRestoreDto)
focal_class.return: void
focal_class.signature: void executeS3SpecificSteps(BusinessObjectDataRestoreDto businessObjectDataRestoreDto)
focal_class.class_method_signature: ExpireRestoredBusinessObjectDataHelperServiceImpl.prepareToExpireStorageUnit(BusinessObjectDataStorageUnitKey storageUnitKey)
focal_class.full_signature: @PublishNotificationMessages @Override @Transactional(propagation = Propagation.REQUIRES_NEW) public BusinessObjectDataRestoreDto prepareToExpireStorageUnit(BusinessObjectDataStorageUnitKey storageUnitKey)
focal_class.identifier: prepareToExpireStorageUnit
focal_class.modifiers: @PublishNotificationMessages @Override @Transactional(propagation = Propagation.REQUIRES_NEW) public
focal_class.parameters: (BusinessObjectDataStorageUnitKey storageUnitKey)
focal_class.return: BusinessObjectDataRestoreDto
focal_class.signature: BusinessObjectDataRestoreDto prepareToExpireStorageUnit(BusinessObjectDataStorageUnitKey storageUnitKey)
focal_class.class_method_signature: ExpireRestoredBusinessObjectDataHelperServiceImpl.completeStorageUnitExpirationImpl(BusinessObjectDataRestoreDto businessObjectDataRestoreDto)
focal_class.full_signature: protected void completeStorageUnitExpirationImpl(BusinessObjectDataRestoreDto businessObjectDataRestoreDto)
focal_class.identifier: completeStorageUnitExpirationImpl
focal_class.modifiers: protected
focal_class.parameters: (BusinessObjectDataRestoreDto businessObjectDataRestoreDto)
focal_class.return: void
focal_class.signature: void completeStorageUnitExpirationImpl(BusinessObjectDataRestoreDto businessObjectDataRestoreDto)
focal_class.class_method_signature: ExpireRestoredBusinessObjectDataHelperServiceImpl.executeS3SpecificStepsImpl(BusinessObjectDataRestoreDto businessObjectDataRestoreDto)
focal_class.full_signature: protected void executeS3SpecificStepsImpl(BusinessObjectDataRestoreDto businessObjectDataRestoreDto)
focal_class.identifier: executeS3SpecificStepsImpl
focal_class.modifiers: protected
focal_class.parameters: (BusinessObjectDataRestoreDto businessObjectDataRestoreDto)
focal_class.return: void
focal_class.signature: void executeS3SpecificStepsImpl(BusinessObjectDataRestoreDto businessObjectDataRestoreDto)
focal_class.class_method_signature: ExpireRestoredBusinessObjectDataHelperServiceImpl.getStorageUnit(String storageName, BusinessObjectDataEntity businessObjectDataEntity)
focal_class.full_signature: protected StorageUnitEntity getStorageUnit(String storageName, BusinessObjectDataEntity businessObjectDataEntity)
focal_class.identifier: getStorageUnit
focal_class.modifiers: protected
focal_class.parameters: (String storageName, BusinessObjectDataEntity businessObjectDataEntity)
focal_class.return: StorageUnitEntity
focal_class.signature: StorageUnitEntity getStorageUnit(String storageName, BusinessObjectDataEntity businessObjectDataEntity)
focal_class.class_method_signature: ExpireRestoredBusinessObjectDataHelperServiceImpl.prepareToExpireStorageUnitImpl(BusinessObjectDataStorageUnitKey storageUnitKey)
focal_class.full_signature: protected BusinessObjectDataRestoreDto prepareToExpireStorageUnitImpl(BusinessObjectDataStorageUnitKey storageUnitKey)
focal_class.identifier: prepareToExpireStorageUnitImpl
focal_class.modifiers: protected
focal_class.parameters: (BusinessObjectDataStorageUnitKey storageUnitKey)
focal_class.return: BusinessObjectDataRestoreDto
focal_class.signature: BusinessObjectDataRestoreDto prepareToExpireStorageUnitImpl(BusinessObjectDataStorageUnitKey storageUnitKey)
focal_method.body: @Override
      @Transactional(propagation = Propagation.NOT_SUPPORTED)
      public void executeS3SpecificSteps(BusinessObjectDataRestoreDto businessObjectDataRestoreDto)
      {
          executeS3SpecificStepsImpl(businessObjectDataRestoreDto);
      }
focal_method.class_method_signature: ExpireRestoredBusinessObjectDataHelperServiceImpl.executeS3SpecificSteps(BusinessObjectDataRestoreDto businessObjectDataRestoreDto)
focal_method.full_signature: @Override @Transactional(propagation = Propagation.NOT_SUPPORTED) public void executeS3SpecificSteps(BusinessObjectDataRestoreDto businessObjectDataRestoreDto)
focal_method.identifier: executeS3SpecificSteps
focal_method.invocations: executeS3SpecificStepsImpl
focal_method.modifiers: @Override @Transactional(propagation = Propagation.NOT_SUPPORTED) public
focal_method.parameters: (BusinessObjectDataRestoreDto businessObjectDataRestoreDto)
focal_method.return: void
focal_method.signature: void executeS3SpecificSteps(BusinessObjectDataRestoreDto businessObjectDataRestoreDto)