public async Task GetCacheThenSourceAsync_Object_FromCache() { var sut = new SimpleCache(); var key = "key"; var name = "name"; var num = 2; var obj = new SampleCacheObject { Name = name, Number = num }; sut.Set(key, obj); var didSourceRun = false; var source = new Func <Task <SampleCacheObject> >(() => { didSourceRun = true; return(Task.FromResult(obj)); }); var result = await sut.GetCacheThenSourceAsync <SampleCacheObject>( key : key, sourceDelegate : source); result.IsCacheNull.Should().Be(false); result.ValueOrDefault.Should().NotBeNull(); result.ValueOrDefault.Number.Should().Be(num); result.ValueOrDefault.Name.Should().Be(name); didSourceRun.Should().BeFalse(); }
public void Set_Get_Object() { var sut = new SimpleCache(); var key = "key"; var num = 1; var name = "name"; var obj = new SampleCacheObject { Name = name, Number = num }; sut.Set(key, obj); var result = sut.Get <SampleCacheObject>(key); result.Should().NotBeNull(); result.ValueOrDefault.Should().NotBeNull(); result.IsCacheNull.Should().Be(false); result.ValueOrDefault.Number.Should().Be(num); result.ValueOrDefault.Name.Should().Be(name); }
public async Task GetCacheThenSourceAsync_Object_FromSource() { var sut = new SimpleCache(); var key = "key"; var name = "name"; var num = 2; var obj = new SampleCacheObject { Name = name, Number = num }; var result = await sut.GetCacheThenSourceAsync <SampleCacheObject>( key : key, sourceDelegate : () => Task.FromResult(obj)); result.IsCacheNull.Should().Be(false); result.ValueOrDefault.Should().NotBeNull(); result.ValueOrDefault.Number.Should().Be(num); result.ValueOrDefault.Name.Should().Be(name); var cachePersisted = sut.Get <SampleCacheObject>(key); cachePersisted.IsCacheNull.Should().BeFalse(); cachePersisted.ValueOrDefault.Number.Should().Be(num); cachePersisted.ValueOrDefault.Name.Should().Be(name); }