public void AddPostValidModel_ReturnsRedirect()
        {
            var volunteerFake = new Volunteer
                                    {
                                        Id = Guid.NewGuid(),
                                    };

            var recipientFake = new Recipient
                                    {
                                        Active = true,
                                        FirstName = "Dan",
                                        Id = Guid.NewGuid(),
                                    };

            var dataServiceMock = new Mock<IDataService<Recipient>>();
            dataServiceMock.Setup(d => d.Insert(It.IsAny<Recipient>(), It.IsAny<Guid>())).Verifiable();

            var formsAuthenticationServiceMock = new Mock<IFormsAuthenticationService>();
            formsAuthenticationServiceMock.Setup(f => f.GetVolunteerID(null))
                .Returns(volunteerFake.Id);

            var controller = new RecipientController(dataServiceMock.Object,
                                                     new Mock<IDataService<Volunteer>>().Object,
                                                     formsAuthenticationServiceMock.Object);

            ActionResult result = controller.Add(recipientFake);

            dataServiceMock.VerifyAll();

            Assert.IsInstanceOf(typeof (RedirectToRouteResult), result);
        }
        public void Add_ReturnsView()
        {
            var controller = new RecipientController(new Mock<IDataService<Recipient>>().Object,
                                                     new Mock<IDataService<Volunteer>>().Object,
                                                     new Mock<IFormsAuthenticationService>().Object);
            ActionResult result = controller.Add();

            Assert.IsInstanceOf(typeof (ViewResult), result);
        }
        public void AddPostInvalidModel_ReturnsView()
        {
            var controller = new RecipientController(new Mock<IDataService<Recipient>>().Object,
                                                     new Mock<IDataService<Volunteer>>().Object,
                                                     new Mock<IFormsAuthenticationService>().Object);

            controller.ModelState.AddModelError("test", "error");

            ActionResult result = controller.Add(new Recipient());

            Assert.IsInstanceOf(typeof (ViewResult), result);
        }
        public void Index_WithQuery_ReturnsView()
        {
            var recipientDataServiceMock = new Mock<IDataService<Recipient>>();

            recipientDataServiceMock.Setup(r => r.SelectAll(It.IsAny<Expression<Func<Recipient, bool>>>(),
                It.IsAny<Expression<Func<Recipient, object>>>(), 0, 100))
                 .Returns(new List<Recipient>
                              {
                                  new Recipient()
                              });

            var controller = new RecipientController(recipientDataServiceMock.Object,
                                                     new Mock<IDataService<Volunteer>>().Object,
                                                     new Mock<IFormsAuthenticationService>().Object);

            ActionResult result = controller.Index("New", "Dan", "Stewart");

            Assert.IsInstanceOf<ViewResult>(result);

            var view = (ViewResult)result;

            Assert.IsNotNull(view.ViewData.Model);
            Assert.IsInstanceOf<List<Recipient>>(view.ViewData.Model);
        }
        public void Index_ReturnsView()
        {
            var recipientDataServiceMock = new Mock<IDataService<Recipient>>();

            recipientDataServiceMock.Setup(r => r.SelectAll(It.IsAny<Expression<Func<Recipient, bool>>>(),
                It.IsAny<Expression<Func<Recipient, object>>>(), 0, 100))
                .Returns(new List<Recipient>());

            var controller = new RecipientController(recipientDataServiceMock.Object,
                                                     new Mock<IDataService<Volunteer>>().Object,
                                                     new Mock<IFormsAuthenticationService>().Object);

            ActionResult result = controller.Index(null, null, null);

            Assert.IsInstanceOf(typeof (ViewResult), result);

            var view = (ViewResult) result;
            Assert.IsInstanceOf<List<Recipient>>(view.Model);
        }