public async Task And_Courses_Not_Cached_Then_Gets_From_Api_And_Stores_In_Cache(
            GetTrainingCoursesQuery query,
            GetStandardsListResponse coursesFromApi,
            [Frozen] Mock <ICoursesApiClient <CoursesApiConfiguration> > mockCoursesApiClient,
            [Frozen] Mock <ICacheStorageService> mockCacheService,
            GetTrainingCoursesQueryHandler handler)
        {
            var expectedExpirationInHours = 3;

            mockCoursesApiClient
            .Setup(client => client.Get <GetStandardsListResponse>(
                       It.IsAny <GetActiveStandardsListRequest>()))
            .ReturnsAsync(coursesFromApi);
            mockCacheService
            .Setup(service => service.RetrieveFromCache <GetStandardsListResponse>(nameof(GetStandardsListResponse)))
            .ReturnsAsync((GetStandardsListResponse)null);

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

            result.TrainingCourses.Should().BeEquivalentTo(coursesFromApi.Standards);
            mockCacheService.Verify(service =>
                                    service.SaveToCache(
                                        nameof(GetStandardsListResponse),
                                        coursesFromApi,
                                        expectedExpirationInHours));
        }
Beispiel #2
0
        public async Task Then_Gets_Standards_From_Courses_Api(
            GetTrainingCoursesQuery query,
            GetStandardsListResponse apiResponse,
            [Frozen] Mock <ICoursesApiClient <CoursesApiConfiguration> > mockApiClient,
            GetTrainingCoursesQueryHandler handler)
        {
            mockApiClient
            .Setup(client => client.Get <GetStandardsListResponse>(It.IsAny <GetStandardsRequest>()))
            .ReturnsAsync(apiResponse);

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

            result.Courses.Should().BeEquivalentTo(apiResponse.Standards);
        }
        public async Task And_Courses_Cached_Then_Gets_Courses_From_Cache(
            GetTrainingCoursesQuery query,
            GetStandardsListResponse coursesFromCache,
            [Frozen] Mock <ICacheStorageService> mockCacheService,
            GetTrainingCoursesQueryHandler handler)
        {
            mockCacheService
            .Setup(service => service.RetrieveFromCache <GetStandardsListResponse>(nameof(GetStandardsListResponse)))
            .ReturnsAsync(coursesFromCache);

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

            result.TrainingCourses.Should().BeEquivalentTo(coursesFromCache.Standards);
        }
Beispiel #4
0
        public async Task And_Courses_Are_Taken_From_Service_And_Returned(
            GetTrainingCoursesQuery query,
            GetStandardsListResponse coursesFromCache,
            [Frozen] Mock <ICourseService> standardsService,
            GetTrainingCoursesQueryHandler handler)
        {
            standardsService
            .Setup(service => service.GetActiveStandards <GetStandardsListResponse>(nameof(GetStandardsListResponse)))
            .ReturnsAsync(coursesFromCache);

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

            result.TrainingCourses.Should().BeEquivalentTo(coursesFromCache.Standards);
        }