public async Task GetOrAddConferenceAsync_should_return_conference_when_cache_contains_key() { var conferenceResponse = CreateConferenceResponse(); var conference = ConferenceCacheMapper.MapConferenceToCacheModel(conferenceResponse); var serialisedConference = JsonConvert.SerializeObject(conference, SerializerSettings); var rawData = Encoding.UTF8.GetBytes(serialisedConference); _distributedCacheMock .Setup(x => x.GetAsync(conference.Id.ToString(), CancellationToken.None)) .ReturnsAsync(rawData); var cache = new DistributedConferenceCache(_distributedCacheMock.Object); var result = await cache.GetOrAddConferenceAsync(conference.Id, It.IsAny <Func <Task <ConferenceDetailsResponse> > >()); result.Should().BeEquivalentTo(conference); }
public async Task GetOrAddConferenceAsync_should_return_conference_when_cache_does_not_contains_key() { var conferenceResponse = CreateConferenceResponse(); var conference = ConferenceCacheMapper.MapConferenceToCacheModel(conferenceResponse); var serialisedConference = JsonConvert.SerializeObject(conference, SerializerSettings); var rawData = Encoding.UTF8.GetBytes(serialisedConference); _distributedCacheMock .SetupSequence(x => x.GetAsync(conference.Id.ToString(), CancellationToken.None)) .ReturnsAsync((byte[])null) .ReturnsAsync(rawData); _distributedCacheMock .Setup(x => x.SetAsync(conference.Id.ToString(), rawData, It.IsAny <DistributedCacheEntryOptions>(), CancellationToken.None)); var cache = new DistributedConferenceCache(_distributedCacheMock.Object); var result = await cache.GetOrAddConferenceAsync(conference.Id, async() => await Task.FromResult(conferenceResponse)); result.Should().BeEquivalentTo(conference); }