public void Setup() { cruiseRequestMock = new DynamicMock(typeof(ICruiseRequest)); requestMock = new DynamicMock(typeof(IRequest)); linkFactoryMock = new DynamicMock(typeof(ILinkFactory)); velocityViewGeneratorMock = new DynamicMock(typeof(IVelocityViewGenerator)); farmServiceMock = new DynamicMock(typeof(IFarmService)); viewBuilder = new TopControlsViewBuilder( (ICruiseRequest)cruiseRequestMock.MockInstance, (ILinkFactory)linkFactoryMock.MockInstance, (IVelocityViewGenerator)velocityViewGeneratorMock.MockInstance, (IFarmService)farmServiceMock.MockInstance, null, null); serverSpecifier = new DefaultServerSpecifier("myServer"); projectSpecifier = new DefaultProjectSpecifier(serverSpecifier, "myProject"); buildSpecifier = new DefaultBuildSpecifier(projectSpecifier, "myBuild"); expectedVelocityContext = new Hashtable(); response = new HtmlFragmentResponse("foo"); link1 = new GeneralAbsoluteLink("1"); link2 = new GeneralAbsoluteLink("2"); link3 = new GeneralAbsoluteLink("3"); link4 = new GeneralAbsoluteLink("4"); }
public void Setup() { urlBuilderMock = new DynamicMock(typeof(IUrlBuilder)); serverSpecifier = new DefaultServerSpecifier("myserver"); projectSpecifier = new DefaultProjectSpecifier(serverSpecifier, "myproject"); buildSpecifier = new DefaultBuildSpecifier(projectSpecifier, "mybuild"); cruiseUrlBuilder = new DefaultCruiseUrlBuilder((IUrlBuilder)urlBuilderMock.MockInstance); }
public void Setup() { urlBuilderMock = new Mock <IUrlBuilder>(); serverSpecifier = new DefaultServerSpecifier("myserver"); projectSpecifier = new DefaultProjectSpecifier(serverSpecifier, "myproject"); buildSpecifier = new DefaultBuildSpecifier(projectSpecifier, "mybuild"); cruiseUrlBuilder = new DefaultCruiseUrlBuilder((IUrlBuilder)urlBuilderMock.Object); }
public void Setup() { cruiseManagerWrapperMock = new Mock <ICruiseManagerWrapper>(); serverQueryingBuildRetriever = new ServerQueryingBuildRetriever(((ICruiseManagerWrapper)cruiseManagerWrapperMock.Object)); buildSpecifier = new DefaultBuildSpecifier(new DefaultProjectSpecifier(new DefaultServerSpecifier("s"), "p"), "myBuild"); logContent = "log Content"; }
public void Setup() { cruiseManagerWrapperMock = new DynamicMock(typeof(ICruiseManagerWrapper)); serverQueryingBuildRetriever = new ServerQueryingBuildRetriever(((ICruiseManagerWrapper)cruiseManagerWrapperMock.MockInstance)); buildSpecifier = new DefaultBuildSpecifier(new DefaultProjectSpecifier(new DefaultServerSpecifier("s"), "p"), "myBuild"); logContent = "log Content"; }
public override bool Equals(object obj) { if (obj is DefaultBuildSpecifier) { DefaultBuildSpecifier other = obj as DefaultBuildSpecifier; return(this.BuildName == other.BuildName && this.ProjectSpecifier.Equals(other.ProjectSpecifier)); } return(false); }
public void Setup() { cruiseManagerWrapperMock = new Mock <ICruiseManagerWrapper>(); nameBuildRetriever = new CruiseManagerBuildNameRetriever((ICruiseManagerWrapper)cruiseManagerWrapperMock.Object); serverName = "my Server"; projectName = "my Project"; buildName = "myLogfile.xml"; projectSpecifier = new DefaultProjectSpecifier(new DefaultServerSpecifier(serverName), projectName); buildSpecifier = new DefaultBuildSpecifier(this.projectSpecifier, buildName); buildSpecifiers = new IBuildSpecifier[] { CreateBuildSpecifier("log3"), CreateBuildSpecifier("log2"), CreateBuildSpecifier("log1") }; }
public void ShouldReturnRedirectToActualBuildReportPageIfBuildAvailable() { IProjectSpecifier projectSpecifier = new DefaultProjectSpecifier(new DefaultServerSpecifier("myServer"), "myProject"); IBuildSpecifier buildSpecifier = new DefaultBuildSpecifier(projectSpecifier, "myBuild"); cruiseRequestMock.SetupGet(_request => _request.ProjectSpecifier).Returns(projectSpecifier).Verifiable(); farmServiceMock.Setup(services => services.GetMostRecentBuildSpecifiers(projectSpecifier, 1, null)).Returns(new IBuildSpecifier[] { buildSpecifier }).Verifiable(); linkFactoryMock.Setup(factory => factory.CreateBuildLink(buildSpecifier, BuildReportBuildPlugin.ACTION_NAME)).Returns(new GeneralAbsoluteLink("foo", "buildUrl")).Verifiable(); IResponse returnedReponse = plugin.Execute(cruiseRequest); Assert.IsTrue(returnedReponse is RedirectResponse); Assert.AreEqual("buildUrl", ((RedirectResponse)returnedReponse).Url); }
public void ShouldReturnRedirectToActualBuildReportPageIfBuildAvailable() { IProjectSpecifier projectSpecifier = new DefaultProjectSpecifier(new DefaultServerSpecifier("myServer"), "myProject"); IBuildSpecifier buildSpecifier = new DefaultBuildSpecifier(projectSpecifier, "myBuild"); cruiseRequestMock.ExpectAndReturn("ProjectSpecifier", projectSpecifier); farmServiceMock.ExpectAndReturn("GetMostRecentBuildSpecifiers", new IBuildSpecifier[] { buildSpecifier }, projectSpecifier, 1, null); linkFactoryMock.ExpectAndReturn("CreateBuildLink", new GeneralAbsoluteLink("foo", "buildUrl"), buildSpecifier, BuildReportBuildPlugin.ACTION_NAME); IResponse returnedReponse = plugin.Execute(cruiseRequest); Assert.IsTrue(returnedReponse is RedirectResponse); Assert.AreEqual("buildUrl", ((RedirectResponse)returnedReponse).Url); }
public void ShouldGenerateBuildViewIfServerAndProjectAndBuildSpecified() { // Setup IProjectSpecifier projectSpecifier = new DefaultProjectSpecifier(new DefaultServerSpecifier("myServer"), "myProject"); IBuildSpecifier buildSpecifier = new DefaultBuildSpecifier(projectSpecifier, "myBuild"); cruiseRequestWrapperMock.SetupGet(_cruiseRequest => _cruiseRequest.ServerName).Returns("myServer").Verifiable(); cruiseRequestWrapperMock.SetupGet(_cruiseRequest => _cruiseRequest.ProjectName).Returns("myProject").Verifiable(); cruiseRequestWrapperMock.SetupGet(_cruiseRequest => _cruiseRequest.BuildName).Returns("myBuild").Verifiable(); cruiseRequestWrapperMock.SetupGet(_cruiseRequest => _cruiseRequest.BuildSpecifier).Returns(buildSpecifier).Verifiable(); cruiseRequestWrapperMock.SetupGet(_cruiseRequest => _cruiseRequest.ProjectSpecifier).Returns(projectSpecifier).Verifiable(); pluginLinkCalculatorMock.Setup(calculator => calculator.GetBuildPluginLinks(buildSpecifier)).Returns(links).Verifiable(); string recentBuildsView = ""; recentBuildsViewBuilderMock.Setup(builder => builder.BuildRecentBuildsTable(buildSpecifier, null)).Returns(recentBuildsView).Verifiable(); IBuildSpecifier nextBuildSpecifier = new DefaultBuildSpecifier(projectSpecifier, "next"); IBuildSpecifier previousBuildSpecifier = new DefaultBuildSpecifier(projectSpecifier, "previous"); IAbsoluteLink latestLink = new GeneralAbsoluteLink("test latest"); IAbsoluteLink nextLink = new GeneralAbsoluteLink("test next"); IAbsoluteLink previousLink = new GeneralAbsoluteLink("test previous"); buildNameRetrieverMock.Setup(retriever => retriever.GetNextBuildSpecifier(buildSpecifier, null)).Returns(nextBuildSpecifier).Verifiable(); buildNameRetrieverMock.Setup(retriever => retriever.GetPreviousBuildSpecifier(buildSpecifier, null)).Returns(previousBuildSpecifier).Verifiable(); string action = BuildReportBuildPlugin.ACTION_NAME; linkFactoryMock.Setup(factory => factory.CreateProjectLink(projectSpecifier, LatestBuildReportProjectPlugin.ACTION_NAME)).Returns(latestLink).Verifiable(); linkFactoryMock.Setup(factory => factory.CreateBuildLink(nextBuildSpecifier, "", action)).Returns(nextLink).Verifiable(); linkFactoryMock.Setup(factory => factory.CreateBuildLink(previousBuildSpecifier, "", action)).Returns(previousLink).Verifiable(); velocityContext["links"] = links; velocityContext["recentBuildsTable"] = recentBuildsView; velocityContext["latestLink"] = latestLink; velocityContext["nextLink"] = nextLink; velocityContext["previousLink"] = previousLink; velocityViewGeneratorMock.Setup(generator => generator.GenerateView(@"BuildSideBar.vm", It.IsAny <Hashtable>())). Callback <string, Hashtable>((name, context) => Assert.AreEqual(context, velocityContext)).Returns(velocityResponse).Verifiable(); // Execute HtmlFragmentResponse returnedResponse = sideBarViewBuilder.Execute(cruiseRequestWrapperMock.Object as ICruiseRequest); // Verify Assert.AreEqual(velocityResponse, returnedResponse); VerifyAll(); }
public void ShouldGenerateBuildViewIfServerAndProjectAndBuildSpecified() { // Setup IProjectSpecifier projectSpecifier = new DefaultProjectSpecifier(new DefaultServerSpecifier("myServer"), "myProject"); IBuildSpecifier buildSpecifier = new DefaultBuildSpecifier(projectSpecifier, "myBuild"); cruiseRequestWrapperMock.ExpectAndReturn("ServerName", "myServer"); cruiseRequestWrapperMock.ExpectAndReturn("ProjectName", "myProject"); cruiseRequestWrapperMock.ExpectAndReturn("BuildName", "myBuild"); cruiseRequestWrapperMock.ExpectAndReturn("BuildSpecifier", buildSpecifier); cruiseRequestWrapperMock.ExpectAndReturn("ProjectSpecifier", projectSpecifier); pluginLinkCalculatorMock.ExpectAndReturn("GetBuildPluginLinks", links, buildSpecifier); string recentBuildsView = ""; recentBuildsViewBuilderMock.ExpectAndReturn("BuildRecentBuildsTable", recentBuildsView, buildSpecifier, null); IBuildSpecifier nextBuildSpecifier = new DefaultBuildSpecifier(projectSpecifier, "next"); IBuildSpecifier previousBuildSpecifier = new DefaultBuildSpecifier(projectSpecifier, "previous"); IAbsoluteLink latestLink = new GeneralAbsoluteLink("test latest"); IAbsoluteLink nextLink = new GeneralAbsoluteLink("test next"); IAbsoluteLink previousLink = new GeneralAbsoluteLink("test previous"); buildNameRetrieverMock.ExpectAndReturn("GetNextBuildSpecifier", nextBuildSpecifier, buildSpecifier, null); buildNameRetrieverMock.ExpectAndReturn("GetPreviousBuildSpecifier", previousBuildSpecifier, buildSpecifier, null); string action = BuildReportBuildPlugin.ACTION_NAME; linkFactoryMock.ExpectAndReturn("CreateProjectLink", latestLink, projectSpecifier, LatestBuildReportProjectPlugin.ACTION_NAME); linkFactoryMock.ExpectAndReturn("CreateBuildLink", nextLink, nextBuildSpecifier, "", action); linkFactoryMock.ExpectAndReturn("CreateBuildLink", previousLink, previousBuildSpecifier, "", action); velocityContext["links"] = links; velocityContext["recentBuildsTable"] = recentBuildsView; velocityContext["latestLink"] = latestLink; velocityContext["nextLink"] = nextLink; velocityContext["previousLink"] = previousLink; velocityViewGeneratorMock.ExpectAndReturn("GenerateView", velocityResponse, @"BuildSideBar.vm", new HashtableConstraint(velocityContext)); // Execute HtmlFragmentResponse returnedResponse = sideBarViewBuilder.Execute(cruiseRequestWrapperMock.MockInstance as ICruiseRequest); // Verify Assert.AreEqual(velocityResponse, returnedResponse); VerifyAll(); }
public void Setup() { buildRetrieverMock = new DynamicMock(typeof(IBuildRetriever)); velocityViewGeneratorMock = new DynamicMock(typeof(IVelocityViewGenerator)); urlBuilderMock = new DynamicMock(typeof(ICruiseUrlBuilder)); requestMock = new DynamicMock(typeof(ICruiseRequest)); fingerprintFactoryMock = new DynamicMock(typeof(IFingerprintFactory)); buildLogAction = new HtmlBuildLogAction((IBuildRetriever)buildRetrieverMock.MockInstance, (IVelocityViewGenerator)velocityViewGeneratorMock.MockInstance, (ICruiseUrlBuilder)urlBuilderMock.MockInstance, (IFingerprintFactory)fingerprintFactoryMock.MockInstance, null); buildLog = "some stuff in a log with a < and >"; buildSpecifier = new DefaultBuildSpecifier(new DefaultProjectSpecifier(new DefaultServerSpecifier("myserver"), "myproject"), "mybuild"); build = new Build(buildSpecifier, buildLog); response = new HtmlFragmentResponse("foo"); }
public void Setup() { serverSpecifier = new DefaultServerSpecifier(serverName); projectSpecifier = new DefaultProjectSpecifier(serverSpecifier, projectName); buildSpecifier = new DefaultBuildSpecifier(projectSpecifier, buildName); linkFactoryMock = new DynamicMock(typeof(ILinkFactory)); configurationMock = new DynamicMock(typeof(IPluginConfiguration)); Plugins = new DefaultPluginLinkCalculator((ILinkFactory)linkFactoryMock.MockInstance, (IPluginConfiguration)configurationMock.MockInstance); pluginMock1 = new DynamicMock(typeof(IPlugin)); pluginMock2 = new DynamicMock(typeof(IPlugin)); action1 = new ImmutableNamedAction("Action Name 1", null); action2 = new ImmutableNamedAction("Action Name 2", null); action3 = new ImmutableNamedAction("Action Name 3", null); pluginMock1.ExpectAndReturn("LinkDescription", "Description 1"); pluginMock1.ExpectAndReturn("NamedActions", new INamedAction[] { action1 }); pluginMock2.ExpectAndReturn("LinkDescription", "Description 2"); pluginMock2.ExpectAndReturn("NamedActions", new INamedAction[] { action2 }); link1 = (IAbsoluteLink) new DynamicMock(typeof(IAbsoluteLink)).MockInstance; link2 = (IAbsoluteLink) new DynamicMock(typeof(IAbsoluteLink)).MockInstance; }
public void Setup() { serverSpecifier = new DefaultServerSpecifier(serverName); projectSpecifier = new DefaultProjectSpecifier(serverSpecifier, projectName); buildSpecifier = new DefaultBuildSpecifier(projectSpecifier, buildName); linkFactoryMock = new Mock <ILinkFactory>(); configurationMock = new Mock <IPluginConfiguration>(); Plugins = new DefaultPluginLinkCalculator((ILinkFactory)linkFactoryMock.Object, (IPluginConfiguration)configurationMock.Object); pluginMock1 = new Mock <IPlugin>(); pluginMock2 = new Mock <IPlugin>(); action1 = new ImmutableNamedAction("Action Name 1", null); action2 = new ImmutableNamedAction("Action Name 2", null); action3 = new ImmutableNamedAction("Action Name 3", null); pluginMock1.SetupGet(plugin => plugin.LinkDescription).Returns("Description 1").Verifiable(); pluginMock1.SetupGet(plugin => plugin.NamedActions).Returns(new INamedAction[] { action1 }).Verifiable(); pluginMock2.SetupGet(plugin => plugin.LinkDescription).Returns("Description 2").Verifiable(); pluginMock2.SetupGet(plugin => plugin.NamedActions).Returns(new INamedAction[] { action2 }).Verifiable(); link1 = (IAbsoluteLink) new Mock <IAbsoluteLink>().Object; link2 = (IAbsoluteLink) new Mock <IAbsoluteLink>().Object; }
public void ShouldGetBuildLogAndReturnResultOfDelegateTransformer() { DynamicMock buildRetrieverMock = new DynamicMock(typeof(IBuildRetriever)); DynamicMock delegateTransformerMock = new DynamicMock(typeof(IMultiTransformer)); BuildRequestTransformer requestTransformer = new BuildRequestTransformer((IBuildRetriever)buildRetrieverMock.MockInstance, (IMultiTransformer)delegateTransformerMock.MockInstance); DefaultBuildSpecifier buildSpecifier = new DefaultBuildSpecifier(new DefaultProjectSpecifier(new DefaultServerSpecifier("myServer"), "myProject"), "myBuild"); Build build = new Build(buildSpecifier, "logContents"); buildRetrieverMock.ExpectAndReturn("GetBuild", build, buildSpecifier, null); string[] fileNames = new string[] { "file1", "file2" }; delegateTransformerMock.ExpectAndReturn("Transform", "transformed", "logContents", fileNames, null); Assert.AreEqual("transformed", requestTransformer.Transform(buildSpecifier, fileNames, null, null)); buildRetrieverMock.Verify(); delegateTransformerMock.Verify(); }
public void ShouldGetBuildLogAndReturnResultOfDelegateTransformer() { var buildRetrieverMock = new Mock <IBuildRetriever>(); var delegateTransformerMock = new Mock <IMultiTransformer>(); BuildRequestTransformer requestTransformer = new BuildRequestTransformer((IBuildRetriever)buildRetrieverMock.Object, (IMultiTransformer)delegateTransformerMock.Object); DefaultBuildSpecifier buildSpecifier = new DefaultBuildSpecifier(new DefaultProjectSpecifier(new DefaultServerSpecifier("myServer"), "myProject"), "myBuild"); Build build = new Build(buildSpecifier, "logContents"); buildRetrieverMock.Setup(retriever => retriever.GetBuild(buildSpecifier, null)).Returns(build).Verifiable(); string[] fileNames = new string[] { "file1", "file2" }; delegateTransformerMock.Setup(transformer => transformer.Transform("logContents", fileNames, null)).Returns("transformed").Verifiable(); Assert.AreEqual("transformed", requestTransformer.Transform(buildSpecifier, fileNames, null, null)); buildRetrieverMock.Verify(); delegateTransformerMock.Verify(); }
public void ExecuteWorksForDataRequest() { var url1 = "build/1"; var url2 = "build/2"; var appPath = "/"; var farmService = this.mocks.StrictMock <IFarmService>(); var viewGenerator = this.mocks.StrictMock <IVelocityViewGenerator>(); var urlBuilder = this.mocks.StrictMock <ICruiseUrlBuilder>(); var cruiseRequest = this.mocks.StrictMock <ICruiseRequest>(); var request = this.mocks.StrictMock <IRequest>(); var projectSpec = this.mocks.StrictMock <IProjectSpecifier>(); var build1 = new DefaultBuildSpecifier(projectSpec, "log20100406071725Lbuild.1.xml"); var build2 = new DefaultBuildSpecifier(projectSpec, "log20100406071725.xml"); var builds = new IBuildSpecifier[] { build1, build2 }; SetupResult.For(cruiseRequest.Request).Return(request); SetupResult.For(cruiseRequest.ProjectSpecifier).Return(projectSpec); SetupResult.For(cruiseRequest.RetrieveSessionToken()).Return(null); SetupResult.For(request.FileNameWithoutExtension).Return(ProjectTimelineAction.DataActionName); SetupResult.For(request.ApplicationPath).Return(appPath); SetupResult.For(farmService.GetBuildSpecifiers(projectSpec, null)).Return(builds); SetupResult.For(urlBuilder.BuildBuildUrl(BuildReportBuildPlugin.ACTION_NAME, build1)).Return(url1); SetupResult.For(urlBuilder.BuildBuildUrl(BuildReportBuildPlugin.ACTION_NAME, build2)).Return(url2); this.mocks.ReplayAll(); var plugin = new ProjectTimelineAction(viewGenerator, farmService, urlBuilder); var response = plugin.Execute(cruiseRequest); this.mocks.VerifyAll(); Assert.IsInstanceOf <XmlFragmentResponse>(response); var actual = response as XmlFragmentResponse; var expected = "<data>" + "<event start=\"Tue, 06 Apr 2010 07:17:25 GMT\" title=\"Success (1)\" color=\"green\" icon=\"/javascript/Timeline/images/dark-green-circle.png\"><a href=\"build/1\">View Build</a></event>" + "<event start=\"Tue, 06 Apr 2010 07:17:25 GMT\" title=\"Failure\" color=\"red\" icon=\"/javascript/Timeline/images/dark-red-circle.png\"><a href=\"build/2\">View Build</a></event>" + "</data>"; Assert.AreEqual(expected, actual.ResponseFragment); }
public void Setup() { farmServiceMock = new Mock <IFarmService>(); velocityTransformerMock = new Mock <IVelocityTransformer>(); velocityViewGeneratorMock = new Mock <IVelocityViewGenerator>(); linkFactoryMock = new Mock <ILinkFactory>(); linkListFactoryMock = new Mock <ILinkListFactory>(); fingerprintFactoryMock = new Mock <IFingerprintFactory>(); urlBuilderMock = new Mock <ICruiseUrlBuilder>(); lister = new RecentBuildLister( (IFarmService)farmServiceMock.Object, (IVelocityTransformer)velocityTransformerMock.Object, (IVelocityViewGenerator)velocityViewGeneratorMock.Object, (ILinkFactory)linkFactoryMock.Object, (ILinkListFactory)linkListFactoryMock.Object, (IFingerprintFactory)fingerprintFactoryMock.Object, (ICruiseUrlBuilder)urlBuilderMock.Object, null); projectSpecifier = new DefaultProjectSpecifier(new DefaultServerSpecifier("myServer"), "myProject"); build2Specifier = new DefaultBuildSpecifier(projectSpecifier, "log20070401013456.xml"); build1Specifier = new DefaultBuildSpecifier(projectSpecifier, "build1"); }
public void Setup() { configurationMock = new Mock <IRemoteServicesConfiguration>(); cruiseManagerFactoryMock = new Mock <ICruiseServerClientFactory>(); cruiseManagerMock = new Mock <ICruiseServerClient>(); serverSpecifier = new DefaultServerSpecifier("myserver"); projectSpecifier = new DefaultProjectSpecifier(serverSpecifier, "myproject"); buildSpecifier = new DefaultBuildSpecifier(projectSpecifier, "mybuild"); buildSpecifierForUnknownServer = new DefaultBuildSpecifier(new DefaultProjectSpecifier(new DefaultServerSpecifier("unknownServer"), "myProject"), "myBuild"); managerWrapper = new ServerAggregatingCruiseManagerWrapper( (IRemoteServicesConfiguration)configurationMock.Object, (ICruiseServerClientFactory)cruiseManagerFactoryMock.Object ); serverLocation = new ServerLocation(); serverLocation.Name = "myserver"; serverLocation.Url = "http://myurl"; serverLocation.AllowForceBuild = true; otherServerLocation = new ServerLocation(); otherServerLocation.Name = "myotherserver"; otherServerLocation.Url = "http://myotherurl"; }
public void ShouldGetProjectDetailsAndUseCorrectTemplate() { // Setup ExternalLink[] links = new ExternalLink[] { new ExternalLink("foo", "bar") }; IProjectSpecifier projectSpecifier = new DefaultProjectSpecifier(new DefaultServerSpecifier("myServer"), "myProject"); //IBuildSpecifier buildSpecifier = new DefaultBuildSpecifier(projectSpecifier, "myBuild"); IBuildSpecifier buildSpecifier = new DefaultBuildSpecifier(projectSpecifier, "log20050818103522Lbuild.0.0.0.9.xml"); Hashtable expectedContext = new Hashtable(); DynamicMock requestStub = new DynamicMock(typeof(IRequest)); IRequest request = (IRequest)requestStub.MockInstance; cruiseRequestMock.SetupResult("Request", request); requestStub.SetupResult("ApplicationPath", "myAppPath"); farmServiceMock.ExpectAndReturn("GetRSSFeed", "", projectSpecifier); expectedContext["projectName"] = "myProject"; expectedContext["externalLinks"] = links; expectedContext["noLogsAvailable"] = false; expectedContext["mostRecentBuildUrl"] = "buildUrl"; expectedContext["applicationPath"] = "myAppPath"; expectedContext["rssDataPresent"] = false; expectedContext["rss"] = new GeneralAbsoluteLink("RSS", @"http://localhost/myServer"); IResponse response = new HtmlFragmentResponse("myView"); cruiseRequestMock.ExpectAndReturn("ProjectSpecifier", projectSpecifier); cruiseRequestMock.ExpectAndReturn("ProjectSpecifier", projectSpecifier); farmServiceMock.ExpectAndReturn("GetMostRecentBuildSpecifiers", new IBuildSpecifier[] { buildSpecifier }, projectSpecifier, 1, null); farmServiceMock.ExpectAndReturn("GetExternalLinks", links, projectSpecifier, null); linkFactoryMock.ExpectAndReturn("CreateProjectLink", new GeneralAbsoluteLink("foo", "buildUrl"), projectSpecifier, LatestBuildReportProjectPlugin.ACTION_NAME); linkFactoryMock.ExpectAndReturn("CreateProjectLink", new GeneralAbsoluteLink("RSS", @"myServer"), projectSpecifier, ThoughtWorks.CruiseControl.WebDashboard.Plugins.RSS.RSSFeed.ACTION_NAME); farmServiceMock.ExpectAndReturn("GetMostRecentBuildSpecifiers", new IBuildSpecifier[] { buildSpecifier }, projectSpecifier, ProjectReportProjectPlugin.AmountOfBuildsToRetrieve, null); expectedContext["graphDayInfo"] = new NMock.Constraints.IsTypeOf(typeof(ArrayList)); expectedContext["highestAmountPerDay"] = 1; expectedContext["dateMultiPlier"] = 1; expectedContext["OKPercent"] = 100; expectedContext["NOKPercent"] = 0; expectedContext["server"] = new DefaultServerSpecifier("myServer"); expectedContext["StatusMessage"] = string.Empty; expectedContext["status"] = null; expectedContext["StartStopButtonName"] = "StartBuild"; expectedContext["StartStopButtonValue"] = "Start"; expectedContext["ForceAbortBuildButtonName"] = "ForceBuild"; expectedContext["ForceAbortBuildButtonValue"] = "Force"; viewGeneratorMock.ExpectAndReturn("GenerateView", response, @"ProjectReport.vm", new HashtableConstraint(expectedContext)); // Execute IResponse returnedResponse = plugin.Execute(cruiseRequest); // Verify Assert.AreEqual(response, returnedResponse); VerifyAll(); }
public void ShouldGetProjectDetailsAndUseCorrectTemplate() { // Setup ExternalLink[] links = new ExternalLink[] { new ExternalLink("foo", "bar") }; IProjectSpecifier projectSpecifier = new DefaultProjectSpecifier(new DefaultServerSpecifier("myServer"), "myProject"); //IBuildSpecifier buildSpecifier = new DefaultBuildSpecifier(projectSpecifier, "myBuild"); IBuildSpecifier buildSpecifier = new DefaultBuildSpecifier(projectSpecifier, "log20050818103522Lbuild.0.0.0.9.xml"); Hashtable expectedContext = new Hashtable(); var requestStub = new Mock <IRequest>(); IRequest request = (IRequest)requestStub.Object; cruiseRequestMock.SetupGet(r => r.Request).Returns(request); requestStub.SetupGet(r => r.ApplicationPath).Returns("myAppPath"); farmServiceMock.Setup(service => service.GetRSSFeed(projectSpecifier, It.IsAny <string>())).Returns("").Verifiable(); expectedContext["projectName"] = "myProject"; expectedContext["externalLinks"] = links; expectedContext["noLogsAvailable"] = false; expectedContext["mostRecentBuildUrl"] = "buildUrl"; expectedContext["applicationPath"] = "myAppPath"; expectedContext["rssDataPresent"] = false; expectedContext["rss"] = new GeneralAbsoluteLink("RSS", @"http://localhost/myServer"); HtmlFragmentResponse response = new HtmlFragmentResponse("myView"); cruiseRequestMock.SetupGet(r => r.ProjectSpecifier).Returns(projectSpecifier).Verifiable(); farmServiceMock.Setup(service => service.GetMostRecentBuildSpecifiers(projectSpecifier, 1, null)).Returns(new IBuildSpecifier[] { buildSpecifier }).Verifiable(); farmServiceMock.Setup(service => service.GetExternalLinks(projectSpecifier, null)).Returns(links).Verifiable(); linkFactoryMock.Setup(factory => factory.CreateProjectLink(projectSpecifier, LatestBuildReportProjectPlugin.ACTION_NAME)).Returns(new GeneralAbsoluteLink("foo", "buildUrl")).Verifiable(); linkFactoryMock.Setup(factory => factory.CreateProjectLink(projectSpecifier, ThoughtWorks.CruiseControl.WebDashboard.Plugins.RSS.RSSFeed.ACTION_NAME)).Returns(new GeneralAbsoluteLink("RSS", @"myServer")).Verifiable(); farmServiceMock.Setup(service => service.GetMostRecentBuildSpecifiers(projectSpecifier, ProjectReportProjectPlugin.AmountOfBuildsToRetrieve, null)).Returns(new IBuildSpecifier[] { buildSpecifier }).Verifiable(); expectedContext["graphDayInfo"] = new ArrayList(); expectedContext["highestAmountPerDay"] = 1; expectedContext["dateMultiPlier"] = 1; expectedContext["OKPercent"] = 100; expectedContext["NOKPercent"] = 0; expectedContext["server"] = new DefaultServerSpecifier("myServer"); expectedContext["StatusMessage"] = string.Empty; expectedContext["status"] = null; expectedContext["StartStopButtonName"] = "StartBuild"; expectedContext["StartStopButtonValue"] = "Start"; expectedContext["ForceAbortBuildButtonName"] = "ForceBuild"; expectedContext["ForceAbortBuildButtonValue"] = "Force"; viewGeneratorMock.Setup(generator => generator.GenerateView(@"ProjectReport.vm", It.IsAny <Hashtable>())). Callback <string, Hashtable>((name, context) => Assert.AreEqual(context, expectedContext)).Returns(response).Verifiable(); // Execute IResponse returnedResponse = plugin.Execute(cruiseRequest); // Verify Assert.AreEqual(response, returnedResponse); VerifyAll(); }