예제 #1
0
        public void SignupCourse_ThrowsException_When_Course_IsNull([Frozen] Mock <ICourseRepository> repository,
                                                                    CourseSignupCommand command,
                                                                    CoursesCommandService sut)
        {
            // Arrange
            repository.Setup(o => o.GetCourse(command.CourseId)).Returns <Course>(null);
            // Act
            Action act = () => sut.SignupCourse(command).GetAwaiter().GetResult();

            // Assert
            act.Should().Throw <Exception>($"because course is null").And.Message.Contains("Course not found");
        }
예제 #2
0
        public async void SignupCourse_Success([Frozen] Mock <ICourseRepository> repository,
                                               CourseSignupCommand command,
                                               Course course,
                                               User user,
                                               CoursesCommandService sut)
        {
            // Arrange
            repository.Setup(o => o.GetCourse(command.CourseId)).ReturnsAsync(course);
            repository.Setup(o => o.GetUser(command.InputData.StudentId)).ReturnsAsync(user);
            int preSignUpUserCount = course.UserCourses.Count;
            // Act
            SignupCourseResponse result = await sut.SignupCourse(command);

            // Assert
            int postSignUpUserCount = course.UserCourses.Count;

            postSignUpUserCount.Should().Be(preSignUpUserCount + 1, "because user is added to the course");
            result.Success.Should().BeTrue("because result is success");
        }