示例#1
0
        public void GetCourseContentsShouldGetTheChaptersFromTheRepositoryAndConvertThemToModels()
        {
            //Arrange
            var existingCourse   = new CourseBuilder().WithId().Build();
            var existingChapters = new List <Chapter>
            {
                new ChapterBuilder().Build(),
                new ChapterBuilder().Build(),
            };
            var convertedCourse = new CourseContentsModel();

            _chapterServiceMock.Setup(service => service.GetChaptersOfCourseAsync(It.IsAny <int>())).ReturnsAsync(existingChapters);
            var courseId = _random.NextPositive();

            _courseServiceMock.Setup(service => service.GetCourseByIdAsync(It.IsAny <int>()))
            .ReturnsAsync(existingCourse);
            _courseConverterMock
            .Setup(converter => converter.ToCourseContentsModel(It.IsAny <Course>(), It.IsAny <IList <Chapter> >()))
            .Returns(convertedCourse);

            //Act
            var actionResult = _controller.GetCourseContents(courseId).Result as OkObjectResult;

            //Assert
            Assert.That(actionResult, Is.Not.Null);
            _chapterServiceMock.Verify(service => service.GetChaptersOfCourseAsync(courseId), Times.Once);
            _courseConverterMock.Verify(converter => converter.ToCourseContentsModel(existingCourse, existingChapters), Times.Once);
            Assert.That(actionResult.Value, Is.EqualTo(convertedCourse));
        }
示例#2
0
        public CourseContentsModel ToCourseContentsModel(Course course, IList <Chapter> chapters)
        {
            if (course == null || chapters == null)
            {
                throw new ArgumentException("None of the arguments 'course' or 'chapters' can be null.");
            }

            var model = new CourseContentsModel
            {
                Id       = course.Id,
                Code     = course.Code,
                Name     = course.Name,
                Chapters = chapters.Select(chapter => _chapterConverter.ToChapterModel(chapter)).ToList()
            };

            return(model);
        }