public void VisitHBaseConfig() { //Init args HBaseConfig hBaseConfig = new HBaseConfig() { IfStart = true }; hBaseConfig.JarPath = "/home/hadoop/lib/hbase-0.94.7.jar"; hBaseConfig.Args = new List <string>() { "-s", "somearg{arg1}", "-s", "{arg2}" }; //Expectations List <string> expectedConfigArgs = new List <string>() { "-s", "somearg1234", "-s", "6789" }; List <string> expectedStartArgs = new List <string>() { "--start-master" }; //Init settings BuilderSettings settings = BuildRequestVisitorTest.GetSettings(); //Init visitor BuildRequestVisitor visitor = new BuildRequestVisitor(settings); VisitorSubscriber visitorSubscriber = new VisitorSubscriber(visitor); //Action hBaseConfig.Accept(visitor); //Verify Assert.AreEqual(3, visitorSubscriber.TotalObjCount, "Unexpected number of objects created"); // BootstrapAction 1: Install HBase BootstrapActionConfig actualBootstrapAction = visitorSubscriber.bootstrapActionList[0]; Assert.AreEqual("Install HBase", actualBootstrapAction.Name, "Unexpected Name"); Assert.AreEqual("s3://elasticmapreduce/bootstrap-actions/setup-hbase", actualBootstrapAction.ScriptBootstrapAction.Path, "Unexpected ScriptBootstrapAction.Path"); Assert.IsNull(actualBootstrapAction.ScriptBootstrapAction.Args, "Unexpected args list"); // BootstrapAction 2: Configure HBase actualBootstrapAction = visitorSubscriber.bootstrapActionList[1]; Assert.AreEqual("Configure HBase", actualBootstrapAction.Name, "Unexpected Name"); Assert.AreEqual("s3://elasticmapreduce/bootstrap-actions/configure-hbase", actualBootstrapAction.ScriptBootstrapAction.Path, "Unexpected ScriptBootstrapAction.Path"); Assert.IsTrue(expectedConfigArgs.SequenceEqual(actualBootstrapAction.ScriptBootstrapAction.Args), "Unexpected args list"); //Step : Start HBase StepConfig actualStep = visitorSubscriber.stepList[0]; Assert.AreEqual("Start HBase", actualStep.Name, "Unexpected Name"); Assert.AreEqual(ActionOnFailure.TERMINATE_JOB_FLOW, actualStep.ActionOnFailure, "Unexpected ActionOnFailure"); Assert.AreEqual("/home/hadoop/lib/hbase-0.94.7.jar", actualStep.HadoopJarStep.Jar, "Unexpected Jar"); Assert.AreEqual("emr.hbase.backup.Main", actualStep.HadoopJarStep.MainClass, "Unexpected MainClass"); Assert.IsTrue(expectedStartArgs.SequenceEqual(actualStep.HadoopJarStep.Args), "Unexpected args list"); }
public void SkipHBaseConfigIfStartFalse() { //Init args HBaseConfig hBaseConfig = new HBaseConfig(); //Init visitor BuildRequestVisitor visitor = new BuildRequestVisitor(BuildRequestVisitorTest.GetSettings()); VisitorSubscriber visitorSubscriber = new VisitorSubscriber(visitor); //Action hBaseConfig.Accept(visitor); //Verify Assert.IsFalse(visitorSubscriber.wasAnyEventFired, "None of the visitor's events should be fired!"); }
public void HBaseJarPathIsMissing() { //Input HBaseConfig hBaseConfig = new HBaseConfig { IfStart = true }; //Init visitor BuildRequestVisitor visitor = new BuildRequestVisitor(BuildRequestVisitorTest.GetSettings()); VisitorSubscriber visitorSubscriber = new VisitorSubscriber(visitor); //Action try { hBaseConfig.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>("JarPath property is missing for the HBase Configuration. Example: \"/home/hadoop/lib/hbase-0.94.7.jar\"", ex.Message, "Unexpected exception message"); } }