public async Task Index_Given_ResultFromService_Should_ReturnViewModelWithExpectedName() { // Arrange const string expectedName = "Example"; var items = new List <JobCategory> { new JobCategory { Name = expectedName } }; var serviceMock = new Mock <IJobCategoryService>(); serviceMock.Setup(x => x.GetAllCategories()).ReturnsAsync(items); var controller = new JobCategoryController(serviceMock.Object, _mapper); // Act var result = await controller.Index(); // Assert var viewResult = (ViewResult)result; var model = (IList <JobCategoryViewModel>)viewResult.Model; var actualName = model.First().Name; Assert.Equal(expectedName, actualName); }
public async Task Index_Given_ThreeResultsFromService_Should_ReturnCorrectNumberOfViewModels() { // Arrange var items = new List <JobCategory> { new JobCategory(), new JobCategory(), new JobCategory() }; var serviceMock = new Mock <IJobCategoryService>(); serviceMock.Setup(x => x.GetAllCategories()).ReturnsAsync(items); var controller = new JobCategoryController(serviceMock.Object, _mapper); // Act var result = await controller.Index(); // Assert var viewResult = (ViewResult)result; var model = (IList <JobCategoryViewModel>)viewResult.Model; Assert.Equal(3, model.Count); }
public async Task Details_Given_ExistingItemId_Should_ReturnCorrectViewModel() { // Arrange var item1 = new JobCategory { Name = "Item1" }; var item2 = new JobCategory { Name = "Item2" }; var item3 = new JobCategory { Name = "Item3" }; var expectedName = item2.Name; var serviceMock = new Mock <IJobCategoryService>(); serviceMock.Setup(x => x.GetCategoryById("1")).ReturnsAsync(item1); serviceMock.Setup(x => x.GetCategoryById("2")).ReturnsAsync(item2); serviceMock.Setup(x => x.GetCategoryById("3")).ReturnsAsync(item3); var controller = new JobCategoryController(serviceMock.Object, _mapper); // Act var result = await controller.Details("2"); // Assert var viewResult = (ViewResult)result; var model = (DetailsJobCategoryViewModel)viewResult.Model; Assert.Equal(expectedName, model.Name); }
public async Task Details_Given_IdThatDoesNotExist_Should_ReturnNotFoundView() { // Arrange var item1 = new JobCategory { Name = "Item1" }; var item2 = new JobCategory { Name = "Item2" }; var item3 = new JobCategory { Name = "Item3" }; var serviceMock = new Mock <IJobCategoryService>(); serviceMock.Setup(x => x.GetCategoryById("1")).ReturnsAsync(item1); serviceMock.Setup(x => x.GetCategoryById("2")).ReturnsAsync(item2); serviceMock.Setup(x => x.GetCategoryById("3")).ReturnsAsync(item3); var controller = new JobCategoryController(serviceMock.Object, _mapper); // Act var result = await controller.Details("9"); // Assert var viewResult = (ViewResult)result; Assert.Equal("NotFound", viewResult.ViewName); }
public void Create_Given_NoModel_Should_ReturnViewResultType() { // Arrange var serviceMock = new Mock <IJobCategoryService>(); var controller = new JobCategoryController(serviceMock.Object, _mapper); // Act var result = controller.Create(); // Assert Assert.IsType <ViewResult>(result); }
public async Task Create_Given_ServiceAddSuccess_Should_ReturnRedirectToActionResult() { // Arrange var vm = new CreateJobCategoryViewModel(); var serviceMock = new Mock <IJobCategoryService>(); serviceMock.Setup(x => x.Add(It.IsAny <JobCategory>())).ReturnsAsync(true); var controller = new JobCategoryController(serviceMock.Object, _mapper); // Act var result = await controller.Create(vm); // Assert Assert.IsType <RedirectToActionResult>(result); }
public async Task Details_Given_NullId_Should_ReturnNotFoundView() { // Arrange var serviceMock = new Mock <IJobCategoryService>(); serviceMock.Setup(x => x.GetCategoryById(It.IsAny <string>())).ReturnsAsync((JobCategory)null); var controller = new JobCategoryController(serviceMock.Object, _mapper); // Act var result = await controller.Details(null); // Assert var viewResult = (ViewResult)result; Assert.Equal("NotFound", viewResult.ViewName); }
public async Task Index_Given_NoResultsFromService_Should_ReturnEmptyModel() { // Arrange var serviceMock = new Mock <IJobCategoryService>(); serviceMock.Setup(x => x.GetAllCategories()).ReturnsAsync(new List <JobCategory>()); var controller = new JobCategoryController(serviceMock.Object, _mapper); // Act var result = await controller.Index(); // Assert var viewResult = (ViewResult)result; var model = (IList <JobCategoryViewModel>)viewResult.Model; Assert.Empty(model); }
public async Task Create_Given_ServiceAddFailure_Should_ReturnNotFoundView() { // Arrange var vm = new CreateJobCategoryViewModel(); var serviceMock = new Mock <IJobCategoryService>(); serviceMock.Setup(x => x.Add(It.IsAny <JobCategory>())).ReturnsAsync(false); var controller = new JobCategoryController(serviceMock.Object, _mapper); // Act var result = await controller.Create(vm); // Assert var viewResult = (ViewResult)result; Assert.Equal("NotFound", viewResult.ViewName); }
public async Task Create_Given_ModelWithInvalidState_Should_ReturnSameModel() { // Arrange const string expectedName = "ExampleName"; var vm = new CreateJobCategoryViewModel { Name = expectedName }; var serviceMock = new Mock <IJobCategoryService>(); var controller = new JobCategoryController(serviceMock.Object, _mapper); controller.ModelState.AddModelError("Key", "Message"); // Act var result = await controller.Create(vm); // Assert var viewResult = (ViewResult)result; var model = (CreateJobCategoryViewModel)viewResult.Model; Assert.Equal(expectedName, model.Name); }