test_class.declarator: herdApiClientOperations
test_class.modifier: @InjectMocks
      private
test_class.original_string: @InjectMocks
      private HerdApiClientOperations herdApiClientOperations;
test_class.type: HerdApiClientOperations
test_class.var_name: herdApiClientOperations
test_class.declarator: propertiesHelper
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private PropertiesHelper propertiesHelper;
test_class.type: PropertiesHelper
test_class.var_name: propertiesHelper
test_class.file: herd-code/herd-tools/herd-access-validator/src/test/java/org/finra/herd/tools/access/validator/HerdApiClientOperationsTest.java
test_class.identifier: HerdApiClientOperationsTest
test_case.body: @Test
      public void testMissingProperties() throws Exception
      {
          String errorMessage = "";
  
          List<String> requiredProperties = Arrays
              .asList(HERD_BASE_URL_PROPERTY, HERD_USERNAME_PROPERTY, HERD_PASSWORD_PROPERTY, AWS_ROLE_ARN_PROPERTY, AWS_REGION_PROPERTY, NAMESPACE_PROPERTY,
                  BUSINESS_OBJECT_DEFINITION_NAME_PROPERTY, BUSINESS_OBJECT_FORMAT_USAGE_PROPERTY, BUSINESS_OBJECT_FORMAT_FILE_TYPE_PROPERTY,
                  PRIMARY_PARTITION_VALUE_PROPERTY);
  
          for (String property : requiredProperties)
          {
              when(propertiesHelper.isBlankOrNull(property)).thenReturn(true);
          }
  
          try
          {
              herdApiClientOperations.checkPropertiesFile(propertiesHelper, false);
          }
          catch (ApiException e)
          {
              errorMessage = e.getMessage();
          }
  
          System.out.println(errorMessage);
          for (String property : requiredProperties)
          {
              Assert.assertTrue("Could not find error for " + property, StringUtils.contains(errorMessage, property));
          }
  
          for (String property : requiredProperties)
          {
              verify(propertiesHelper).isBlankOrNull(property);
          }
  
          verifyNoMoreInteractionsHelper();
      }
test_case.class_method_signature: HerdApiClientOperationsTest.testMissingProperties()
test_case.full_signature: @Test public void testMissingProperties()
test_case.identifier: testMissingProperties
test_case.invocations: asList thenReturn when isBlankOrNull checkPropertiesFile getMessage println assertTrue contains isBlankOrNull verify verifyNoMoreInteractionsHelper
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testMissingProperties()
focal_class.declarator: LOGGER = LoggerFactory.getLogger(HerdApiClientOperations.class)
focal_class.modifier: private static final
focal_class.original_string: private static final Logger LOGGER = LoggerFactory.getLogger(HerdApiClientOperations.class);
focal_class.type: Logger
focal_class.var_name: LOGGER
focal_class.declarator: SEARCH_KEYWORD_1 = "businessObjectDataKey"
focal_class.modifier: private static final
focal_class.original_string: private static final String SEARCH_KEYWORD_1 = "businessObjectDataKey";
focal_class.type: String
focal_class.var_name: SEARCH_KEYWORD_1
focal_class.declarator: SEARCH_KEYWORD_2 = "BUS_OBJCT_DATA_STTS_CHG"
focal_class.modifier: private static final
focal_class.original_string: private static final String SEARCH_KEYWORD_2 = "BUS_OBJCT_DATA_STTS_CHG";
focal_class.type: String
focal_class.var_name: SEARCH_KEYWORD_2
focal_class.declarator: JSON_KEY = "Message"
focal_class.modifier: private static final
focal_class.original_string: private static final String JSON_KEY = "Message";
focal_class.type: String
focal_class.var_name: JSON_KEY
focal_class.declarator: MAX_NUM_MESSAGES = 10
focal_class.modifier: private static final
focal_class.original_string: private static final int MAX_NUM_MESSAGES = 10;
focal_class.type: int
focal_class.var_name: MAX_NUM_MESSAGES
focal_class.declarator: WAIT_TIME_SECS = 1
focal_class.modifier: private static final
focal_class.original_string: private static final int WAIT_TIME_SECS = 1;
focal_class.type: int
focal_class.var_name: WAIT_TIME_SECS
focal_class.declarator: VISIBILITY_TIMEOUT_SECS = 0
focal_class.modifier: private static final
focal_class.original_string: private static final int VISIBILITY_TIMEOUT_SECS = 0;
focal_class.type: int
focal_class.var_name: VISIBILITY_TIMEOUT_SECS
focal_class.file: herd-code/herd-tools/herd-access-validator/src/main/java/org/finra/herd/tools/access/validator/HerdApiClientOperations.java
focal_class.identifier: HerdApiClientOperations
focal_class.class_method_signature: HerdApiClientOperations.applicationGetBuildInfo(ApplicationApi applicationApi)
focal_class.full_signature:  BuildInformation applicationGetBuildInfo(ApplicationApi applicationApi)
focal_class.identifier: applicationGetBuildInfo
focal_class.parameters: (ApplicationApi applicationApi)
focal_class.return: BuildInformation
focal_class.signature: BuildInformation applicationGetBuildInfo(ApplicationApi applicationApi)
focal_class.class_method_signature: HerdApiClientOperations.businessObjectDataGetBusinessObjectData(BusinessObjectDataApi businessObjectDataApi, String namespace,
          String businessObjectDefinitionName, String businessObjectFormatUsage, String businessObjectFormatFileType, String partitionKey, String partitionValue,
          String subPartitionValues, Integer businessObjectFormatVersion, Integer businessObjectDataVersion, String businessObjectDataStatus,
          Boolean includeBusinessObjectDataStatusHistory, Boolean includeStorageUnitStatusHistory, Boolean excludeBusinessObjectDataStorageFiles)
focal_class.full_signature:  BusinessObjectData businessObjectDataGetBusinessObjectData(BusinessObjectDataApi businessObjectDataApi, String namespace,
          String businessObjectDefinitionName, String businessObjectFormatUsage, String businessObjectFormatFileType, String partitionKey, String partitionValue,
          String subPartitionValues, Integer businessObjectFormatVersion, Integer businessObjectDataVersion, String businessObjectDataStatus,
          Boolean includeBusinessObjectDataStatusHistory, Boolean includeStorageUnitStatusHistory, Boolean excludeBusinessObjectDataStorageFiles)
focal_class.identifier: businessObjectDataGetBusinessObjectData
focal_class.parameters: (BusinessObjectDataApi businessObjectDataApi, String namespace,
          String businessObjectDefinitionName, String businessObjectFormatUsage, String businessObjectFormatFileType, String partitionKey, String partitionValue,
          String subPartitionValues, Integer businessObjectFormatVersion, Integer businessObjectDataVersion, String businessObjectDataStatus,
          Boolean includeBusinessObjectDataStatusHistory, Boolean includeStorageUnitStatusHistory, Boolean excludeBusinessObjectDataStorageFiles)
focal_class.return: BusinessObjectData
focal_class.signature: BusinessObjectData businessObjectDataGetBusinessObjectData(BusinessObjectDataApi businessObjectDataApi, String namespace,
          String businessObjectDefinitionName, String businessObjectFormatUsage, String businessObjectFormatFileType, String partitionKey, String partitionValue,
          String subPartitionValues, Integer businessObjectFormatVersion, Integer businessObjectDataVersion, String businessObjectDataStatus,
          Boolean includeBusinessObjectDataStatusHistory, Boolean includeStorageUnitStatusHistory, Boolean excludeBusinessObjectDataStorageFiles)
focal_class.class_method_signature: HerdApiClientOperations.getBdataKeySqs(AmazonSQS client, String queueUrl)
focal_class.full_signature: @Retryable(value = ApiException.class, backoff = @Backoff(delay = 2000, multiplier = 2)) BusinessObjectDataKey getBdataKeySqs(AmazonSQS client, String queueUrl)
focal_class.identifier: getBdataKeySqs
focal_class.modifiers: @Retryable(value = ApiException.class, backoff = @Backoff(delay = 2000, multiplier = 2))
focal_class.parameters: (AmazonSQS client, String queueUrl)
focal_class.return: BusinessObjectDataKey
focal_class.signature: BusinessObjectDataKey getBdataKeySqs(AmazonSQS client, String queueUrl)
focal_class.class_method_signature: HerdApiClientOperations.mapJsontoBdataKey(String messageBody)
focal_class.full_signature:  JsonSqsMessageBody mapJsontoBdataKey(String messageBody)
focal_class.identifier: mapJsontoBdataKey
focal_class.parameters: (String messageBody)
focal_class.return: JsonSqsMessageBody
focal_class.signature: JsonSqsMessageBody mapJsontoBdataKey(String messageBody)
focal_class.class_method_signature: HerdApiClientOperations.checkPropertiesFile(PropertiesHelper propertiesHelper, Boolean messageFlag)
focal_class.full_signature:  void checkPropertiesFile(PropertiesHelper propertiesHelper, Boolean messageFlag)
focal_class.identifier: checkPropertiesFile
focal_class.parameters: (PropertiesHelper propertiesHelper, Boolean messageFlag)
focal_class.return: void
focal_class.signature: void checkPropertiesFile(PropertiesHelper propertiesHelper, Boolean messageFlag)
focal_class.class_method_signature: HerdApiClientOperations.currentUserGetCurrentUser(CurrentUserApi currentUserApi)
focal_class.full_signature:  UserAuthorizations currentUserGetCurrentUser(CurrentUserApi currentUserApi)
focal_class.identifier: currentUserGetCurrentUser
focal_class.parameters: (CurrentUserApi currentUserApi)
focal_class.return: UserAuthorizations
focal_class.signature: UserAuthorizations currentUserGetCurrentUser(CurrentUserApi currentUserApi)
focal_method.body: void checkPropertiesFile(PropertiesHelper propertiesHelper, Boolean messageFlag) throws ApiException
      {
          List<String> requiredProperties =
              Arrays.asList(HERD_BASE_URL_PROPERTY, HERD_USERNAME_PROPERTY, HERD_PASSWORD_PROPERTY, AWS_ROLE_ARN_PROPERTY, AWS_REGION_PROPERTY);
          Boolean missingProperty = false;
          StringBuilder errorMessage = new StringBuilder();
  
          for (String property : requiredProperties)
          {
              if (propertiesHelper.isBlankOrNull(property))
              {
                  missingProperty = true;
                  errorMessage.append(property);
                  errorMessage.append('\n');
              }
          }
  
          if (messageFlag)
          {
              if (propertiesHelper.isBlankOrNull(AWS_SQS_QUEUE_URL_PROPERTY))
              {
                  missingProperty = true;
                  errorMessage.append(AWS_SQS_QUEUE_URL_PROPERTY);
                  errorMessage.append('\n');
              }
          }
          else
          {
              requiredProperties = Arrays.asList(NAMESPACE_PROPERTY, BUSINESS_OBJECT_DEFINITION_NAME_PROPERTY, BUSINESS_OBJECT_FORMAT_USAGE_PROPERTY,
                  BUSINESS_OBJECT_FORMAT_FILE_TYPE_PROPERTY, PRIMARY_PARTITION_VALUE_PROPERTY);
  
              for (String property : requiredProperties)
              {
                  if (propertiesHelper.isBlankOrNull(property))
                  {
                      missingProperty = true;
                      errorMessage.append(property);
                      errorMessage.append('\n');
                  }
              }
          }
  
          if (missingProperty)
          {
              throw new ApiException("The following properties are missing. Please double check case and spelling:\n" + errorMessage.toString());
          }
      }
focal_method.class_method_signature: HerdApiClientOperations.checkPropertiesFile(PropertiesHelper propertiesHelper, Boolean messageFlag)
focal_method.full_signature:  void checkPropertiesFile(PropertiesHelper propertiesHelper, Boolean messageFlag)
focal_method.identifier: checkPropertiesFile
focal_method.invocations: asList isBlankOrNull append append isBlankOrNull append append asList isBlankOrNull append append toString
focal_method.parameters: (PropertiesHelper propertiesHelper, Boolean messageFlag)
focal_method.return: void
focal_method.signature: void checkPropertiesFile(PropertiesHelper propertiesHelper, Boolean messageFlag)