public async Task Details_WhenIdIsNotNullAndDivisionFound_ShouldReturnDivisionDetailsView() { // Arrange var divisionsIndexViewModel = A.Fake <IDivisionsIndexViewModel>(); var divisionsDetailsViewModel = A.Fake <IDivisionsDetailsViewModel>(); var divisionRepository = A.Fake <IDivisionRepository>(); Division?division = new Division(); A.CallTo(() => divisionRepository.GetDivisionAsync(A <int> .Ignored)).Returns(division); var sharedRepository = A.Fake <ISharedRepository>(); var testController = new DivisionsController(divisionsIndexViewModel, divisionsDetailsViewModel, divisionRepository, sharedRepository); int?id = 0; // Act var result = await testController.Details(id); // Assert A.CallTo(() => divisionRepository.GetDivisionAsync(id.Value)).MustHaveHappenedOnceExactly(); divisionsDetailsViewModel.Division.ShouldBe(division); result.ShouldBeOfType <ViewResult>(); ((ViewResult)result).Model.ShouldBe(divisionsDetailsViewModel); }
public async Task SubDivisionShouldBeCreated() { using (var context = await NewParkSharkInMemoryTestContext()) { var divisionService = new DivisionService(context.ParkSharkDbContext); var controller = new DivisionsController(context.Mapper, divisionService); var division = GetResult <DivisionDto>(await controller.CreateSubDivision(new CreateSubDivisionDto { Name = "Test", Director = "Dir", OriginalName = "Te", ParentDivisionId = 1 })); var divisionInDb = await context.ParkSharkDbContext.Divisions.FindAsync(division.Id); Assert.AreEqual("Test", division.Name); Assert.AreEqual("Dir", division.Director); Assert.AreEqual("Te", division.OriginalName); Assert.AreNotEqual(default(int), division.Id); Assert.AreEqual(division.Id, divisionInDb.Id); Assert.AreEqual(1, divisionInDb.ParentDivisionId); } }
public async Task EditPost_WhenIdEqualsDivisionIdAndModelStateIsValidAndDbUpdateConcurrencyExceptionIsCaughtAndDivisionWithIdExists_ShouldRethrowException() { // Arrange var divisionsIndexViewModel = A.Fake <IDivisionsIndexViewModel>(); var divisionsDetailsViewModel = A.Fake <IDivisionsDetailsViewModel>(); var divisionRepository = A.Fake <IDivisionRepository>(); A.CallTo(() => divisionRepository.Update(A <Division> .Ignored)).Throws <DbUpdateConcurrencyException>(); A.CallTo(() => divisionRepository.DivisionExists(A <int> .Ignored)).Returns(true); var sharedRepository = A.Fake <ISharedRepository>(); var testController = new DivisionsController(divisionsIndexViewModel, divisionsDetailsViewModel, divisionRepository, sharedRepository); int id = 1; var division = new Division { ID = 1 }; // Act var func = new Func <Task <IActionResult> >(async() => await testController.Edit(id, division)); // Assert await func.ShouldThrowAsync <DbUpdateConcurrencyException>(); }
public async Task EditPost_WhenIdEqualsDivisionIdAndModelStateIsNotValid_ShouldReturnDivisionEditView() { // Arrange var divisionsIndexViewModel = A.Fake <IDivisionsIndexViewModel>(); var divisionsDetailsViewModel = A.Fake <IDivisionsDetailsViewModel>(); var divisionRepository = A.Fake <IDivisionRepository>(); var sharedRepository = A.Fake <ISharedRepository>(); var testController = new DivisionsController(divisionsIndexViewModel, divisionsDetailsViewModel, divisionRepository, sharedRepository); int id = 1; var division = new Division { ID = 1 }; testController.ModelState.AddModelError("LongName", "Please enter a long name."); // Act var result = await testController.Edit(id, division); // Assert A.CallTo(() => divisionRepository.Update(A <Division> .Ignored)).MustNotHaveHappened(); A.CallTo(() => sharedRepository.SaveChangesAsync()).MustNotHaveHappened(); result.ShouldBeOfType <ViewResult>(); ((ViewResult)result).Model.ShouldBe(division); }
public async Task EditPost_WhenIdEqualsDivisionIdAndModelStateIsValidAndDbUpdateConcurrencyExceptionIsNotCaught_ShouldUpdateDivisionInDataStoreAndRedirectToIndexView() { // Arrange var divisionsIndexViewModel = A.Fake <IDivisionsIndexViewModel>(); var divisionsDetailsViewModel = A.Fake <IDivisionsDetailsViewModel>(); var divisionRepository = A.Fake <IDivisionRepository>(); var sharedRepository = A.Fake <ISharedRepository>(); var testController = new DivisionsController(divisionsIndexViewModel, divisionsDetailsViewModel, divisionRepository, sharedRepository); int id = 1; var division = new Division { ID = 1 }; // Act var result = await testController.Edit(id, division); // Assert A.CallTo(() => divisionRepository.Update(division)).MustHaveHappenedOnceExactly(); A.CallTo(() => sharedRepository.SaveChangesAsync()).MustHaveHappenedOnceExactly(); result.ShouldBeOfType <RedirectToActionResult>(); ((RedirectToActionResult)result).ActionName.ShouldBe <string>(nameof(testController.Index)); }
public async Task EditPost_WhenIdEqualsDivisionIdAndModelStateIsValidAndDbUpdateConcurrencyExceptionIsCaughtAndDivisionWithIdDoesNotExist_ShouldReturnNotFound() { // Arrange var divisionsIndexViewModel = A.Fake <IDivisionsIndexViewModel>(); var divisionsDetailsViewModel = A.Fake <IDivisionsDetailsViewModel>(); var divisionRepository = A.Fake <IDivisionRepository>(); A.CallTo(() => divisionRepository.Update(A <Division> .Ignored)).Throws <DbUpdateConcurrencyException>(); A.CallTo(() => divisionRepository.DivisionExists(A <int> .Ignored)).Returns(false); var sharedRepository = A.Fake <ISharedRepository>(); var testController = new DivisionsController(divisionsIndexViewModel, divisionsDetailsViewModel, divisionRepository, sharedRepository); int id = 1; var division = new Division { ID = 1 }; // Act var result = await testController.Edit(id, division); // Assert result.ShouldBeOfType <NotFoundResult>(); }
public DivisionsControllerTest() { var diServiceBuilder = new DIServiceBuilder(); _controller = diServiceBuilder.GetService <DivisionsController>(); _creators = new Creators(); }
public async Task DivisionsController_TotalCount() { //Arrange var controller = new DivisionsController(_vrsContext); int expectedCount = DIVISIONS_TOTALCOUNT; // Act var _list = await controller.All(); // Assert Assert.Equal(_list.Count, expectedCount); }
public void CreateGet_ShouldReturnDivisionCreateView() { // Arrange var divisionsIndexViewModel = A.Fake <IDivisionsIndexViewModel>(); var divisionsDetailsViewModel = A.Fake <IDivisionsDetailsViewModel>(); var divisionRepository = A.Fake <IDivisionRepository>(); var sharedRepository = A.Fake <ISharedRepository>(); var testController = new DivisionsController(divisionsIndexViewModel, divisionsDetailsViewModel, divisionRepository, sharedRepository); // Act var result = testController.Create(); // Assert result.ShouldBeOfType <ViewResult>(); }
public async Task Details_WhenIdIsNull_ShouldReturnNotFound() { // Arrange var divisionsIndexViewModel = A.Fake <IDivisionsIndexViewModel>(); var divisionsDetailsViewModel = A.Fake <IDivisionsDetailsViewModel>(); var divisionRepository = A.Fake <IDivisionRepository>(); var sharedRepository = A.Fake <ISharedRepository>(); var testController = new DivisionsController(divisionsIndexViewModel, divisionsDetailsViewModel, divisionRepository, sharedRepository); int?id = null; // Act var result = await testController.Details(id); // Assert result.ShouldBeOfType <NotFoundResult>(); }
public async Task CreatePost_WhenModelStateIsValid_ShouldAddDivisionToDataStoreAndRedirectToIndexView() { // Arrange var divisionsIndexViewModel = A.Fake <IDivisionsIndexViewModel>(); var divisionsDetailsViewModel = A.Fake <IDivisionsDetailsViewModel>(); var divisionRepository = A.Fake <IDivisionRepository>(); var sharedRepository = A.Fake <ISharedRepository>(); var testController = new DivisionsController(divisionsIndexViewModel, divisionsDetailsViewModel, divisionRepository, sharedRepository); var division = new Division(); // Act var result = await testController.Create(division); // Assert A.CallTo(() => divisionRepository.AddAsync(division)).MustHaveHappenedOnceExactly(); A.CallTo(() => sharedRepository.SaveChangesAsync()).MustHaveHappenedOnceExactly(); result.ShouldBeOfType <RedirectToActionResult>(); ((RedirectToActionResult)result).ActionName.ShouldBe <string>(nameof(testController.Index)); }
public async Task DeleteConfirmed_ShouldDeleteDivisionFromDataStoreAndRedirectToIndexView() { // Arrange var divisionsIndexViewModel = A.Fake <IDivisionsIndexViewModel>(); var divisionsDetailsViewModel = A.Fake <IDivisionsDetailsViewModel>(); var divisionRepository = A.Fake <IDivisionRepository>(); var sharedRepository = A.Fake <ISharedRepository>(); var testController = new DivisionsController(divisionsIndexViewModel, divisionsDetailsViewModel, divisionRepository, sharedRepository); int id = 1; // Act var result = await testController.DeleteConfirmed(id); // Assert A.CallTo(() => divisionRepository.DeleteAsync(id)).MustHaveHappenedOnceExactly(); A.CallTo(() => sharedRepository.SaveChangesAsync()).MustHaveHappenedOnceExactly(); result.ShouldBeOfType <RedirectToActionResult>(); ((RedirectToActionResult)result).ActionName.ShouldBe <string>(nameof(testController.Index)); }
public async Task EditPost_WhenIdDoesNotEqualDivisionId_ShouldReturnNotFound() { // Arrange var divisionsIndexViewModel = A.Fake <IDivisionsIndexViewModel>(); var divisionsDetailsViewModel = A.Fake <IDivisionsDetailsViewModel>(); var divisionRepository = A.Fake <IDivisionRepository>(); var sharedRepository = A.Fake <ISharedRepository>(); var testController = new DivisionsController(divisionsIndexViewModel, divisionsDetailsViewModel, divisionRepository, sharedRepository); int id = 0; var division = new Division { ID = 1 }; // Act var result = await testController.Edit(id, division); // Assert result.ShouldBeOfType <NotFoundResult>(); }
public async Task DivisionShouldBeReturned() { using (var context = await NewParkSharkInMemoryTestContext()) { //Setup test data await context.ParkSharkDbContext.Divisions.AddAsync(new Division("Apple", "Apple Computer", "Steve Jobs")); await context.ParkSharkDbContext.SaveChangesAsync(); var steveJobsDivision = context.ParkSharkDbContext.Divisions.FirstOrDefault(d => d.Name == "Apple"); var divisionService = new DivisionService(context.ParkSharkDbContext); var controller = new DivisionsController(context.Mapper, divisionService); var division = GetResult <DivisionDto>((await controller.GetDivision(steveJobsDivision.Id))); Assert.AreEqual("Apple", division.Name); Assert.AreEqual("Steve Jobs", division.Director); Assert.AreEqual("Apple Computer", division.OriginalName); Assert.AreEqual(steveJobsDivision.Id, division.Id); } }
public async Task DivisionsShouldBeReturned() { using (var context = await NewParkSharkInMemoryTestContext()) { //Setup test data await context.ParkSharkDbContext.Divisions.AddAsync(new Division("Apple", "Apple Computer", "Steve Jobs")); await context.ParkSharkDbContext.Divisions.AddAsync(new Division("International Brol Machinekes", "IBM", "Steve Flops")); await context.ParkSharkDbContext.SaveChangesAsync(); var divisionService = new DivisionService(context.ParkSharkDbContext); var controller = new DivisionsController(context.Mapper, divisionService); var divisions = GetResult <IEnumerable <DivisionDto> >((await controller.GetDivisions())); var jobsDivision = divisions.FirstOrDefault(d => d.Director == "Steve Jobs"); var flopsDivision = divisions.FirstOrDefault(d => d.Director == "Steve Flops"); Assert.AreEqual("Apple", jobsDivision.Name); Assert.AreEqual("International Brol Machinekes", flopsDivision.Name); } }
public async Task DivisionsController_GetById_1() { //Arrange string expectedTitle = DIVISION_NAME; int ID = DIVISION_ID; var controller = new DivisionsController(_vrsContext); // Act IActionResult actionResult = await controller.GetById(ID); // Assert Assert.NotNull(actionResult); OkObjectResult result = actionResult as OkObjectResult; Assert.NotNull(result); var _Division = result.Value as tblDivisions; Assert.Equal(expectedTitle, _Division.Name); }
public async Task DivisionsWithSubDivisionsShouldBeReturned() { using (var context = await NewParkSharkInMemoryTestContext()) { //Setup test data var parentDivision = new Division("Parent", "Parent", "Steve Jobs"); await context.ParkSharkDbContext.Divisions.AddAsync(parentDivision); await context.ParkSharkDbContext.Divisions.AddAsync(new Division("Child1", "Child1", "Steve Jobs", parentDivision.Id)); await context.ParkSharkDbContext.Divisions.AddAsync(new Division("Child2", "Child2", "Steve Jobs", parentDivision.Id)); await context.ParkSharkDbContext.SaveChangesAsync(); var divisionService = new DivisionService(context.ParkSharkDbContext); var controller = new DivisionsController(context.Mapper, divisionService); var division = GetResult <DivisionDto>((await controller.GetDivision(parentDivision.Id))); Assert.AreEqual(2, division.SubDivisions.Count); } }
protected DivisionsController GetController(DivisionService service) { var user = new Mock <ClaimsPrincipal>(); var claims = new Claim[] { new Claim("username", "unittestusername") }; user.Setup(u => u.Claims).Returns(claims); DivisionsController controller = new DivisionsController(service); controller.ControllerContext = new ControllerContext() { HttpContext = new DefaultHttpContext() { User = user.Object } }; controller.ControllerContext.HttpContext.Request.Headers["Authorization"] = "Bearer unittesttoken"; controller.ControllerContext.HttpContext.Request.Path = new PathString("/v1/unit-test"); return(controller); }
public async Task CreatePost_WhenModelStateIsNotValid_ShouldReturnDivisionCreateView() { // Arrange var divisionsIndexViewModel = A.Fake <IDivisionsIndexViewModel>(); var divisionsDetailsViewModel = A.Fake <IDivisionsDetailsViewModel>(); var divisionRepository = A.Fake <IDivisionRepository>(); var sharedRepository = A.Fake <ISharedRepository>(); var testController = new DivisionsController(divisionsIndexViewModel, divisionsDetailsViewModel, divisionRepository, sharedRepository); var division = new Division(); testController.ModelState.AddModelError("LongName", "Please enter a long name."); // Act var result = await testController.Create(division); // Assert A.CallTo(() => divisionRepository.AddAsync(division)).MustNotHaveHappened(); A.CallTo(() => sharedRepository.SaveChangesAsync()).MustNotHaveHappened(); result.ShouldBeOfType <ViewResult>(); ((ViewResult)result).Model.ShouldBe(division); }
public async Task Index_ShouldReturnDivisionsIndexView() { // Arrange var divisionsIndexViewModel = A.Fake <IDivisionsIndexViewModel>(); var divisionsDetailsViewModel = A.Fake <IDivisionsDetailsViewModel>(); var divisionRepository = A.Fake <IDivisionRepository>(); var divisions = new List <Division>(); A.CallTo(() => divisionRepository.GetDivisionsAsync()).Returns(divisions); var sharedRepository = A.Fake <ISharedRepository>(); var testController = new DivisionsController(divisionsIndexViewModel, divisionsDetailsViewModel, divisionRepository, sharedRepository); // Act var result = await testController.Index(); // Assert A.CallTo(() => divisionRepository.GetDivisionsAsync()).MustHaveHappenedOnceExactly(); divisionsIndexViewModel.Divisions.ShouldBe(divisions); result.ShouldBeOfType <ViewResult>(); ((ViewResult)result).Model.ShouldBe(divisionsIndexViewModel); }