Esempio n. 1
0
        public CourseApi Post(CourseApi courseApi)
        {
            var course    = CourseApi.ToDomain(courseApi);
            var newCourse = new SaveCourseUseCase(course, _unitOfWork).Execute();

            return(CourseApi.FromDomain(newCourse));
        }
Esempio n. 2
0
        public void Should_persist_course_and_author()
        {
            var author = Author.Create("Marcos Harbs", "http://marcos.harbs.com/imagem.jpeg");
            var course = Course.Create("Curso 01", "Uma descrição que passe para o curso 01", author);

            var mockCoursesRepository = new Mock <ICourseRepository>();

            mockCoursesRepository.Setup(mock => mock.AddOrUpdate(course));

            var mockAuthorRepository = new Mock <IAuthorRepository>();

            mockAuthorRepository.Setup(mock => mock.AddOrUpdate(author));

            var mockUnitOfWork = new Mock <LibraryUnitOfWork>();

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

            var useCase   = new SaveCourseUseCase(course, mockUnitOfWork.Object);
            var newCourse = useCase.Execute();

            mockCoursesRepository.Verify(mock => mock.AddOrUpdate(course), Times.Exactly(1));
            mockAuthorRepository.Verify(mock => mock.AddOrUpdate(author), Times.Exactly(1));
            newCourse.Should().Be(course);
        }