Exemplo n.º 1
0
        public async Task UpdateAndSaveTest()
        {
            var courseMember1 = new CourseMember()
            {
                CourseId = 1, MemberId = 1, Day = "Monday"
            };
            var courseMember2 = new CourseMember()
            {
                CourseId = 2, MemberId = 2, Day = "Tuesday"
            };
            var courseMembers = new List <CourseMember> {
                courseMember1, courseMember2
            };

            var newCourseMember2 = new CourseMember()
            {
                CourseId = 2, MemberId = 2, Day = "Wednesday"
            };

            var fakeCourseMemberRepositoryMock = new Mock <ICourseMemberRepository>();
            var fakeCourseRepositoryMock = new Mock <ICourseRepository>(); var fakeMemberRepositoryMock = new Mock <IMemberRepository>();

            fakeCourseMemberRepositoryMock.Setup(x => x.Update(It.IsAny <CourseMember>())).Callback <CourseMember>(arg => courseMembers[1] = arg);

            var courseMemberService = new CourseMemberService(fakeCourseMemberRepositoryMock.Object, fakeCourseRepositoryMock.Object, fakeMemberRepositoryMock.Object);

            await courseMemberService.UpdateAndSave(newCourseMember2);

            Assert.Equal("Wednesday", courseMembers[1].Day);
        }
        public async Task <IActionResult> Edit(long CourseId, long MemberId, [Bind("CourseId,MemberId,Day")] CourseMember courseMember)
        {
            if (CourseId != courseMember.CourseId || MemberId != courseMember.MemberId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    await _courseMemberService.UpdateAndSave(courseMember);
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!_courseMemberService.CourseMemberExists(courseMember.CourseId, courseMember.MemberId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["CourseId"] = new SelectList(await _courseMemberService.GetAllCourses(), "Id", "Name", courseMember.CourseId);
            ViewData["MemberId"] = new SelectList(await _courseMemberService.GetAllMembers(), "Id", "Email", courseMember.MemberId);
            ViewData["Days"]     = new SelectList(Days);
            return(View(courseMember));
        }