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)); }
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); }