public void QueryRetrievesOutputDefinitions()
 {
     var testItem = new TestItem("Baby");
     var server = new Server("Test", testItem);
     var invoker = new ActionInvoker(server);
     var result = invoker.Query(
         "urn:ccnet:test:baby",
         new QueryArguments { DataToInclude = DataDefinitions.OutputOnly });
     Assert.IsNotNull(result);
     Assert.AreEqual(RemoteResultCode.Success, result.ResultCode);
     var expected = new[]
                        {
                            new RemoteActionDefinition
                                {
                                    Name = "DoSomething",
                                    Description = "This will do something",
                                    OutputData = "<definition name=\"Blank\" namespace=\"urn:cruisecontrol:common\" />"
                                },
                            new RemoteActionDefinition
                                {
                                    Name = "TestAction",
                                    Description = "This is a test action",
                                    OutputData = "<definition name=\"Blank\" namespace=\"urn:cruisecontrol:common\" />"
                                }
                        };
     CollectionAssert.AreEqual(expected, result.Actions.OrderBy(rad => rad.Name), new DefinitionComparer());
 }
 public void QueryReturnsActions()
 {
     var testItem = new TestItem("Baby");
     var server = new Server("Test", testItem);
     var invoker = new ActionInvoker(server);
     var result = invoker.Query("urn:ccnet:test:baby", null);
     Assert.IsNotNull(result);
     Assert.AreEqual(RemoteResultCode.Success, result.ResultCode);
     var expected = new[]
                        {
                            new RemoteActionDefinition
                                {
                                    Name = "DoSomething",
                                    Description = "This will do something",
                                    InputData = "<definition name=\"Blank\" namespace=\"urn:cruisecontrol:common\" />",
                                    OutputData = "<definition name=\"Blank\" namespace=\"urn:cruisecontrol:common\" />"
                                },
                            new RemoteActionDefinition
                                {
                                    Name = "TestAction",
                                    Description = "This is a test action",
                                    InputData = "<definition name=\"SingleValue\" namespace=\"urn:cruisecontrol:common\">" +
                                             "<value name=\"Value\" type=\"string\" />" +
                                         "</definition>",
                                    OutputData = "<definition name=\"Blank\" namespace=\"urn:cruisecontrol:common\" />"
                                }
                        };
     CollectionAssert.AreEqual(expected, result.Actions.OrderBy(rad => rad.Name), new DefinitionComparer());
 }
 public void QueryFiltersActions()
 {
     var testItem = new TestItem("Baby");
     var server = new Server("Test", testItem);
     var invoker = new ActionInvoker(server);
     var args = new QueryArguments { FilterPattern = "DoSomething", DataToInclude = DataDefinitions.None };
     var result = invoker.Query("urn:ccnet:test:baby", args);
     Assert.IsNotNull(result);
     Assert.AreEqual(RemoteResultCode.Success, result.ResultCode);
     var expected = new[]
                        {
                            new RemoteActionDefinition
                                {
                                    Name = "DoSomething",
                                    Description = "This will do something"
                                }
                        };
     CollectionAssert.AreEqual(expected, result.Actions, new DefinitionComparer());
 }
 public void QueryFailsIfTheNameCannotBeFound()
 {
     var server = new Server("Test");
     var invoker = new ActionInvoker(server);
     var result = invoker.Query("urn:ccnet:test:ghost", null);
     Assert.IsNotNull(result);
     Assert.AreEqual(RemoteResultCode.UnknownUrn, result.ResultCode);
 }