예제 #1
0
        public void CanGetPositionsWithHistoryForClientInRepositoryWithOkDomain()
        {
            var clientRepository      = new LocalRepository <Client>();;
            var serpRankingRepository = new Mock <ISerpRankingRepository>();
            var seoService            = new Mock <ISeoService>();
            var downloadManager       = new Mock <IDownloadManager>();
            var seoDataMapper         = new Mock <ISeoDataImportMapper>();

            var client = ModelHelper.TestClient1AllDataNoReferences;

            clientRepository.Add(client);
            var startDate = new DateTime(2013, 06, 01);
            var endDate   = new DateTime(2013, 09, 01);

            serpRankingRepository.Setup(sr => sr.GetRankingsWithHistory(client.Domain, startDate, endDate))
            .Returns(new List <SerpRankingWithHistory>()
            {
                new SerpRankingWithHistory()
                {
                    RankingUrl = client.Domain
                }
            });

            var seoController = new SeoController(clientRepository, serpRankingRepository.Object,
                                                  seoService.Object, downloadManager.Object, seoDataMapper.Object);

            var result       = seoController.GetPositionsWithHistory(client.Id, startDate, endDate) as ContentResult;
            var resultObject = JsonConvert.DeserializeObject <List <SerpRankingWithHistory> >(result.Content);

            Assert.IsTrue(resultObject.Any(ro => ro.RankingUrl == client.Domain));
        }
예제 #2
0
        public void Should_Save_EditSeoViewModel_And_Return_Success_Flag()
        {
            Mock <IRedirectService>   redirectService        = new Mock <IRedirectService>();
            Mock <IPageService>       pageService            = new Mock <IPageService>();
            Mock <ISitemapService>    sitemapService         = new Mock <ISitemapService>();
            Mock <ISecurityService>   securityService        = new Mock <ISecurityService>();
            Mock <IUrlService>        urlService             = new Mock <IUrlService>();
            Mock <SavePageSeoCommand> savePageSeoCommandMock = new Mock <SavePageSeoCommand>(redirectService.Object, pageService.Object, sitemapService.Object, urlService.Object);

            savePageSeoCommandMock.SetupGet(x => x.SecurityService).Returns(securityService.Object);
            savePageSeoCommandMock.Setup(f => f.Execute(It.IsAny <EditSeoViewModel>())).Returns(new EditSeoViewModel()).Verifiable();

            SeoController seoController = new SeoController();

            seoController.CommandResolver = GetMockedCommandResolver(mock =>
            {
                mock.Setup(resolver => resolver.ResolveCommand <SavePageSeoCommand>(It.IsAny <ICommandContext>())).Returns(() => savePageSeoCommandMock.Object);
            });

            ActionResult result = seoController.EditSeo(new EditSeoViewModel());

            Assert.IsNotNull(result);
            Assert.IsInstanceOf <JsonResult>(result);

            JsonResult viewResult = (JsonResult)result;

            Assert.IsNotNull(viewResult.Data);

            Assert.IsInstanceOf <WireJson>(viewResult.Data);
            WireJson wireJson = (WireJson)viewResult.Data;

            Assert.IsTrue(wireJson.Success);

            savePageSeoCommandMock.Verify(f => f.Execute(It.IsAny <EditSeoViewModel>()), Times.Once());
        }
예제 #3
0
        public void CanConstruct()
        {
            var clientRepository      = new Mock <IRepository <Client> >();
            var serpRankingRepository = new Mock <ISerpRankingRepository>();
            var seoService            = new Mock <ISeoService>();
            var downloadManager       = new Mock <IDownloadManager>();
            var seoDataMapper         = new Mock <ISeoDataImportMapper>();

            var seoController = new SeoController(clientRepository.Object, serpRankingRepository.Object,
                                                  seoService.Object, downloadManager.Object, seoDataMapper.Object);
        }
예제 #4
0
        public void Should_Try_To_Save_EditSeoViewModel_And_Return_Error_Flag()
        {
            SeoController seoController = new SeoController();

            seoController.ModelState.AddModelError("PageTitle", "Page title required.");

            ActionResult result = seoController.EditSeo(new EditSeoViewModel());

            Assert.IsNotNull(result);
            Assert.IsInstanceOf <JsonResult>(result);

            JsonResult viewResult = (JsonResult)result;

            Assert.IsNotNull(viewResult.Data);

            Assert.IsInstanceOf <WireJson>(viewResult.Data);
            WireJson wireJson = (WireJson)viewResult.Data;

            Assert.IsFalse(wireJson.Success);
        }
예제 #5
0
 public void ThrowsErrorOnPassingInNullSettingsReader()
 {
     // Assert
     _controller = new SeoController(null);
 }
예제 #6
0
        public void Setup()
        {
            _fakeSettingsReader = new Mock <ISettingsReader>();

            _controller = new SeoController(_fakeSettingsReader.Object);
        }