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); } }
public void CanRunIndexAction() { var controller = new Web.Controllers.HomeController(); var result = controller.Index(); Assert.NotNull(result); Assert.IsType<ViewResult>(result); }
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); }
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>(); }
public void Settings_WhenCalled_AssertToToDashboardSettingsViewModelWasCalledOnCookieHelper() { Web.Controllers.HomeController sut = CreateSut(); sut.Settings(); _cookieHelperMock.Verify(m => m.ToDashboardSettingsViewModel()); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
public void Settings_WhenToDashboardSettingsViewModelWasNotStoredInCoookie_ReturnsBadRequestResult() { Web.Controllers.HomeController sut = CreateSut(false); IActionResult result = sut.Settings(); Assert.IsNotNull(result); Assert.IsInstanceOfType(result, typeof(BadRequestResult)); }
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(); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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 } } }; }