public async Task Then_Gets_Standards_And_Sectors_And_Levels_From_Courses_Api_With_Request_Params( GetTrainingCoursesListQuery query, GetStandardsListResponse apiResponse, GetSectorsListResponse sectorsApiResponse, GetLevelsListResponse levelsApiResponse, [Frozen] Mock <ICoursesApiClient <CoursesApiConfiguration> > mockApiClient, GetTrainingCoursesListQueryHandler handler) { mockApiClient .Setup(client => client.Get <GetStandardsListResponse>( It.Is <GetStandardsListRequest>(c => c.Keyword.Equals(query.Keyword) && c.RouteIds.Equals(query.RouteIds) && c.Levels.Equals(query.Levels) ))) .ReturnsAsync(apiResponse); mockApiClient .Setup(client => client.Get <GetSectorsListResponse>(It.IsAny <GetSectorsListRequest>())) .ReturnsAsync(sectorsApiResponse); mockApiClient .Setup(client => client.Get <GetLevelsListResponse>(It.IsAny <GetLevelsListRequest>())) .ReturnsAsync(levelsApiResponse); var result = await handler.Handle(query, CancellationToken.None); result.Courses.Should().BeEquivalentTo(apiResponse.Standards); result.Sectors.Should().BeEquivalentTo(sectorsApiResponse.Sectors); result.Levels.Should().BeEquivalentTo(levelsApiResponse.Levels); result.Total.Should().Be(apiResponse.Total); result.TotalFiltered.Should().Be(apiResponse.TotalFiltered); result.OrderBy.Should().Be(query.OrderBy); }
public async Task Then_The_Sectors_Are_Returned_From_The_Cache_If_Available( GetTrainingCoursesListQuery query, GetStandardsListResponse apiResponse, GetSectorsListResponse sectorsApiResponse, GetLevelsListResponse levelsApiResponse, [Frozen] Mock <ICoursesApiClient <CoursesApiConfiguration> > mockApiClient, [Frozen] Mock <ICacheStorageService> cacheStorageService, GetTrainingCoursesListQueryHandler handler) { //Arrange mockApiClient .Setup(client => client.Get <GetStandardsListResponse>( It.Is <GetStandardsListRequest>(c => c.Keyword.Equals(query.Keyword) && c.RouteIds.Equals(query.RouteIds)))) .ReturnsAsync(apiResponse); mockApiClient .Setup(client => client.Get <GetLevelsListResponse>(It.IsAny <GetLevelsListRequest>())) .ReturnsAsync(levelsApiResponse); cacheStorageService .Setup(x => x.RetrieveFromCache <GetSectorsListResponse>(nameof(GetSectorsListResponse))) .ReturnsAsync(sectorsApiResponse); //Act var result = await handler.Handle(query, CancellationToken.None); //Assert result.Courses.Should().BeEquivalentTo(apiResponse.Standards); result.Sectors.Should().BeEquivalentTo(sectorsApiResponse.Sectors); result.Total.Should().Be(apiResponse.Total); result.TotalFiltered.Should().Be(apiResponse.TotalFiltered); mockApiClient.Verify(x => x.Get <GetSectorsListResponse>(It.IsAny <GetSectorsListRequest>()), Times.Never); }
public async Task Then_The_Levels_Are_Added_To_The_Cache_If_Not_Available(GetTrainingCoursesListQuery query, GetStandardsListResponse apiResponse, GetSectorsListResponse sectorsApiResponse, GetLevelsListResponse levelsApiResponse, [Frozen] Mock <ICoursesApiClient <CoursesApiConfiguration> > mockApiClient, [Frozen] Mock <ICacheStorageService> cacheStorageService, GetTrainingCoursesListQueryHandler handler) { mockApiClient .Setup(client => client.Get <GetStandardsListResponse>( It.Is <GetStandardsListRequest>(c => c.Keyword.Equals(query.Keyword) && c.RouteIds.Equals(query.RouteIds)))) .ReturnsAsync(apiResponse); mockApiClient .Setup(client => client.Get <GetSectorsListResponse>(It.IsAny <GetSectorsListRequest>())) .ReturnsAsync(sectorsApiResponse); mockApiClient .Setup(client => client.Get <GetLevelsListResponse>(It.IsAny <GetLevelsListRequest>())) .ReturnsAsync(levelsApiResponse); await handler.Handle(query, CancellationToken.None); cacheStorageService.Verify(x => x.SaveToCache(nameof(GetLevelsListResponse), levelsApiResponse, 1)); }