public void WhenOneCruiseServerSnapshotIsReturnedThisIsContainedInTheReturnedXml() { CruiseServerSnapshot cruiseServerSnapshot = CreateCruiseServerSnapshot(); CruiseServerSnapshotOnServer cruiseServerSnapshotOnServer = new CruiseServerSnapshotOnServer(cruiseServerSnapshot, null); mockFarmService.Setup(service => service.GetCruiseServerSnapshotListAndExceptions(null)). Returns(new CruiseServerSnapshotListAndExceptions(new CruiseServerSnapshotOnServer[] { cruiseServerSnapshotOnServer }, new CruiseServerException[0])). Verifiable(); XmlFragmentResponse response = (XmlFragmentResponse)reportAction.Execute(null); string xml = response.ResponseFragment; // cannot just compare the xml string, since we correctly expect the string to vary based on the // timezone in which this code is executing XmlDocument doc = XPathAssert.LoadAsDocument(xml); XPathAssert.Matches(doc, "/CruiseControl/Projects/Project/@name", "HelloWorld"); XPathAssert.Matches(doc, "/CruiseControl/Projects/Project/@activity", "Sleeping"); XPathAssert.Matches(doc, "/CruiseControl/Projects/Project/@lastBuildStatus", "Success"); XPathAssert.Matches(doc, "/CruiseControl/Projects/Project/@lastBuildLabel", "build_7"); XPathAssert.Matches(doc, "/CruiseControl/Projects/Project/@lastBuildTime", LastBuildTime); XPathAssert.Matches(doc, "/CruiseControl/Projects/Project/@nextBuildTime", NextBuildTime); XPathAssert.Matches(doc, "/CruiseControl/Projects/Project/@webUrl", "http://blah"); XPathAssert.Matches(doc, "/CruiseControl/Projects/Project/@category", "category"); XPathAssert.Matches(doc, "/CruiseControl/Projects/Project/@serverName", Environment.MachineName); XPathAssert.Matches(doc, "/CruiseControl/Queues/Queue/@name", "Queue1"); XPathAssert.Matches(doc, "/CruiseControl/Queues/Queue/Request/@projectName", "HelloWorld"); XPathAssert.Matches(doc, "/CruiseControl/Queues/Queue/Request/@activity", "CheckingModifications"); mockFarmService.Verify(); }
public void ReturnedXmlValidatesAgainstSchema() { ProjectStatus projectStatus = CreateProjectStatus(); ServerLocation ServerSpecifier = new ServerLocation(); ServerSpecifier.ServerName = "localhost"; ProjectStatusOnServer projectStatusOnServer = new ProjectStatusOnServer(projectStatus, ServerSpecifier); mockFarmService.ExpectAndReturn("GetProjectStatusListAndCaptureExceptions", new ProjectStatusListAndExceptions( new ProjectStatusOnServer[] { projectStatusOnServer }, new CruiseServerException[0]), (string)null); XmlFragmentResponse response = (XmlFragmentResponse)reportAction.Execute(null); string xml = response.ResponseFragment; XmlReaderSettings xmlReaderSettings = new XmlReaderSettings(); xmlReaderSettings.Schemas.Add(ReadSchemaFromResources("XmlReportActionSchema.xsd")); XmlReader rdr = XmlReader.Create(new StringReader(xml), xmlReaderSettings); while (rdr.Read()) { } mockFarmService.Verify(); }
public void WhenOneProjectStatusIsReturnedThisIsContainedInTheReturnedXml() { ProjectStatus projectStatus = CreateProjectStatus(); ServerLocation ServerSpecifier = new ServerLocation(); ServerSpecifier.ServerName = "localhost"; ProjectStatusOnServer projectStatusOnServer = new ProjectStatusOnServer(projectStatus, ServerSpecifier); mockFarmService.ExpectAndReturn("GetProjectStatusListAndCaptureExceptions", new ProjectStatusListAndExceptions( new ProjectStatusOnServer[] { projectStatusOnServer }, new CruiseServerException[0]), (string)null); XmlFragmentResponse response = (XmlFragmentResponse)reportAction.Execute(null); string xml = response.ResponseFragment; XmlDocument doc = XPathAssert.LoadAsDocument(xml); XPathAssert.Matches(doc, "/Projects/Project/@name", "HelloWorld"); XPathAssert.Matches(doc, "/Projects/Project/@activity", "Sleeping"); XPathAssert.Matches(doc, "/Projects/Project/@lastBuildStatus", "Success"); XPathAssert.Matches(doc, "/Projects/Project/@lastBuildLabel", "build_7"); XPathAssert.Matches(doc, "/Projects/Project/@lastBuildTime", LastBuildTime); XPathAssert.Matches(doc, "/Projects/Project/@nextBuildTime", NextBuildTime); XPathAssert.Matches(doc, "/Projects/Project/@webUrl", "http://blah"); XPathAssert.Matches(doc, "/Projects/Project/@category", "category"); mockFarmService.Verify(); }
/// <summary> /// Generates the XML response for the specified project. /// </summary> /// <param name="cruiseRequest"></param> /// <returns></returns> public IResponse Execute(ICruiseRequest cruiseRequest) { // Retrieve the actual snapshot var projectSpecifier = cruiseRequest.ProjectSpecifier; var snapshot = farmServer.TakeStatusSnapshot(projectSpecifier, cruiseRequest.RetrieveSessionToken()); // See what type of output is required IResponse output = null; var outputType = (cruiseRequest.Request.GetText("view") ?? string.Empty).ToLower(); switch (outputType) { case "json": // Generate the output as JSON var json = this.ConvertStatusToJson(snapshot); output = new JsonFragmentResponse(json); break; default: // Default output is XML var xml = snapshot.ToString(); output = new XmlFragmentResponse(xml); break; } return(output); }
public void WhenNoCruiseServerSnapshotEntriesAreReturnedByTheFarmServiceTheXmlContainsJustRootNodes() { mockFarmService.Setup(service => service.GetCruiseServerSnapshotListAndExceptions(null)). Returns(new CruiseServerSnapshotListAndExceptions(new CruiseServerSnapshotOnServer[0], new CruiseServerException[0])). Verifiable(); XmlFragmentResponse response = (XmlFragmentResponse)reportAction.Execute(null); string xml = response.ResponseFragment; Assert.AreEqual("<CruiseControl><Projects /><Queues /></CruiseControl>", xml); mockFarmService.Verify(); }
public void WhenNoProjectStatusEntriesAreReturnedByTheFarmServiceTheXmlContainsJustASingleRootNode() { mockFarmService.Setup(service => service.GetProjectStatusListAndCaptureExceptions(null)). Returns(new ProjectStatusListAndExceptions(new ProjectStatusOnServer[0], new CruiseServerException[0])). Verifiable(); XmlFragmentResponse response = (XmlFragmentResponse)reportAction.Execute(null); string xml = response.ResponseFragment; Assert.AreEqual("<Projects CCType=\"CCNet\" />", xml); mockFarmService.Verify(); }
public void ReturnedXmlValidatesAgainstSchema() { CruiseServerSnapshot cruiseServerSnapshot = CreateCruiseServerSnapshot(); CruiseServerSnapshotOnServer cruiseServerSnapshotOnServer = new CruiseServerSnapshotOnServer(cruiseServerSnapshot, null); mockFarmService.Setup(service => service.GetCruiseServerSnapshotListAndExceptions(null)). Returns(new CruiseServerSnapshotListAndExceptions(new CruiseServerSnapshotOnServer[] { cruiseServerSnapshotOnServer }, new CruiseServerException[0])). Verifiable(); XmlFragmentResponse response = (XmlFragmentResponse)reportAction.Execute(null); string xml = response.ResponseFragment; XmlReaderSettings xmlReaderSettings = new XmlReaderSettings(); xmlReaderSettings.Schemas.Add(ReadSchemaFromResources("XmlServerReportActionSchema.xsd")); XmlReader rdr = XmlReader.Create(new StringReader(xml), xmlReaderSettings); while (rdr.Read()) { } mockFarmService.Verify(); }