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 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 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 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 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 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 }