/** * Creates and persists a new namespace entity. * * @return the newly created namespace entity. */ public NamespaceEntity createNamespaceEntity() { return createNamespaceEntity("NamespaceTest" + AbstractDaoTest.getRandomSuffix()); }
@Test public void testGetNamespaces() { // Create and persist namespace entities. for (NamespaceKey key : namespaceDaoTestHelper.getTestNamespaceKeys()) { namespaceDaoTestHelper.createNamespaceEntity(key.getNamespaceCode()); } // Retrieve a list of namespace keys. List<NamespaceKey> resultNamespaceKeys = namespaceDao.getNamespaces(); // Validate the returned object. assertNotNull(resultNamespaceKeys); assertTrue(resultNamespaceKeys.containsAll(namespaceDaoTestHelper.getTestNamespaceKeys())); } }
/** * Create and persist database entities required for testing. * * @param namespaceCode the namespace code * @param dataProviderName the data provider name */ public void createDatabaseEntitiesForBusinessObjectDefinitionTesting(String namespaceCode, String dataProviderName) { // Create a namespace entity. namespaceDaoTestHelper.createNamespaceEntity(namespaceCode); // Create a data provider entity. dataProviderDaoTestHelper.createDataProviderEntity(dataProviderName); }
@Test public void testGetNamespaces() throws Exception { // Create and persist namespace entities. for (NamespaceKey key : namespaceDaoTestHelper.getTestNamespaceKeys()) { namespaceDaoTestHelper.createNamespaceEntity(key.getNamespaceCode()); } // Retrieve a list of namespace keys. NamespaceKeys resultNamespaceKeys = namespaceService.getNamespaces(); // Validate the returned object. assertNotNull(resultNamespaceKeys); assertNotNull(resultNamespaceKeys.getNamespaceKeys()); assertTrue(resultNamespaceKeys.getNamespaceKeys().size() >= namespaceDaoTestHelper.getTestNamespaceKeys().size()); for (NamespaceKey key : namespaceDaoTestHelper.getTestNamespaceKeys()) { assertTrue(resultNamespaceKeys.getNamespaceKeys().contains(key)); } }
@Test public void testGetNamespaceLowerCaseParameters() { // Create and persist a namespace entity using upper case values. namespaceDaoTestHelper.createNamespaceEntity(NAMESPACE.toUpperCase()); // Retrieve the namespace using lower case input parameters. Namespace resultNamespace = namespaceService.getNamespace(new NamespaceKey(NAMESPACE.toLowerCase())); // Validate the returned object. namespaceServiceTestHelper.validateNamespace(NAMESPACE.toUpperCase(), resultNamespace); }
@Test public void testGetNamespaceUpperCaseParameters() { // Create and persist a namespace entity using lower case values. namespaceDaoTestHelper.createNamespaceEntity(NAMESPACE.toLowerCase()); // Retrieve the namespace using upper case input parameters. Namespace resultNamespace = namespaceService.getNamespace(new NamespaceKey(NAMESPACE.toUpperCase())); // Validate the returned object. namespaceServiceTestHelper.validateNamespace(NAMESPACE.toLowerCase(), resultNamespace); }
/** * Creates database entities required for relational table registration unit tests. * * @param namespace the namespace * @param dataProviderName the data provider name * @param storageName the storage name */ void createDatabaseEntitiesForRelationalTableRegistrationTesting(String namespace, String dataProviderName, String storageName) { // Create a namespace. namespaceDaoTestHelper.createNamespaceEntity(namespace); // Create a data provider entity. dataProviderDaoTestHelper.createDataProviderEntity(dataProviderName); createDatabaseEntitiesForRelationalTableRegistrationTesting(storageName); }
/** * This method tests the scenario in which the cluster name is blank for the method getEmrClusterIdByName */ @Test public void testGetEmrClusterIdByNameForBlank() throws Exception { // Create the namespace entity. NamespaceEntity namespaceEntity = namespaceDaoTestHelper.createNamespaceEntity(NAMESPACE); emrClusterDefinitionDaoTestHelper.createEmrClusterDefinitionEntity(namespaceEntity, EMR_CLUSTER_DEFINITION_NAME, IOUtils.toString(resourceLoader.getResource(EMR_CLUSTER_DEFINITION_XML_FILE_MINIMAL_CLASSPATH).getInputStream())); // Create a new EMR cluster create request. EmrClusterCreateRequest request = getNewEmrClusterCreateRequest(); emrService.createCluster(request); }
@Test public void testGetEmrClusterDefinitionsLowerCaseParameters() throws Exception { // Create and persist an EMR cluster definition entity. emrClusterDefinitionDaoTestHelper.createEmrClusterDefinitionEntity(namespaceDaoTestHelper.createNamespaceEntity(NAMESPACE), EMR_CLUSTER_DEFINITION_NAME, IOUtils.toString(resourceLoader.getResource(EMR_CLUSTER_DEFINITION_XML_FILE_WITH_CLASSPATH).getInputStream())); // Create an EMR cluster definition key. EmrClusterDefinitionKey emrClusterDefinitionKey = new EmrClusterDefinitionKey(NAMESPACE, EMR_CLUSTER_DEFINITION_NAME); // Retrieve EMR cluster definition keys by passing namespace parameter value in lowercase. assertEquals(new EmrClusterDefinitionKeys(Arrays.asList(emrClusterDefinitionKey)), emrClusterDefinitionService.getEmrClusterDefinitions(NAMESPACE.toLowerCase())); }
@Test public void testGetEmrClusterDefinitionsUpperCaseParameters() throws Exception { // Create and persist an EMR cluster definition entity. emrClusterDefinitionDaoTestHelper.createEmrClusterDefinitionEntity(namespaceDaoTestHelper.createNamespaceEntity(NAMESPACE), EMR_CLUSTER_DEFINITION_NAME, IOUtils.toString(resourceLoader.getResource(EMR_CLUSTER_DEFINITION_XML_FILE_WITH_CLASSPATH).getInputStream())); // Create an EMR cluster definition key. EmrClusterDefinitionKey emrClusterDefinitionKey = new EmrClusterDefinitionKey(NAMESPACE, EMR_CLUSTER_DEFINITION_NAME); // Retrieve EMR cluster definition keys by passing namespace parameter value in uppercase. assertEquals(new EmrClusterDefinitionKeys(Arrays.asList(emrClusterDefinitionKey)), emrClusterDefinitionService.getEmrClusterDefinitions(NAMESPACE.toUpperCase())); }
/** * This method tests the scenario where cluster does not exist */ @Test(expected = IllegalArgumentException.class) public void testAddSecurityGroupClusterDoesNotExist() throws Exception { // Create the namespace entity. NamespaceEntity namespaceEntity = namespaceDaoTestHelper.createNamespaceEntity(NAMESPACE); emrClusterDefinitionDaoTestHelper.createEmrClusterDefinitionEntity(namespaceEntity, EMR_CLUSTER_DEFINITION_NAME, IOUtils.toString(resourceLoader.getResource(EMR_CLUSTER_DEFINITION_XML_FILE_WITH_CLASSPATH).getInputStream())); // Create the Add security group. EmrMasterSecurityGroupAddRequest emrMasterSecurityGroupAddRequest = getNewEmrAddSecurityGroupMasterRequest("DOES_NOT_EXIST"); emrService.addSecurityGroupsToClusterMaster(emrMasterSecurityGroupAddRequest); }
@Test public void testGetEmrClusterDefinitions() throws Exception { // Create and persist an EMR cluster definition entity. emrClusterDefinitionDaoTestHelper.createEmrClusterDefinitionEntity(namespaceDaoTestHelper.createNamespaceEntity(NAMESPACE), EMR_CLUSTER_DEFINITION_NAME, IOUtils.toString(resourceLoader.getResource(EMR_CLUSTER_DEFINITION_XML_FILE_WITH_CLASSPATH).getInputStream())); // Create an EMR cluster definition key. EmrClusterDefinitionKey emrClusterDefinitionKey = new EmrClusterDefinitionKey(NAMESPACE, EMR_CLUSTER_DEFINITION_NAME); // Retrieve and validate EMR cluster definition keys. assertEquals(new EmrClusterDefinitionKeys(Arrays.asList(emrClusterDefinitionKey)), emrClusterDefinitionService.getEmrClusterDefinitions(NAMESPACE)); }
/** * This method tests the scenario in which the user passes an ill-formatted xml file XMLException is expected to be thrown */ @Test(expected = IllegalArgumentException.class) public void testCreateJobDefinitionInvalidActivitiXml() throws Exception { // Create the namespace entity. namespaceDaoTestHelper.createNamespaceEntity(TEST_ACTIVITI_NAMESPACE_CD); // Create and persist a valid job definition. JobDefinitionCreateRequest request = jobDefinitionServiceTestHelper.createJobDefinitionCreateRequest(); // Get the XML file for the test workflow. InputStream xmlStream = resourceLoader.getResource(ACTIVITI_XML_HERD_WORKFLOW_WITH_CLASSPATH).getInputStream(); // Just remove "startEvent" text from the XML file which makes the following line in the XML file as INVALID // <startEvent id="startevent1" name="Start"></startEvent> request.setActivitiJobXml(IOUtils.toString(xmlStream).replaceAll("startEvent", "")); // Try creating the job definition and this must throw XMLException. jobDefinitionService.createJobDefinition(request, false); }
@Test public void testCreateEmrClusterDefinitionLowerCaseParameters() throws Exception { // Create and persist the namespace entity with an uppercase name. namespaceDaoTestHelper.createNamespaceEntity(NAMESPACE.toUpperCase()); // Create an EMR cluster definition create request by passing the EMR cluster definition name key parameters in lower case. EmrClusterDefinitionCreateRequest request = createEmrClusterDefinitionCreateRequest(NAMESPACE.toLowerCase(), EMR_CLUSTER_DEFINITION_NAME.toLowerCase(), getTestEmrClusterDefinitionConfiguration(EMR_CLUSTER_DEFINITION_XML_FILE_WITH_CLASSPATH)); // Create an EMR cluster definition. EmrClusterDefinitionInformation resultEmrClusterDefinition = emrClusterDefinitionService.createEmrClusterDefinition(request); // Validate the returned object. validateEmrClusterDefinition(null, NAMESPACE.toUpperCase(), EMR_CLUSTER_DEFINITION_NAME.toLowerCase(), getTestEmrClusterDefinitionConfiguration(EMR_CLUSTER_DEFINITION_XML_FILE_WITH_CLASSPATH), resultEmrClusterDefinition); }
/** * This method tests the scenario in which an invalid Java class name is given. This must throw IllegalArgumentException from the Activiti layer. */ @Test(expected = IllegalArgumentException.class) public void testCreateJobDefinitionInvalidActivitiElement() throws Exception { // Create the namespace entity. namespaceDaoTestHelper.createNamespaceEntity(TEST_ACTIVITI_NAMESPACE_CD); // Create and persist a valid job definition. JobDefinitionCreateRequest request = jobDefinitionServiceTestHelper.createJobDefinitionCreateRequest(); // Read the Activiti XML file so that an error can be injected. InputStream xmlStream = resourceLoader.getResource(ACTIVITI_XML_HERD_WORKFLOW_WITH_CLASSPATH).getInputStream(); // Inject an error by having an invalid Activiti element name in the XML file. // Note that XML file structure is correct as per the XML schema. However, there is an invalid Activiti element in the XML file. // The line below will be affected in the XML file as per this error injection. // <serviceTask id="servicetask1" name="Test Service Step" activiti:class="org.activiti.engine.impl.test.NoOpServiceTask"> request.setActivitiJobXml(IOUtils.toString(xmlStream).replaceAll("serviceTask", "invalidActivitiTask")); // Try creating the job definition and the Activiti layer mush throw an exception. jobDefinitionService.createJobDefinition(request, false); }
@Test public void testCreateEmrClusterDefinitionUpperCaseParameters() throws Exception { // Create and persist the namespace entity with a lowercase name. namespaceDaoTestHelper.createNamespaceEntity(NAMESPACE.toLowerCase()); // Create an EMR cluster definition create request by passing the EMR cluster definition name key parameters in upper case. EmrClusterDefinitionCreateRequest request = createEmrClusterDefinitionCreateRequest(NAMESPACE.toUpperCase(), EMR_CLUSTER_DEFINITION_NAME.toUpperCase(), getTestEmrClusterDefinitionConfiguration(EMR_CLUSTER_DEFINITION_XML_FILE_WITH_CLASSPATH)); // Create an EMR cluster definition. EmrClusterDefinitionInformation resultEmrClusterDefinition = emrClusterDefinitionService.createEmrClusterDefinition(request); // Validate the returned object. validateEmrClusterDefinition(null, NAMESPACE.toLowerCase(), EMR_CLUSTER_DEFINITION_NAME.toUpperCase(), getTestEmrClusterDefinitionConfiguration(EMR_CLUSTER_DEFINITION_XML_FILE_WITH_CLASSPATH), resultEmrClusterDefinition); }
@Test public void testGetEmrClusterDefinitionsTrimParameters() throws Exception { // Create and persist an EMR cluster definition entity. emrClusterDefinitionDaoTestHelper.createEmrClusterDefinitionEntity(namespaceDaoTestHelper.createNamespaceEntity(NAMESPACE), EMR_CLUSTER_DEFINITION_NAME, IOUtils.toString(resourceLoader.getResource(EMR_CLUSTER_DEFINITION_XML_FILE_WITH_CLASSPATH).getInputStream())); // Create an EMR cluster definition key. EmrClusterDefinitionKey emrClusterDefinitionKey = new EmrClusterDefinitionKey(NAMESPACE, EMR_CLUSTER_DEFINITION_NAME); // Retrieve EMR cluster definition keys by passing namespace with leading and trailing whitespace characters. assertEquals(new EmrClusterDefinitionKeys(Arrays.asList(emrClusterDefinitionKey)), emrClusterDefinitionService.getEmrClusterDefinitions(addWhitespace(NAMESPACE))); }
@Test(expected = ObjectNotFoundException.class) public void testCreateJobJobNameNoExists() throws Exception { // Create the namespace entity. namespaceDaoTestHelper.createNamespaceEntity(TEST_ACTIVITI_NAMESPACE_CD); // Try to create a job using non-existing job definition name. jobService.createAndStartJob(jobServiceTestHelper.createJobCreateRequest(TEST_ACTIVITI_NAMESPACE_CD, "I_DO_NOT_EXIST")); }
/** * This method tests the scenario in which the cluster definition is invalid ObjectNotFoundException is expected to be thrown */ @Test(expected = ObjectNotFoundException.class) public void testCreateEmrClusterInvalidDefinition() throws Exception { // Create the namespace entity. namespaceDaoTestHelper.createNamespaceEntity(NAMESPACE); // Create the emr cluster request without registering the namespace entity - ${TEST_ACTIVITI_NAMESPACE_CD} EmrClusterCreateRequest request = getNewEmrClusterCreateRequest(); // Following method must throw ObjectNotFoundException, as the namespace entity ${TEST_ACTIVITI_NAMESPACE_CD} does not exist. emrService.createCluster(request); }
@Test public void testGetEmrClusterDefinitionLowerCaseParameters() throws Exception { // Create and persist the namespace entity with an uppercase name. NamespaceEntity namespaceEntity = namespaceDaoTestHelper.createNamespaceEntity(NAMESPACE.toUpperCase()); // Create and persist the EMR cluster definition entity with an uppercase name. EmrClusterDefinitionEntity emrClusterDefinitionEntity = emrClusterDefinitionDaoTestHelper .createEmrClusterDefinitionEntity(namespaceEntity, EMR_CLUSTER_DEFINITION_NAME.toUpperCase(), getTestEmrClusterDefinitionConfigurationXml(EMR_CLUSTER_DEFINITION_XML_FILE_WITH_CLASSPATH)); // Get an EMR cluster definition by passing the EMR cluster definition name key parameters in lower case. EmrClusterDefinitionInformation resultEmrClusterDefinition = emrClusterDefinitionService .getEmrClusterDefinition(new EmrClusterDefinitionKey(NAMESPACE.toLowerCase(), EMR_CLUSTER_DEFINITION_NAME.toLowerCase())); // Validate the returned object. validateEmrClusterDefinition(emrClusterDefinitionEntity.getId(), NAMESPACE.toUpperCase(), EMR_CLUSTER_DEFINITION_NAME.toUpperCase(), getTestEmrClusterDefinitionConfiguration(EMR_CLUSTER_DEFINITION_XML_FILE_WITH_CLASSPATH), resultEmrClusterDefinition); }