public void SetUp()
 {
     _service = new Mock <IGetCourseService>();
     _sut     = new GetCourseQueryHandler(_service.Object);
     _query   = new GetCourseQuery {
         CourseId = "courseId"
     };
 }
Beispiel #2
0
        public async Task Then_Gets_Standard_From_Courses_Api(
            GetCourseQuery query,
            GetStandardsListItem apiResponse,
            [Frozen] Mock <ICoursesApiClient <CoursesApiConfiguration> > mockApiClient,
            GetCourseQueryHandler handler)
        {
            mockApiClient
            .Setup(client => client.Get <GetStandardsListItem>(It.IsAny <GetStandardRequest>()))
            .ReturnsAsync(apiResponse);

            var result = await handler.Handle(query, CancellationToken.None);

            result.Course.Should().BeEquivalentTo(apiResponse);
        }
        public async Task Then_Gets_Courses_From_Service(
            GetCourseQuery query,
            CourseListItem courseFromService,
            [Frozen] Mock <ICourseService> mockService,
            GetCourseQueryHandler handler)
        {
            mockService
            .Setup(service => service.GetCourse(query.CourseId))
            .ReturnsAsync(courseFromService);

            var result = await handler.Handle(query, CancellationToken.None);

            result.Course.Should().BeEquivalentTo(courseFromService);
        }
        public void GetCourse_WhenItsExist_ShouldSuccess()
        {
            using (var sut = new SystemUnderTest())
            {
                var course = sut.CreateCourse("Kurs Angielskiego A1", 2019, 350);
                var unitOfWorkSubstitute = Substitute.For <IUnitOfWork>();

                unitOfWorkSubstitute.CoursesRepository.GetById(course.Id).Returns(course);

                var query        = new GetCourseQuery(course.Id.Value);
                var queryHandler = new GetCourseQueryHandler(unitOfWorkSubstitute);
                var coursesQuery = queryHandler.Handle(query);

                coursesQuery.Name.Should().Be("Kurs Angielskiego A1");
            }
        }
Beispiel #5
0
        public async Task Then_If_There_Is_No_Course_Returns_Null(
            GetCourseQuery request,
            [Frozen] Mock <IValidator <GetCourseQuery> > mockValidator,
            [Frozen] ValidationResult validationResult,
            [Frozen] Mock <ICourseService> mockService,
            GetCourseQueryHandler handler)
        {
            //Arrange
            validationResult.ValidationDictionary.Clear();
            mockValidator.Setup(x => x.ValidateAsync(request)).ReturnsAsync(validationResult);
            mockService.Setup(x => x.GetCourse(request.CourseId, request.Lat, request.Lon, request.LocationName, request.ShortlistUserId)).ReturnsAsync((TrainingCourse)null);

            //Act
            var actual = await handler.Handle(request, CancellationToken.None);

            //Assert
            mockService.Verify(x => x.GetCourse(request.CourseId, request.Lat, request.Lon, request.LocationName, request.ShortlistUserId), Times.Once);
            Assert.IsNull(actual.Course);
            Assert.IsNull(actual.ProvidersCount);
            Assert.AreEqual(0, actual.ShortlistItemCount);
        }
Beispiel #6
0
        public void Then_Throws_ValidationException_When_Request_Fails_Validation(
            GetCourseQuery request,
            string propertyName,
            [Frozen] Mock <IValidator <GetCourseQuery> > mockValidator,
            [Frozen] ValidationResult validationResult,
            [Frozen] Mock <ICourseService> mockService,
            GetCourseQueryHandler handler)
        {
            //Arrange
            validationResult.AddError(propertyName);
            mockValidator
            .Setup(validator => validator.ValidateAsync(It.IsAny <GetCourseQuery>()))
            .ReturnsAsync(validationResult);

            //Act
            var act = new Func <Task>(async() => await handler.Handle(request, CancellationToken.None));

            //Assert
            act.Should().Throw <ValidationException>()
            .WithMessage($"*{propertyName}*");
        }
Beispiel #7
0
        public async Task Then_If_The_Query_Is_Valid_The_Service_Is_Called_And_The_Data_Returned(
            GetCourseQuery request,
            TrainingCourse courseResponse,
            [Frozen] Mock <IValidator <GetCourseQuery> > mockValidator,
            [Frozen] ValidationResult validationResult,
            [Frozen] Mock <ICourseService> mockService,
            GetCourseQueryHandler handler)
        {
            //Arrange
            validationResult.ValidationDictionary.Clear();
            mockValidator.Setup(x => x.ValidateAsync(request)).ReturnsAsync(validationResult);
            mockService.Setup(x => x.GetCourse(request.CourseId, request.Lat, request.Lon, request.LocationName, request.ShortlistUserId)).ReturnsAsync(courseResponse);

            //Act
            var actual = await handler.Handle(request, CancellationToken.None);

            //Assert
            mockService.Verify(x => x.GetCourse(request.CourseId, request.Lat, request.Lon, request.LocationName, request.ShortlistUserId), Times.Once);
            Assert.IsNotNull(actual);
            actual.Course.Should().BeEquivalentTo(courseResponse.Course);
            actual.ProvidersCount.Should().BeEquivalentTo(courseResponse.ProvidersCount);
            actual.ShortlistItemCount.Should().Be(courseResponse.ShortlistItemCount);
        }