예제 #1
0
        public PaginatedData <CourseApi> Get(int page = 0, int pageSize = 20)
        {
            var totalCourses = new GetTotalCoursesUseCase(_unitOfWork).Execute();
            var courses      = new GetCoursesUseCase(page, pageSize, _unitOfWork).Execute();

            return(PaginatedData <CourseApi> .Create(totalCourses, page, pageSize, CourseApi.FromDomain(courses)));
        }
        public void Should_get_courses()
        {
            var author = Author.Create("Marcos Harbs", "http://marcos.harbs.com/imagem.jpeg");

            var coursesList = new List <Course>();

            coursesList.Add(Course.Create("Curso 01", "Uma descrição que passe para o curso 01", author));
            coursesList.Add(Course.Create("Curso 02", "Uma descrição que passe para o curso 02", author));
            coursesList.Add(Course.Create("Curso 03", "Uma descrição que passe para o curso 03", author));

            var mockCoursesRepository = new Mock <ICourseRepository>();

            mockCoursesRepository.Setup(mock => mock.GetPartial(0, 20)).Returns(coursesList);

            var mockUnitOfWork = new Mock <LibraryUnitOfWork>();

            mockUnitOfWork.Setup(mock => mock.GetCourseRepository()).Returns(mockCoursesRepository.Object);

            var useCase = new GetCoursesUseCase(0, 20, mockUnitOfWork.Object);
            var courses = useCase.Execute();

            mockCoursesRepository.Verify(mock => mock.GetPartial(0, 20), Times.Exactly(1));
            courses.Should().BeEquivalentTo(coursesList);
        }