public void JobFlowEc2KeyNameIsMissing() { //Input JobFlow jobFlow = new JobFlow(); jobFlow.Name = "testName"; jobFlow.LogUri = "s3://myBucket/logs"; jobFlow.AmiVersion = "3.0.3"; //Init visitor BuildRequestVisitor visitor = new BuildRequestVisitor(BuildRequestVisitorTest.GetSettings()); VisitorSubscriber visitorSubscriber = new VisitorSubscriber(visitor); //Action try { jobFlow.Accept(visitor); Assert.Fail("Exception has not been thrown!!!"); } catch (InvalidOperationException ex) { Assert.IsFalse(visitorSubscriber.wasAnyEventFired, "None of the visitor's events should be fired!"); Assert.AreEqual <string>("Ec2KeyName property is missing for the JobFlow. Example: \"testEC2Key\"", ex.Message, "Unexpected exception message"); } }
public void JobFlowInstanceCountShouldBeNotNegative() { //Input JobFlow jobFlow = new JobFlow(); jobFlow.Name = "testName"; jobFlow.LogUri = "s3://myBucket/logs"; jobFlow.AmiVersion = "3.0.3"; jobFlow.Ec2KeyName = "testEC2Key"; jobFlow.HadoopVersion = "2.2.0"; jobFlow.MasterInstanceType = "m1.medium"; jobFlow.SlaveInstanceType = "m3.2xlarge"; jobFlow.InstanceCount = -1; //Init visitor BuildRequestVisitor visitor = new BuildRequestVisitor(BuildRequestVisitorTest.GetSettings()); VisitorSubscriber visitorSubscriber = new VisitorSubscriber(visitor); //Action try { jobFlow.Accept(visitor); Assert.Fail("Exception has not been thrown!!!"); } catch (InvalidOperationException ex) { Assert.IsFalse(visitorSubscriber.wasAnyEventFired, "None of the visitor's events should be fired!"); Assert.AreEqual <string>("InstanceCount property of the JobFlow should be positive. Example: \"34\"", ex.Message, "Unexpected exception message"); } }
public void VisitJobFlow() { //Init args JobFlow jobFlow = new JobFlow(); jobFlow.Name = "testName-{jobFlowId}"; jobFlow.LogUri = "{myBucket}/logs/"; jobFlow.JobFlowRole = "arn:{myRole}"; jobFlow.AmiVersion = "{amiVersion}"; jobFlow.AdditionalInfo = "{ name: \"name1\", contact: \"{contact}\" }"; jobFlow.Ec2KeyName = "{ec2Key}"; jobFlow.HadoopVersion = "{hadoopVersion}"; jobFlow.KeepJobFlowAliveWhenNoSteps = true; jobFlow.TerminationProtected = true; jobFlow.MasterInstanceType = "{masterInstanceType}"; jobFlow.SlaveInstanceType = "{slaveInstanceType}"; jobFlow.InstanceCount = 34; //Init visitor BuildRequestVisitor visitor = new BuildRequestVisitor(BuildRequestVisitorTest.GetSettings()); VisitorSubscriber visitorSubscriber = new VisitorSubscriber(visitor); //Action jobFlow.Accept(visitor); //Verify Assert.AreEqual(2, visitorSubscriber.TotalObjCount, "Unexpected number of objects created"); RunJobFlowRequest actualJobFlowRequest = visitorSubscriber.jobFlowRequestList[0]; Assert.AreEqual("testName-j-111AAABBBNJ2I", actualJobFlowRequest.Name, "Unexpected Name"); Assert.AreEqual("s3://myBucket/logs/", actualJobFlowRequest.LogUri, "Unexpected LogUri"); Assert.AreEqual("arn:SupperSlonic", actualJobFlowRequest.JobFlowRole, "Unexpected JobFlowRole"); Assert.AreEqual("3.0.3", actualJobFlowRequest.AmiVersion, "Unexpected AmiVersion"); Assert.AreEqual("{ name: \"name1\", contact: \"supperslonic.com\" }", actualJobFlowRequest.AdditionalInfo, "Unexpected AdditionalInfo"); JobFlowInstancesConfig actualJobFlowInstancesConfig = visitorSubscriber.instanceConfigList[0]; Assert.AreEqual("testEC2Key", actualJobFlowInstancesConfig.Ec2KeyName, "Unexpected Ec2KeyName"); Assert.AreEqual("2.2.0", actualJobFlowInstancesConfig.HadoopVersion, "Unexpected HadoopVersion"); Assert.IsTrue(actualJobFlowInstancesConfig.KeepJobFlowAliveWhenNoSteps, "Unexpected KeepJobFlowAliveWhenNoSteps"); Assert.IsTrue(actualJobFlowInstancesConfig.TerminationProtected, "Unexpected TerminationProtected"); Assert.AreEqual("m1.medium", actualJobFlowInstancesConfig.MasterInstanceType, "Unexpected MasterInstanceType"); Assert.AreEqual("m3.2xlarge", actualJobFlowInstancesConfig.SlaveInstanceType, "Unexpected SlaveInstanceType"); Assert.AreEqual(34, actualJobFlowInstancesConfig.InstanceCount, "Unexpected InstanceCount"); }
public void JobFlowNameIsMissing() { //Input JobFlow jobFlow = new JobFlow(); //Init visitor BuildRequestVisitor visitor = new BuildRequestVisitor(BuildRequestVisitorTest.GetSettings()); VisitorSubscriber visitorSubscriber = new VisitorSubscriber(visitor); //Action try { jobFlow.Accept(visitor); Assert.Fail("Exception has not been thrown!!!"); } catch (InvalidOperationException ex) { Assert.IsFalse(visitorSubscriber.wasAnyEventFired, "None of the visitor's events should be fired!"); Assert.AreEqual <string>("Name property is missing for the JobFlow. Example: \"my super job 1\"", ex.Message, "Unexpected exception message"); } }
public RunJobFlowRequest Build(JobFlow jobFlow) { jobFlow.Accept(this.visitor); return(this.result); }