示例#1
0
        public async Task And_Courses_Not_Cached_Then_Gets_From_Api_And_Stores_In_Cache(
            GetStandardsListResponse coursesFromApi,
            [Frozen] Mock <ICoursesApiClient <CoursesApiConfiguration> > mockCoursesApiClient,
            [Frozen] Mock <ICacheStorageService> mockCacheService,
            CachedCoursesService service)
        {
            var expectedExpirationInHours = 1;

            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 service.GetCourses();

            result.Should().BeEquivalentTo(coursesFromApi);
            mockCacheService.Verify(service =>
                                    service.SaveToCache <GetStandardsListResponse>(
                                        nameof(GetStandardsListResponse),
                                        coursesFromApi,
                                        expectedExpirationInHours));
        }
示例#2
0
        public async Task And_Courses_Cached_Then_Gets_Courses_From_Cache(
            GetStandardsListResponse coursesFromCache,
            [Frozen] Mock <ICacheStorageService> mockCacheService,
            CachedCoursesService service)
        {
            mockCacheService
            .Setup(service => service.RetrieveFromCache <GetStandardsListResponse>(nameof(GetStandardsListResponse)))
            .ReturnsAsync(coursesFromCache);

            var result = await service.GetCourses();

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