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);
        }