public async Task Then_The_Standards_Are_Retrieved_From_The_Api_And_Added_To_Cached() { //Arrange StandardsView returnData = null; var apiResponse = new GetStandardsResponse { Standards = new List<StandardResponseItem> { new StandardResponseItem { Id = 1 } } }; _apiClient.Setup(x => x.Get<GetStandardsResponse>(It.IsAny<GetStandardsRequest>())) .ReturnsAsync(apiResponse); _cache.Setup(x => x.Exists("Standards")).Returns(false); _cache.Setup(x => x.Set("Standards", It.IsAny<StandardsView>())).Callback<string,object>( (key, value) => { returnData = value as StandardsView; }); //Act await _service.GetStandardsAsync(); //Assert _apiClient.Verify(x=>x.Get<GetStandardsResponse>(It.IsAny<GetStandardsRequest>()),Times.Once); returnData.Standards.Count.Should().Be(apiResponse.Standards.Count); returnData.Standards.ToList().First().ShouldBeEquivalentTo(apiResponse.Standards.First(), options=> options .Excluding(c=>c.Title) .Excluding(c=>c.Code) .Excluding(c=>c.CourseName) ); }
public void Arrange() { var fixture = new Fixture(); _sectorResponse = fixture.Create <GetSectorsResponse>(); _standardsResponse = fixture.Create <GetStandardsResponse>(); _sector = fixture.Create <string>(); var apiClient = new Mock <IApiClient>(); apiClient.Setup(x => x.Get <GetSectorsResponse>(It.IsAny <GetSectorsRequest>())) .ReturnsAsync(_sectorResponse); apiClient.Setup(x => x.Get <GetStandardsResponse>(It.Is <GetStandardsBySectorRequest>(c => c.GetUrl.Contains(_sector)))) .ReturnsAsync(_standardsResponse); _standardsRepository = new StandardsRepository(apiClient.Object); }