public void TestDeleteAddressPostRegdirectsAndSaves3() { #region Arrange SetupDataForAddress(); #endregion Arrange #region Act var result = Controller.DeleteAddress(2, 6, new WorkgroupAddress()) .AssertActionRedirect() .ToAction <WorkgroupController>(a => a.Addresses(2)); #endregion Act #region Assert Assert.AreEqual("Address deleted.", Controller.Message); Assert.IsNotNull(result); Assert.AreEqual(2, result.RouteValues["id"]); 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(3, args.Addresses.Count()); Assert.IsTrue(args.Addresses[0].IsActive); Assert.IsFalse(args.Addresses[1].IsActive); Assert.IsFalse(args.Addresses[2].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 TestAddSubOrganizationsPostRedirectsToSubOrganizationsWhenNoOrgsAdded2() { #region Arrange Controller.ControllerContext.HttpContext = new MockHttpContext(0, new[] { "" }, "3"); SetupDataForWorkgroupActions1(); Assert.AreEqual(2, WorkgroupRepository.Queryable.Single(a => a.Id == 1).Organizations.Count()); //Organizations does not contain primary org #endregion Arrange #region Act var result = Controller.AddSubOrganizations(3, new string[0]) .AssertActionRedirect() .ToAction <WizardController>(a => a.SubOrganizations(3)); #endregion Act #region Assert Assert.IsNotNull(result); Assert.AreEqual(3, result.RouteValues["id"]); WorkgroupRepository.AssertWasCalled(a => a.EnsurePersistent(Arg <Workgroup> .Is.Anything)); var workgroupArgs = (Workgroup)WorkgroupRepository.GetArgumentsForCallsMadeOn(a => a.EnsurePersistent(Arg <Workgroup> .Is.Anything))[0][0]; Assert.IsNotNull(workgroupArgs); Assert.AreEqual(2, workgroupArgs.Organizations.Count()); Assert.AreEqual("Name1", workgroupArgs.Organizations[0].Name); Assert.AreEqual("Name3", workgroupArgs.Organizations[1].Name); Assert.AreEqual(2, Controller.ViewBag.StepNumber); #endregion Assert }
public void TestAddAddressPostWhenInactiveMatchFound() { #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(5).Repeat.Once(); WorkgroupAddressService.Expect(a => a.CompareAddress(address, WorkgroupRepository.GetNullableById(2).Addresses[2])).Return(0).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("Address created.", Controller.Message); 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(2, args.Id); Assert.AreEqual(3, args.Addresses.Count()); Assert.AreEqual(true, args.Addresses[1].IsActive); Assert.AreEqual("Name5", args.Addresses[1].Name); WorkgroupAddressService.AssertWasCalled(a => a.CompareAddress(Arg <WorkgroupAddress> .Is.Anything, Arg <WorkgroupAddress> .Is.Anything), x => x.Repeat.Times(2)); #endregion Assert }
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 TestAddAccountPostRedirectsToAccountsWhenValid() { #region Arrange SetupDataForAccounts1(); var workgroupAccountToCreate = CreateValidEntities.WorkgroupAccount(9); workgroupAccountToCreate.Workgroup = WorkgroupRepository.GetNullableById(2); //This one will be replaced workgroupAccountToCreate.Account.SetIdTo("Blah"); workgroupAccountToCreate.AccountManager.SetIdTo("AccMan"); workgroupAccountToCreate.Approver.SetIdTo("App"); workgroupAccountToCreate.Purchaser.SetIdTo("Purchase"); #endregion Arrange #region Act var result = Controller.AddAccount(3, workgroupAccountToCreate, null) .AssertActionRedirect() .ToAction <WorkgroupController>(a => a.Accounts(3)); #endregion Act #region Assert Assert.IsNotNull(result); Assert.AreEqual(3, result.RouteValues["id"]); Assert.AreEqual("Workgroup account saved.", Controller.Message); WorkgroupAccountRepository.AssertWasCalled(a => a.EnsurePersistent(Arg <WorkgroupAccount> .Is.Anything)); var args = (WorkgroupAccount)WorkgroupAccountRepository.GetArgumentsForCallsMadeOn(a => a.EnsurePersistent(Arg <WorkgroupAccount> .Is.Anything))[0][0]; Assert.IsNotNull(args); Assert.AreEqual(3, args.Workgroup.Id); Assert.AreEqual("Blah", args.Account.Id); Assert.AreEqual("AccMan", args.AccountManager.Id); Assert.AreEqual("App", args.Approver.Id); Assert.AreEqual("Purchase", args.Purchaser.Id); #endregion Assert }
public void TestEditPostReplacesOrganizationsWithSuppliedOnes2() { #region Arrange Controller.ControllerContext.HttpContext = new MockHttpContext(0, new[] { "" }, "2"); SetupDataForWorkgroupActions1(); var orgs = new[] { "1", "3" }; #endregion Arrange #region Act Controller.Edit(3, WorkgroupRepository.GetNullableById(3), orgs) .AssertActionRedirect() .ToAction <WorkgroupController>(a => a.Index(false)); #endregion Act #region Assert Assert.AreEqual("Name3 was modified successfully", Controller.Message); 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.AreEqual(3, args.Organizations.Count()); Assert.AreEqual("Name1", args.Organizations[0].Name); Assert.AreEqual("Name3", args.Organizations[1].Name); Assert.AreEqual("Name3", args.Organizations[2].Name); //Limitation of the test, this doesn't happen when running normally which is correct #endregion Assert }
public void TestDeleteWorkgroupVendorWhenFound1() { #region Arrange new FakeWorkgroups(4, WorkgroupRepository); var workgroupVendors = new List <WorkgroupVendor>(); for (int i = 0; i < 3; i++) { workgroupVendors.Add(CreateValidEntities.WorkgroupVendor(i + 1)); workgroupVendors[i].IsActive = true; workgroupVendors[i].Workgroup = WorkgroupRepository.GetNullableById(i + 2); } workgroupVendors[2].IsActive = false; new FakeWorkgroupVendors(3, WorkgroupVendorRepository, workgroupVendors); #endregion Arrange #region Act var result = Controller.DeleteWorkgroupVendor(3, 2, null) .AssertActionRedirect() .ToAction <WorkgroupController>(a => a.VendorList(3)); #endregion Act #region Assert Assert.IsNotNull(result); Assert.AreEqual(3, result.RouteValues["id"]); Assert.AreEqual("WorkgroupVendor Removed Successfully", Controller.Message); WorkgroupVendorRepository.AssertWasNotCalled(a => a.Remove(Arg <WorkgroupVendor> .Is.Anything)); WorkgroupVendorRepository.AssertWasCalled(a => a.EnsurePersistent(Arg <WorkgroupVendor> .Is.Anything)); var args = (WorkgroupVendor)WorkgroupVendorRepository.GetArgumentsForCallsMadeOn(a => a.EnsurePersistent(Arg <WorkgroupVendor> .Is.Anything))[0][0]; Assert.IsNotNull(args); Assert.AreEqual(2, args.Id); Assert.IsFalse(args.IsActive); #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 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 }
public void TestAddAccountPostReturnsViewWhenInvalid() { #region Arrange SetupDataForAccounts1(); var workgroupAccountToCreate = CreateValidEntities.WorkgroupAccount(9); workgroupAccountToCreate.Workgroup = WorkgroupRepository.GetNullableById(2); //This one will be replaced //workgroupAccountToCreate.Account.SetIdTo("Blah"); workgroupAccountToCreate.Account = null; workgroupAccountToCreate.AccountManager.SetIdTo("AccMan"); workgroupAccountToCreate.Approver.SetIdTo("App"); workgroupAccountToCreate.Purchaser.SetIdTo("Purchase"); new FakeAccounts(0, AccountRepository); #endregion Arrange #region Act var result = Controller.AddAccount(3, workgroupAccountToCreate, null) .AssertViewRendered() .WithViewData <WorkgroupAccountModel>(); #endregion Act #region Assert Controller.ModelState.AssertErrorsAre("Account not found"); WorkgroupAccountRepository.AssertWasNotCalled(a => a.EnsurePersistent(Arg <WorkgroupAccount> .Is.Anything)); Assert.IsNotNull(result); Assert.AreEqual(10, result.Accounts.Count()); Assert.AreEqual(12, result.WorkGroupPermissions.Count()); Assert.AreEqual(1, result.Approvers.Count()); Assert.AreEqual(1, result.AccountManagers.Count()); Assert.AreEqual(1, result.Purchasers.Count()); Assert.IsNotNull(result.WorkgroupAccount); Assert.AreEqual(0, result.WorkgroupAccount.Id); Assert.AreEqual(3, result.WorkgroupAccount.Workgroup.Id); Assert.AreEqual(null, result.WorkgroupAccount.Account); Assert.AreEqual("AccMan", result.WorkgroupAccount.AccountManager.Id); Assert.AreEqual("App", result.WorkgroupAccount.Approver.Id); Assert.AreEqual("Purchase", result.WorkgroupAccount.Purchaser.Id); #endregion Assert }
public void TestEditAddressPostWhenAddressIsChangedToAnNewAddress() { #region Arrange SetupDataForAddress(); var address = CreateValidEntities.WorkgroupAddress(4); address.Name = "Fake"; address.SetIdTo(4); WorkgroupAddressService.Expect(a => a.CompareAddress(address, WorkgroupRepository.GetNullableById(2).Addresses[0])).Return(0); WorkgroupAddressService.Expect(a => a.CompareAddress(address, WorkgroupRepository.GetNullableById(2).Addresses[1])).Return(0); WorkgroupAddressService.Expect(a => a.CompareAddress(address, WorkgroupRepository.GetNullableById(2).Addresses[2])).Return(0); #endregion Arrange #region Act var result = Controller.EditAddress(2, 4, address) .AssertActionRedirect() .ToAction <WorkgroupController>(a => a.Addresses(2)); #endregion Act #region Assert Assert.IsNotNull(result); Assert.AreEqual(2, result.RouteValues["id"]); Assert.AreEqual("Address updated.", Controller.Message); 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(4, args.Addresses.Count()); Assert.AreEqual("Name4", args.Addresses[0].Name); Assert.IsFalse(args.Addresses[0].IsActive); //Disabled one we are editing Assert.AreEqual("Name5", args.Addresses[1].Name); Assert.IsFalse(args.Addresses[1].IsActive); Assert.AreEqual("Name6", args.Addresses[2].Name); //Not Touched Assert.IsTrue(args.Addresses[2].IsActive); Assert.AreEqual("Fake", args.Addresses[3].Name); //New one Assert.IsTrue(args.Addresses[3].IsActive); #endregion Assert }
public void TestEditAddressPostWhenAddressIsNotChanged() { #region Arrange SetupDataForAddress(); var address = CreateValidEntities.WorkgroupAddress(4); address.SetIdTo(4); WorkgroupAddressService.Expect(a => a.CompareAddress(address, WorkgroupRepository.GetNullableById(2).Addresses[0])).Return(4); #endregion Arrange #region Act var result = Controller.EditAddress(2, 4, address) .AssertViewRendered() .WithViewData <WorkgroupAddressViewModel>(); #endregion Act #region Assert Assert.IsNotNull(result); Assert.AreEqual(3, result.States.Count()); Assert.AreEqual("Name4", result.WorkgroupAddress.Name); Assert.AreEqual("No changes made", Controller.Message); #endregion Assert }
public void TestAddAddressPostWhenNoMatchRedirects1() { #region Arrange SetupDataForAddress(); var address = CreateValidEntities.WorkgroupAddress(10); WorkgroupAddressService.Expect(a => a.CompareAddress(Arg <WorkgroupAddress> .Is.Anything, Arg <WorkgroupAddress> .Is.Anything)).Return(0).Repeat.Any(); #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("Address created", Controller.Message); 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(2, args.Id); Assert.AreEqual(4, args.Addresses.Count()); Assert.AreEqual("Name10", args.Addresses[3].Name); WorkgroupAddressService.AssertWasCalled(a => a.CompareAddress(Arg <WorkgroupAddress> .Is.Anything, Arg <WorkgroupAddress> .Is.Anything), x => x.Repeat.Times(3)); var compareArgs = WorkgroupAddressService.GetArgumentsForCallsMadeOn(a => a.CompareAddress(Arg <WorkgroupAddress> .Is.Anything, Arg <WorkgroupAddress> .Is.Anything)); Assert.IsNotNull(compareArgs); Assert.AreEqual(3, compareArgs.Count()); Assert.AreEqual("Name4", ((WorkgroupAddress)compareArgs[0][1]).Name); Assert.AreEqual("Name5", ((WorkgroupAddress)compareArgs[1][1]).Name); Assert.AreEqual("Name6", ((WorkgroupAddress)compareArgs[2][1]).Name); for (int i = 0; i < 3; i++) { Assert.AreEqual("Name10", ((WorkgroupAddress)compareArgs[i][0]).Name); } #endregion Assert }