public void TestAddAddressPostWhenActiveMatchFound() { #region Arrange SetupDataForAddress(); var address = CreateValidEntities.WorkgroupAddress(10); WorkgroupAddressService.Expect(a => a.CompareAddress(address, WorkgroupRepository.GetNullableById(2).Addresses[0])).Return(0).Repeat.Once(); WorkgroupAddressService.Expect(a => a.CompareAddress(address, WorkgroupRepository.GetNullableById(2).Addresses[1])).Return(0).Repeat.Once(); WorkgroupAddressService.Expect(a => a.CompareAddress(address, WorkgroupRepository.GetNullableById(2).Addresses[2])).Return(6).Repeat.Once(); #endregion Arrange #region Act var result = Controller.AddAddress(2, address) .AssertActionRedirect() .ToAction <WorkgroupController>(a => a.Addresses(2)); #endregion Act #region Assert Assert.IsNotNull(result); Assert.AreEqual(2, result.RouteValues["id"]); Assert.AreEqual("This Address already exists.", Controller.Message); WorkgroupRepository.AssertWasNotCalled(a => a.EnsurePersistent(Arg <Workgroup> .Is.Anything)); WorkgroupAddressService.AssertWasCalled(a => a.CompareAddress(Arg <WorkgroupAddress> .Is.Anything, Arg <WorkgroupAddress> .Is.Anything), x => x.Repeat.Times(3)); #endregion Assert }
public void TestAddAddressPostReturnsViewWhenInvalid() { #region Arrange new FakeStates(3, StateRepository); new FakeWorkgroups(3, WorkgroupRepository); var address = CreateValidEntities.WorkgroupAddress(4); address.Name = string.Empty; #endregion Arrange #region Act var result = Controller.AddAddress(2, address) .AssertViewRendered() .WithViewData <WorkgroupAddressViewModel>(); #endregion Act #region Assert Assert.IsNotNull(result); Assert.AreEqual(0, result.WorkgroupAddress.Id); Assert.AreEqual(2, result.Workgroup.Id); Assert.AreEqual(2, result.WorkgroupAddress.Workgroup.Id); Assert.AreEqual(3, result.States.Count()); WorkgroupRepository.AssertWasNotCalled(a => a.EnsurePersistent(Arg <Workgroup> .Is.Anything)); Assert.AreEqual("Address not valid", Controller.ErrorMessage); WorkgroupAddressService.AssertWasNotCalled(a => a.CompareAddress(Arg <WorkgroupAddress> .Is.Anything, Arg <WorkgroupAddress> .Is.Anything)); #endregion Assert }
public void TestDeletePostSetsValueAndSaves() { #region Arrange var workgroups = new List <Workgroup>(); for (var i = 0; i < 3; i++) { workgroups.Add(CreateValidEntities.Workgroup(i + 1)); workgroups[i].IsActive = true; } new FakeWorkgroups(0, WorkgroupRepository, workgroups); var worgroupToDelete = CreateValidEntities.Workgroup(3); worgroupToDelete.SetIdTo(3); #endregion Arrange #region Act Controller.Delete(3, worgroupToDelete) .AssertActionRedirect() .ToAction <WorkgroupController>(a => a.Index(false)); #endregion Act #region Assert Assert.AreEqual("Name3 was disabled successfully", Controller.Message); WorkgroupRepository.AssertWasNotCalled(a => a.Remove(Arg <Workgroup> .Is.Anything)); WorkgroupRepository.AssertWasCalled(a => a.EnsurePersistent(Arg <Workgroup> .Is.Anything)); var args = (Workgroup)WorkgroupRepository.GetArgumentsForCallsMadeOn(a => a.EnsurePersistent(Arg <Workgroup> .Is.Anything))[0][0]; Assert.IsNotNull(args); Assert.AreEqual("Name3", args.Name); Assert.IsFalse(args.IsActive); #endregion Assert }
public void TestEditPostReturnsViewWhenInvalid2() { #region Arrange Controller.ControllerContext.HttpContext = new MockHttpContext(0, new[] { "" }, "2"); SetupDataForWorkgroupActions1(); Controller.ModelState.AddModelError("Fake", "Error"); var orgs = new[] { "2", "4" }; new FakeOrganizationDescendants(3, OrganizationDescendantRepository); #endregion Arrange #region Act var result = Controller.Edit(3, WorkgroupRepository.GetNullableById(3), orgs) .AssertViewRendered() .WithViewData <WorkgroupModifyModel>(); #endregion Act #region Assert Assert.IsNotNull(result); Assert.AreEqual(5, result.Organizations.Count()); Assert.AreEqual("Name2 (2)", result.Organizations[0].ToString()); Assert.AreEqual("Name3 ()", result.Organizations[1].ToString()); Assert.AreEqual("Name4 (4)", result.Organizations[2].ToString()); Assert.AreEqual("Name5 (5)", result.Organizations[3].ToString()); Assert.AreEqual("Name6 (6)", result.Organizations[4].ToString()); Assert.IsNotNull(result.Workgroup); Assert.AreEqual("Name3", result.Workgroup.Name); Assert.AreEqual(3, result.Workgroup.Organizations.Count); Assert.AreEqual("Name2", result.Workgroup.Organizations[0].Name); Assert.AreEqual("Name4", result.Workgroup.Organizations[1].Name); Assert.AreEqual("Name3", result.Workgroup.Organizations[2].Name); WorkgroupRepository.AssertWasNotCalled(a => a.EnsurePersistent(Arg <Workgroup> .Is.Anything)); #endregion Assert }
public void TestDeleteAddressPostRedirectsIfWorkgroupIdNotFound() { #region Arrange SetupDataForAddress(); #endregion Arrange #region Act Controller.DeleteAddress(4, 6, new WorkgroupAddress()) .AssertActionRedirect() .ToAction <WorkgroupController>(a => a.Index(false)); #endregion Act #region Assert Assert.AreEqual("Workgroup could not be found.", Controller.ErrorMessage); WorkgroupRepository.AssertWasNotCalled(a => a.EnsurePersistent(Arg <Workgroup> .Is.Anything)); #endregion Assert }
public void TestDeleteAddressPostRedirectsIfAddressIsNotInWorkgroup() { #region Arrange SetupDataForAddress(); #endregion Arrange #region Act var result = Controller.DeleteAddress(3, 6, new WorkgroupAddress()) .AssertActionRedirect() .ToAction <WorkgroupController>(a => a.Addresses(3)); #endregion Act #region Assert Assert.IsNotNull(result); Assert.AreEqual(3, result.RouteValues["id"]); Assert.AreEqual("Address not found.", Controller.ErrorMessage); WorkgroupRepository.AssertWasNotCalled(a => a.EnsurePersistent(Arg <Workgroup> .Is.Anything)); #endregion Assert }
public void TestDeletePostRedirectsToIndexWhenWorkgroupNotFound() { #region Arrange new FakeWorkgroups(3, WorkgroupRepository); var worgroupToDelete = CreateValidEntities.Workgroup(4); worgroupToDelete.SetIdTo(4); #endregion Arrange #region Act Controller.Delete(4, worgroupToDelete) .AssertActionRedirect() .ToAction <WorkgroupController>(a => a.Index(false)); #endregion Act #region Assert Assert.AreEqual("Workgroup not found", Controller.ErrorMessage); WorkgroupRepository.AssertWasNotCalled(a => a.EnsurePersistent(Arg <Workgroup> .Is.Anything)); WorkgroupRepository.AssertWasNotCalled(a => a.Remove(Arg <Workgroup> .Is.Anything)); #endregion Assert }