public When_requesting_Index_on_AttendeeController()
        {
            var theAttendee = new User
            {
                Id        = 1001,
                FirstName = "Brandon"
            };

            var theAttendeeList = new[]
            {
                theAttendee
            };

            var sessionService = new Moq.Mock <IAttendeeService>();
            var httpContext    = new Moq.Mock <IHttpContextAccessor>();

            sessionService.Setup(x => x.GetAttendeeByUsername("test123")).Returns(theAttendee);
            httpContext.Setup(x => x.HttpContext).Returns(new DefaultHttpContext
            {
                User = new System.Security.Claims.ClaimsPrincipal(new List <ClaimsIdentity>
                {
                    new ClaimsIdentity(new List <Claim>
                    {
                        new Claim(ClaimTypes.Name, "test123")
                    })
                })
            });

            _controller = new AttendeeController(httpContext.Object, sessionService.Object);
        }
        public void ListAttendees_ReturnsViewResult()
        {
            //arrange
            var controller = new AttendeeController(attendees.Object);

            //act
            var model = controller.ListAttendees().ViewData.Model as IEnumerable <Attendee>;

            //assert
            Assert.IsType <List <Attendee> >(model);
        }
        public void EditAttendee_ReturnsViewResult()
        {
            //arrange
            var controller = new AttendeeController(attendees.Object);

            //act
            var model = controller.EditAttendee(1).ViewData.Model as Attendee;

            //assert
            Assert.IsType <Attendee>(model);
        }
        public void SaveAttendee_ReturnsViewResultIfValidModelOnAddNew()
        {
            //arrange
            var controller = new AttendeeController(attendees.Object)
            {
                TempData = mockHttpContext.Object
            };

            var attendeeToSave = new Attendee {
                ID = 0
            };
            //act
            var result = controller.SaveAttendee(attendeeToSave);

            //assert
            Assert.IsType <RedirectToActionResult>(result);
        }
        public void SaveAttendee_TempMessageCorrectOnEdit()
        {
            //arrange
            var controller = new AttendeeController(attendees.Object)
            {
                TempData = mockHttpContext.Object
            };
            var attendeeToSave = new Attendee {
                ID = 1
            };
            string expected = " was updated.";

            //act
            var    result = controller.SaveAttendee(attendeeToSave);
            string actual = controller.TempData["message"]?.ToString();

            //assert
            //Assert.Equal(expected, actual);
        }
        public void SaveAttendee_TempMessageCorrectOnAddNew()
        {
            //arrange
            var controller = new AttendeeController(attendees.Object)
            {
                TempData = mockHttpContext.Object
            };
            var attendeeToSave = new Attendee {
                ID = 0
            };
            string expected = " was added.";

            //act
            var result = controller.SaveAttendee(attendeeToSave);
            var actual = mockHttpContext.Object.Keys;

            //assert
            //Assert.Equal(expected, actual);
        }