public void ValidCourseId_ShouldNotHaveError()
        {
            var command = new PublishCourseCommand {
                CourseId = "courseId"
            };

            _sut.ShouldNotHaveValidationErrorFor(x => x.CourseId, command);
        }
Example #2
0
        public async Task WhenIPublishACourseWithAnEmptyOrANull(string courseId)
        {
            _command = new PublishCourseCommand {
                CourseId = courseId
            };

            _response = await _client.PutAsync(BaseUrl, Utilities.GetRequestContent(_command));
        }
        public void EmptyOrNullCourseId_ShouldHaveError(string courseId)
        {
            var command = new PublishCourseCommand {
                CourseId = courseId
            };

            _sut.ShouldHaveValidationErrorFor(x => x.CourseId, command);
        }
Example #4
0
        public async Task WhenIPublishAnInvalidCourseId()
        {
            _command = new PublishCourseCommand {
                CourseId = "invalidCourseId"
            };

            _response = await _client.PutAsync(BaseUrl, Utilities.GetRequestContent(_command));
        }
Example #5
0
        public void GivenADraftCourseThatHasNoModule()
        {
            var course = CreateDraftCourse();

            _command = new PublishCourseCommand {
                CourseId = course.Id
            };
        }
Example #6
0
        public void GivenADraftCourseThatOneOfItsModulesHasNoLecture()
        {
            var course = CreateDraftCourse();

            var module = new Module("module", course.Id, 1);

            _factory.CreateModule(module);

            _command = new PublishCourseCommand {
                CourseId = course.Id
            };
        }
        public void SetUp()
        {
            _service    = new Mock <IPublishCourseService>();
            _unitOfWork = new Mock <IUnitOfWork>();
            _mediator   = new Mock <IMediator>();
            _command    = new PublishCourseCommand {
                CourseId = "courseId"
            };
            _sut = new PublishCourseCommandHandler(_service.Object, _unitOfWork.Object, _mediator.Object);

            _courseToPublish = new Course("name", "creatorId", DateTime.Now);
            _service.Setup(x => x.GetCourseWithDetailsFromRepo(_command.CourseId, default))
            .ReturnsAsync(_courseToPublish);
        }
Example #8
0
        public void GivenADraftCourseThatOneOfItsMediasHasNoUrl()
        {
            var course = CreateDraftCourse();

            var module = new Module("module", course.Id, 1);

            _factory.CreateModule(module);

            var video = new VideoLecture("video", module.Id, 1);

            _factory.CreateLecture(video);

            _command = new PublishCourseCommand {
                CourseId = course.Id
            };
        }
Example #9
0
        public void GivenADraftCourseThatOneOfItsArticlesHasNoContent()
        {
            var course = CreateDraftCourse();

            var module = new Module("module", course.Id, 1);

            _factory.CreateModule(module);

            var article = new ArticleLecture("article", module.Id, 1, content: null);

            _factory.CreateLecture(article);

            _command = new PublishCourseCommand {
                CourseId = course.Id
            };
        }
Example #10
0
        public async Task WhenIPublishACourseBelongingToAnOtherOrganization()
        {
            var otherOrganization = new Organization("other organization", SubscriptionPlans.Free);

            _factory.CreateOrganization(otherOrganization);

            var otherInstructor = new User("*****@*****.**", otherOrganization.Id);

            _factory.CreateUser(otherInstructor);

            var course = new Course("course", otherInstructor.Id, DateTime.Now);

            _factory.CreateCourse(course);

            _command = new PublishCourseCommand {
                CourseId = course.Id
            };
            _response = await _client.PutAsync(BaseUrl, Utilities.GetRequestContent(_command));
        }
Example #11
0
        public void GivenADraftCourseWithAValidContent()
        {
            var course = CreateDraftCourse();

            var module = new Module("module", course.Id, 1);

            _factory.CreateModule(module);

            var article = new ArticleLecture("article", module.Id, 1, content: "some content");

            _factory.CreateLecture(article);

            var video = new VideoLecture("video", module.Id, 1);

            video.SetUrl("mediaUrl");
            _factory.CreateLecture(video);

            _command = new PublishCourseCommand {
                CourseId = course.Id
            };
        }
Example #12
0
        public async Task <ActionResult> PublishCourse(PublishCourseCommand command, CancellationToken token)
        {
            await Mediator.Send(command, token);

            return(NoContent());
        }