public void InvokeFailsIfTheNameCannotBeFound()
 {
     var server = new Server("Test");
     var invoker = new ActionInvoker(server);
     var result = invoker.Invoke("urn:ccnet:test:ghost", new InvokeArguments());
     Assert.IsNotNull(result);
     Assert.AreEqual(RemoteResultCode.UnknownUrn, result.ResultCode);
 }
 public void InvokeFailsIfInputIsMissing()
 {
     var testItem = new TestItem("Baby");
     var server = new Server("Test", testItem);
     var invoker = new ActionInvoker(server);
     var arguments = new InvokeArguments
                         {
                             Action = "TestAction",
                             Data = string.Empty
                         };
     var result = invoker.Invoke("urn:ccnet:test:baby", arguments);
     Assert.IsNotNull(result);
     Assert.AreEqual(RemoteResultCode.InvalidInput, result.ResultCode);
 }
 public void InvokeFailsIfInputIsIncorrectType()
 {
     var testItem = new TestItem("Baby");
     var server = new Server("Test", testItem);
     var invoker = new ActionInvoker(server);
     var arguments = new InvokeArguments
                         {
                             Action = "TestAction",
                             Data = "<Blank xmlns=\"urn:cruisecontrol:common\" />"
                         };
     var result = invoker.Invoke("urn:ccnet:test:baby", arguments);
     Assert.IsNotNull(result);
     Assert.AreEqual(RemoteResultCode.InvalidInput, result.ResultCode);
 }
 public void InvokeHandlesMethodsWithTheSameName()
 {
     var called = false;
     var item = new TroublesomeItem
                    {
                        Name = "ghost",
                        DoSomethingAction = () => called = true
                    };
     var server = new Server("Test", item);
     var invoker = new ActionInvoker(server);
     var arguments = new InvokeArguments
                         {
                             Action = "DoSomething",
                             Data = "<Blank xmlns=\"urn:cruisecontrol:common\" />"
                         };
     var result = invoker.Invoke("urn:ccnet:test:ghost", arguments);
     Assert.AreEqual(RemoteResultCode.Success, result.ResultCode);
     Assert.IsTrue(called);
 }
 public void InvokeInvokesMethod()
 {
     var testItem = new TestItem("Baby");
     var server = new Server("Test", testItem);
     var invoker = new ActionInvoker(server);
     var arguments = new InvokeArguments
                         {
                             Action = "DoSomething",
                             Data = "<Blank xmlns=\"urn:cruisecontrol:common\" />"
                         };
     var result = invoker.Invoke("urn:ccnet:test:baby", arguments);
     Assert.AreEqual(RemoteResultCode.Success, result.ResultCode);
     Assert.IsNotNull(result);
     Assert.IsNotNull(result.Data);
     var message = MessageSerialiser.Deserialise(result.Data);
     Assert.IsInstanceOf<Messages.Blank>(message);
     Assert.IsTrue(testItem.WasInvoked);
 }
 public void InvokeFailsIfTheArgumentsAreMissing()
 {
     var testItem = new TestItem("Baby");
     var server = new Server("Test", testItem);
     var invoker = new ActionInvoker(server);
     var result = invoker.Invoke("urn:ccnet:test:baby", null);
     Assert.IsNotNull(result);
     Assert.AreEqual(RemoteResultCode.MissingArguments, result.ResultCode);
 }
 public void InvokeFailsIfTheActionCannotBeFound()
 {
     var testItem = new TestItem("Baby");
     var server = new Server("Test", testItem);
     var invoker = new ActionInvoker(server);
     var result = invoker.Invoke("urn:ccnet:test:baby", new InvokeArguments { Action = "DoesNotExist" });
     Assert.IsNotNull(result);
     Assert.AreEqual(RemoteResultCode.UnknownAction, result.ResultCode);
 }