示例#1
0
        public void NamedActionsReturnsSingleAction()
        {
            var plugin  = new ProjectStatusPlugin(null, null, null);
            var actions = plugin.NamedActions;

            Assert.AreEqual(1, actions.Length);
            Assert.IsInstanceOf <ImmutableNamedAction>(actions[0]);
            Assert.AreEqual("ViewProjectStatus", actions[0].ActionName);
            Assert.AreSame(plugin, actions[0].Action);
        }
示例#2
0
        public void ExecuteGeneratesStatusForNonRoot()
        {
            var url           = "/somewhere/action";
            var appPath       = "/ccnet/";
            var projectName   = "The Project";
            var farmService   = this.mocks.StrictMock <IFarmService>();
            var viewGenerator = this.mocks.StrictMock <IVelocityViewGenerator>();
            var cruiseRequest = this.mocks.StrictMock <ICruiseRequest>();
            var request       = this.mocks.StrictMock <IRequest>();
            var projectSpec   = this.mocks.StrictMock <IProjectSpecifier>();
            var urlBuilder    = this.mocks.StrictMock <ICruiseUrlBuilder>();

            SetupResult.For(cruiseRequest.Request).Return(request);
            SetupResult.For(cruiseRequest.ProjectSpecifier).Return(projectSpec);
            SetupResult.For(cruiseRequest.RetrieveSessionToken()).Return(null);
            SetupResult.For(request.ApplicationPath).Return(appPath);
            SetupResult.For(projectSpec.ProjectName).Return(projectName);
            SetupResult.For(farmService.GetLinkedSiteId(projectSpec, null, "ohloh")).Return("1234567");
            SetupResult.For(urlBuilder.BuildProjectUrl(ProjectStatusAction.ActionName, projectSpec)).Return(url);
            Expect.Call(viewGenerator.GenerateView(null, null))
            .Callback <string, Hashtable>((n, ht) =>
            {
                Assert.AreEqual("ProjectStatusReport.vm", n);
                Assert.IsNotNull(ht);
                Assert.IsTrue(ht.ContainsKey("dataUrl"));
                Assert.AreEqual("/somewhere/action?view=json", ht["dataUrl"]);
                Assert.IsTrue(ht.ContainsKey("projectName"));
                Assert.AreEqual(projectName, ht["projectName"]);
                Assert.IsTrue(ht.ContainsKey("applicationPath"));
                Assert.AreEqual("/ccnet/", ht["applicationPath"]);
                return(true);
            })
            .Return(new HtmlFragmentResponse("from nVelocity"));

            this.mocks.ReplayAll();
            var plugin   = new ProjectStatusPlugin(farmService, viewGenerator, urlBuilder);
            var response = plugin.Execute(cruiseRequest);

            this.mocks.VerifyAll();
            Assert.IsInstanceOf <HtmlFragmentResponse>(response);
            var actual = response as HtmlFragmentResponse;

            Assert.AreEqual("from nVelocity", actual.ResponseFragment);
        }
        public void ExecuteGeneratesStatusForNonRoot()
        {
            var url           = "/somewhere/action";
            var appPath       = "/ccnet/";
            var projectName   = "The Project";
            var farmService   = this.mocks.Create <IFarmService>(MockBehavior.Strict).Object;
            var viewGenerator = this.mocks.Create <IVelocityViewGenerator>(MockBehavior.Strict).Object;
            var cruiseRequest = this.mocks.Create <ICruiseRequest>(MockBehavior.Strict).Object;
            var request       = this.mocks.Create <IRequest>(MockBehavior.Strict).Object;
            var projectSpec   = this.mocks.Create <IProjectSpecifier>(MockBehavior.Strict).Object;
            var urlBuilder    = this.mocks.Create <ICruiseUrlBuilder>(MockBehavior.Strict).Object;

            Mock.Get(cruiseRequest).SetupGet(_cruiseRequest => _cruiseRequest.Request).Returns(request);
            Mock.Get(cruiseRequest).SetupGet(_cruiseRequest => _cruiseRequest.ProjectSpecifier).Returns(projectSpec);
            Mock.Get(cruiseRequest).Setup(_cruiseRequest => _cruiseRequest.RetrieveSessionToken()).Returns((string)null);
            Mock.Get(request).SetupGet(_request => _request.ApplicationPath).Returns(appPath);
            Mock.Get(projectSpec).SetupGet(_projectSpec => _projectSpec.ProjectName).Returns(projectName);
            Mock.Get(farmService).Setup(_farmService => _farmService.GetLinkedSiteId(projectSpec, null, "ohloh")).Returns("1234567");
            Mock.Get(urlBuilder).Setup(_urlBuilder => _urlBuilder.BuildProjectUrl(ProjectStatusAction.ActionName, projectSpec)).Returns(url);
            Mock.Get(viewGenerator).Setup(_viewGenerator => _viewGenerator.GenerateView(It.IsAny <string>(), It.IsAny <Hashtable>()))
            .Callback <string, Hashtable>((n, ht) =>
            {
                Assert.AreEqual("ProjectStatusReport.vm", n);
                Assert.IsNotNull(ht);
                Assert.IsTrue(ht.ContainsKey("dataUrl"));
                Assert.AreEqual("/somewhere/action?view=json", ht["dataUrl"]);
                Assert.IsTrue(ht.ContainsKey("projectName"));
                Assert.AreEqual(projectName, ht["projectName"]);
                Assert.IsTrue(ht.ContainsKey("applicationPath"));
                Assert.AreEqual("/ccnet/", ht["applicationPath"]);
            })
            .Returns(new HtmlFragmentResponse("from nVelocity")).Verifiable();

            var plugin   = new ProjectStatusPlugin(farmService, viewGenerator, urlBuilder);
            var response = plugin.Execute(cruiseRequest);

            this.mocks.Verify();
            Assert.IsInstanceOf <HtmlFragmentResponse>(response);
            var actual = response as HtmlFragmentResponse;

            Assert.AreEqual("from nVelocity", actual.ResponseFragment);
        }
示例#4
0
        public void DescriptionIsCorrect()
        {
            var plugin = new ProjectStatusPlugin(null, null, null);

            Assert.AreEqual("Project Status", plugin.LinkDescription);
        }