public async Task Test_HomeController_Index_ReturnsViewModel()
        {
            //Arrange
            httpClientMock.Setup(call =>
                                 call.ReadAsStringAsync(It.Is <string>(x => x == "review")))
            .Returns(() => Task.FromResult(
                         new Web.Infrastructure.HttpResult {
                Content = @"[{
                        'id': 9,
                        'date': '2016-06-01',
                        'salary': '100000.00',
                        'type': 'S',
                        'employee': 12,
                        'position': 4
                    }]", StatusCode = 200
            }));

            Web.Controllers.HomeController homeController = new Web.Controllers.HomeController(httpClientMock.Object);

            //Act
            var response = await homeController.Index();

            //Assert
            Assert.IsInstanceOfType(response, typeof(ViewResult));

            if (response is ViewResult vResult)
            {
                Assert.IsInstanceOfType(vResult.Model, typeof(DashboardViewModel));
                var model = vResult.Model as DashboardViewModel;
                Assert.IsNotNull(model);

                Assert.AreEqual(1, model.NumberOfEmployees);
            }
        }
Beispiel #2
0
 public void CanRunIndexAction()
 {
     var controller = new Web.Controllers.HomeController();
     var result = controller.Index();
     Assert.NotNull(result);
     Assert.IsType<ViewResult>(result);
 }
Beispiel #3
0
        public async Task Export_WhenCalledWithoutNumberOfNews_AssertBuildAsyncWasCalledOnDashboardFactoryWithDashboardSettingsWhereNumberOfNewsIsEqualTo100()
        {
            Web.Controllers.HomeController sut = CreateSut();

            await sut.Export();

            _dashboardFactoryMock.Verify(m => m.BuildAsync(It.Is <IDashboardSettings>(value => value != null && value.NumberOfNews == 100)), Times.Once);
        }
Beispiel #4
0
        public void TopContent_WhenCalled_AssertToDashboardViewModelWasCalledOnCookieHelper()
        {
            Web.Controllers.HomeController sut = CreateSut();

            sut.TopContent();

            _cookieHelperMock.Verify(m => m.ToDashboardViewModel());
        }
 public void SetUp()
 {
     _legalEntitiesService = new Mock <ILegalEntitiesService>();
     _configuration        = new Mock <IOptions <ExternalLinksConfiguration> >();
     _sut       = new Web.Controllers.HomeController(_legalEntitiesService.Object, _configuration.Object);
     _fixture   = new Fixture();
     _accountId = _fixture.Create <string>();
 }
Beispiel #6
0
        public void Settings_WhenCalled_AssertToToDashboardSettingsViewModelWasCalledOnCookieHelper()
        {
            Web.Controllers.HomeController sut = CreateSut();

            sut.Settings();

            _cookieHelperMock.Verify(m => m.ToDashboardSettingsViewModel());
        }
Beispiel #7
0
        public async Task Export_WhenRedditAccessTokenIsWhiteSpaces_AssertBuildAsyncWasCalledOnDashboardFactoryWithDashboardSettingsWithoutRedditValues()
        {
            Web.Controllers.HomeController sut = CreateSut();

            await sut.Export(redditAccessToken : "  ", includeNsfwContent : _random.Next(100) > 50, onlyNsfwContent : _random.Next(100) > 50);

            _dashboardFactoryMock.Verify(m => m.BuildAsync(It.Is <IDashboardSettings>(value => value != null && value.RedditAccessToken == null && value.UseReddit == false && value.IncludeNsfwContent == false && value.OnlyNsfwContent == false)), Times.Once);
        }
Beispiel #8
0
        public async Task Export_WhenNumberOfNewsIsLowerThan0_AssertBuildAsyncWasNotCalledOnDashboardFactory()
        {
            Web.Controllers.HomeController sut = CreateSut();

            int numberOfNews = _random.Next(1, 5) * -1;
            await sut.Export(numberOfNews);

            _dashboardFactoryMock.Verify(m => m.BuildAsync(It.IsAny <IDashboardSettings>()), Times.Never);
        }
Beispiel #9
0
        public async Task Export_WhenNumberOfNewsIsGreaterThan250_AssertExportAsyncWasNotCalledOnDashboardModelExporter()
        {
            Web.Controllers.HomeController sut = CreateSut();

            int numberOfNews = _random.Next(251, 255);
            await sut.Export(numberOfNews);

            _dashboardModelExporterMock.Verify(m => m.ExportAsync(It.IsAny <IDashboard>()), Times.Never);
        }
Beispiel #10
0
        public void ConstructorShould_SetPassedDataCorrectly_WhenDataIsNotNull()
        {
            var factoryMock         = new Mock <IViewModelFactory>();
            var questionServiceMock = new Mock <IQuestionService>();

            var controller = new Web.Controllers.HomeController(factoryMock.Object, questionServiceMock.Object);

            Assert.IsNotNull(controller);
        }
Beispiel #11
0
        public async Task Export_WhenRedditAccessTokenCanBeDeserializedAndOnlyNsfwContentIsSet_AssertBuildAsyncWasCalledOnDashboardFactoryWithDashboardSettingsWhereOnlyNsfwContentIsTrue()
        {
            Web.Controllers.HomeController sut = CreateSut();

            string redditAccessToken = BuildRedditAccessTokenAsBase64(_random);
            await sut.Export(redditAccessToken : redditAccessToken, onlyNsfwContent : true);

            _dashboardFactoryMock.Verify(m => m.BuildAsync(It.Is <IDashboardSettings>(value => value != null && value.OnlyNsfwContent)), Times.Once);
        }
Beispiel #12
0
        public async Task Export_WhenRedditAccessTokenCanBeDeserialized_AssertBuildAsyncWasCalledOnDashboardFactoryWithDashboardSettingsWhereRedditAccessTokenIsEqualToRedditAccessToken()
        {
            Web.Controllers.HomeController sut = CreateSut();

            string redditAccessToken = BuildRedditAccessTokenAsBase64(_random);
            await sut.Export(redditAccessToken : redditAccessToken);

            _dashboardFactoryMock.Verify(m => m.BuildAsync(It.Is <IDashboardSettings>(value => value != null && value.RedditAccessToken != null && string.CompareOrdinal(value.RedditAccessToken.ToBase64(), redditAccessToken) == 0)), Times.Once);
        }
Beispiel #13
0
        public async Task Export_WhenRedditAccessTokenCannotBeDeserialized_AssertExportAsyncWasNotCalledOnDashboardModelExporter()
        {
            Web.Controllers.HomeController sut = CreateSut();

            string redditAccessToken = Convert.ToBase64String(Encoding.UTF8.GetBytes(Guid.NewGuid().ToString("D")));
            await sut.Export(redditAccessToken : redditAccessToken);

            _dashboardModelExporterMock.Verify(m => m.ExportAsync(It.IsAny <IDashboard>()), Times.Never);
        }
Beispiel #14
0
        public async Task Export_WhenRedditAccessTokenIsNotBase64_AssertExportAsyncWasNotCalledOnDashboardModelExporter()
        {
            Web.Controllers.HomeController sut = CreateSut();

            string redditAccessToken = Guid.NewGuid().ToString("D");
            await sut.Export(redditAccessToken : redditAccessToken);

            _dashboardModelExporterMock.Verify(m => m.ExportAsync(It.IsAny <IDashboard>()), Times.Never);
        }
Beispiel #15
0
        public void Settings_WhenToDashboardSettingsViewModelWasNotStoredInCoookie_ReturnsBadRequestResult()
        {
            Web.Controllers.HomeController sut = CreateSut(false);

            IActionResult result = sut.Settings();

            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result, typeof(BadRequestResult));
        }
Beispiel #16
0
        public void ContactShould_ReturnDefaultView()
        {
            var factoryMock         = new Mock <IViewModelFactory>();
            var questionServiceMock = new Mock <IQuestionService>();

            var controller = new Web.Controllers.HomeController(factoryMock.Object, questionServiceMock.Object);

            controller.WithCallTo(c => c.Contact())
            .ShouldRenderDefaultView();
        }
Beispiel #17
0
        public async Task Export_WhenRedditAccessTokenIsWhiteSpaces_AssertExportAsyncWasCalledOnDashboardModelExporterWithBuildDashboardFromDashboardFactory()
        {
            IDashboard dashboard = BuildDashboard();

            Web.Controllers.HomeController sut = CreateSut(dashboard);

            await sut.Export(redditAccessToken : "  ", includeNsfwContent : _random.Next(100) > 50, onlyNsfwContent : _random.Next(100) > 50);

            _dashboardModelExporterMock.Verify(m => m.ExportAsync(It.Is <IDashboard>(value => value == dashboard)), Times.Once);
        }
Beispiel #18
0
        public async Task Export_WhenCalledWithoutNumberOfNews_AssertExportAsyncWasCalledOnDashboardModelExporterWithBuildDashboardFromDashboardFactory()
        {
            IDashboard dashboard = BuildDashboard();

            Web.Controllers.HomeController sut = CreateSut(dashboard);

            await sut.Export();

            _dashboardModelExporterMock.Verify(m => m.ExportAsync(It.Is <IDashboard>(value => value == dashboard)), Times.Once);
        }
Beispiel #19
0
        public async Task Export_WhenRedditAccessTokenCanBeDeserializedAndOnlyNsfwContentIsSet_AssertExportAsyncWasCalledOnDashboardModelExporterWithBuildDashboardFromDashboardFactory()
        {
            IDashboard dashboard = BuildDashboard();

            Web.Controllers.HomeController sut = CreateSut(dashboard);

            string redditAccessToken = BuildRedditAccessTokenAsBase64(_random);
            await sut.Export(redditAccessToken : redditAccessToken, onlyNsfwContent : true);

            _dashboardModelExporterMock.Verify(m => m.ExportAsync(It.Is <IDashboard>(value => value == dashboard)), Times.Once);
        }
Beispiel #20
0
        public void IndexShould_CallFactoryMethodCreateSearchViewModel()
        {
            var factoryMock         = new Mock <IViewModelFactory>();
            var questionServiceMock = new Mock <IQuestionService>();

            var controller = new Web.Controllers.HomeController(factoryMock.Object, questionServiceMock.Object);

            controller.Index();

            factoryMock.Verify(f => f.CreateSearchViewModel(), Times.Once);
        }
Beispiel #21
0
        public void SetUp()
        {
            _legalEntitiesService = new Mock <ILegalEntitiesService>();
            _configuration        = new Mock <IOptions <ExternalLinksConfiguration> >();
            _externalLinks        = new ExternalLinksConfiguration {
                ManageApprenticeshipSiteUrl = "https://manage-apprentices.com"
            };
            _configuration.Setup(x => x.Value).Returns(_externalLinks);
            _fixture              = new Fixture();
            _accountId            = _fixture.Create <string>();
            _accountLegalEntityId = _fixture.Create <string>();

            _sut = new Web.Controllers.HomeController(_legalEntitiesService.Object, _configuration.Object);
        }
Beispiel #22
0
        public void SendQuestionShould_ReturnContactView_WhenModelIsNotValid()
        {
            var factoryMock         = new Mock <IViewModelFactory>();
            var questionServiceMock = new Mock <IQuestionService>();

            var controller = new Web.Controllers.HomeController(factoryMock.Object, questionServiceMock.Object);

            controller.ModelState.AddModelError("key", "message");

            var model = new ContactViewModel();

            controller.WithCallTo(c => c.SendQuestion(model))
            .ShouldRenderView("Contact")
            .WithModel(model);
        }
Beispiel #23
0
        public void SubContent_WhenDashboardViewModelWasNotStoredInCoookie_ReturnsPartialViewResultForEmptyContent()
        {
            Web.Controllers.HomeController sut = CreateSut(false);

            IActionResult result = sut.SubContent();

            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result, typeof(PartialViewResult));

            PartialViewResult viewResult = (PartialViewResult)result;

            Assert.IsNotNull(viewResult);
            Assert.IsNotNull(viewResult.ViewName);
            Assert.AreEqual("_EmptyContentPartial", viewResult.ViewName);
            Assert.IsNull(viewResult.Model);
        }
Beispiel #24
0
        public void IndexShould_ReturnViewWithCorrectModel()
        {
            var factoryMock         = new Mock <IViewModelFactory>();
            var questionServiceMock = new Mock <IQuestionService>();

            var model = new SearchViewModel();

            factoryMock.Setup(f => f.CreateSearchViewModel()).Returns(model);

            var controller = new Web.Controllers.HomeController(factoryMock.Object, questionServiceMock.Object);

            controller
            .WithCallTo(c => c.Index())
            .ShouldRenderDefaultView()
            .WithModel(model);
        }
Beispiel #25
0
        public async Task Export_WhenNumberOfNewsIsLowerThan0_ReturnsBadRequestObjectResult()
        {
            Web.Controllers.HomeController sut = CreateSut();

            int           numberOfNews = _random.Next(1, 5) * -1;
            IActionResult result       = await sut.Export(numberOfNews);

            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result, typeof(BadRequestObjectResult));

            BadRequestObjectResult badRequestObjectResult = result as BadRequestObjectResult;

            Assert.IsNotNull(badRequestObjectResult);
            Assert.IsNotNull(badRequestObjectResult.Value);
            Assert.IsInstanceOfType(badRequestObjectResult.Value, typeof(string));
            Assert.AreEqual("The submitted value for 'numberOfNews' cannot be lower than 0.", badRequestObjectResult.Value);
        }
Beispiel #26
0
        public async Task Export_WhenCalledWithoutNumberOfNews_ReturnsOkObjectResult()
        {
            DashboardExportModel dashboardExportModel = BuildDashboardExportModel();

            Web.Controllers.HomeController sut = CreateSut(dashboardExportModel: dashboardExportModel);

            IActionResult result = await sut.Export();

            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result, typeof(OkObjectResult));

            OkObjectResult okObjectResult = result as OkObjectResult;

            Assert.IsNotNull(okObjectResult);
            Assert.IsNotNull(okObjectResult.Value);
            Assert.AreEqual(dashboardExportModel, okObjectResult.Value);
        }
Beispiel #27
0
        public async Task Export_WhenRedditAccessTokenIsWhiteSpaces_ReturnsOkObjectResult()
        {
            DashboardExportModel dashboardExportModel = BuildDashboardExportModel();

            Web.Controllers.HomeController sut = CreateSut(dashboardExportModel: dashboardExportModel);

            IActionResult result = await sut.Export(redditAccessToken : "  ", includeNsfwContent : _random.Next(100) > 50, onlyNsfwContent : _random.Next(100) > 50);

            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result, typeof(OkObjectResult));

            OkObjectResult okObjectResult = result as OkObjectResult;

            Assert.IsNotNull(okObjectResult);
            Assert.IsNotNull(okObjectResult.Value);
            Assert.AreEqual(dashboardExportModel, okObjectResult.Value);
        }
Beispiel #28
0
        public async Task Export_WhenRedditAccessTokenCannotBeDeserialized_ReturnsBadRequestObjectResult()
        {
            Web.Controllers.HomeController sut = CreateSut();

            string        redditAccessToken = Convert.ToBase64String(Encoding.UTF8.GetBytes(Guid.NewGuid().ToString("D")));
            IActionResult result            = await sut.Export(redditAccessToken : redditAccessToken);

            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result, typeof(BadRequestObjectResult));

            BadRequestObjectResult badRequestObjectResult = result as BadRequestObjectResult;

            Assert.IsNotNull(badRequestObjectResult);
            Assert.IsNotNull(badRequestObjectResult.Value);
            Assert.IsInstanceOfType(badRequestObjectResult.Value, typeof(string));
            Assert.AreEqual("The submitted value for 'redditAccessToken' is invalid.", badRequestObjectResult.Value);
        }
Beispiel #29
0
        public async Task Export_WhenRedditAccessTokenCanBeDeserializedAndOnlyNsfwContentIsSet_ReturnsOkObjectResult()
        {
            DashboardExportModel dashboardExportModel = BuildDashboardExportModel();

            Web.Controllers.HomeController sut = CreateSut(dashboardExportModel: dashboardExportModel);

            string        redditAccessToken = BuildRedditAccessTokenAsBase64(_random);
            IActionResult result            = await sut.Export(redditAccessToken : redditAccessToken, onlyNsfwContent : true);

            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result, typeof(OkObjectResult));

            OkObjectResult okObjectResult = result as OkObjectResult;

            Assert.IsNotNull(okObjectResult);
            Assert.IsNotNull(okObjectResult.Value);
            Assert.AreEqual(dashboardExportModel, okObjectResult.Value);
        }
Beispiel #30
0
        public void Settings_WhenToDashboardSettingsViewModelWasStoredInCoookie_ReturnsPartialViewResultForDashboardSettings()
        {
            DashboardSettingsViewModel dashboardSettingsViewModel = BuildDashboardSettingsViewModel(_random);

            Web.Controllers.HomeController sut = CreateSut(dashboardSettingsViewModel: dashboardSettingsViewModel);

            IActionResult result = sut.Settings();

            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result, typeof(PartialViewResult));

            PartialViewResult viewResult = (PartialViewResult)result;

            Assert.IsNotNull(viewResult);
            Assert.IsNotNull(viewResult.ViewName);
            Assert.AreEqual("_DashboardSettingsPartial", viewResult.ViewName);
            Assert.IsNotNull(viewResult.Model);
            Assert.AreEqual(dashboardSettingsViewModel, viewResult.Model);
        }
Beispiel #31
0
        public void SetUp()
        {
            _legalEntitiesService = new Mock <ILegalEntitiesService>();
            _configuration        = new Mock <IOptions <ExternalLinksConfiguration> >();
            _claimsIdentity       = new ClaimsIdentity();
            var user = new ClaimsPrincipal(_claimsIdentity);

            _legalEntitiesService = new Mock <ILegalEntitiesService>();

            _sut = new Web.Controllers.HomeController(_legalEntitiesService.Object, _configuration.Object)
            {
                ControllerContext = new ControllerContext()
                {
                    HttpContext = new DefaultHttpContext
                    {
                        User = user
                    }
                }
            };
        }