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
        }
Beispiel #4
0
        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
        }
Beispiel #5
0
        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
        }
Beispiel #6
0
        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
        }