public async Task CustomTheSameImageSourceReturnsTheSameBitmap() { var imageSource = new CustomImageSourceStub(Colors.Red); var cache = new CustomImageCacheStub(); var service = new CustomImageSourceServiceStub(cache); // get an image var result1 = await service.GetDrawableAsync(imageSource, Platform.DefaultContext); Assert.Equal(1, cache.Cache.Count); Assert.Equal(1, cache.Cache[imageSource.Color].Count); // get the image again var result2 = await service.GetDrawableAsync(imageSource, Platform.DefaultContext); Assert.Equal(1, cache.Cache.Count); Assert.Equal(2, cache.Cache[imageSource.Color].Count); // make sure it was NOT collected and we got the same image Assert.Equal(result1.Value, result2.Value); result1.Dispose(); result2.Dispose(); }
public async Task CustomReleasingImageSourceReturnsDifferentBitmap() { var imageSource = new CustomImageSourceStub(Colors.Red); var cache = new CustomImageCacheStub(); var service = new CustomImageSourceServiceStub(cache); // get an image var result1 = await service.GetDrawableAsync(imageSource, Platform.DefaultContext); Assert.Equal(1, cache.Cache.Count); Assert.Equal(1, cache.Cache[imageSource.Color].Count); // release result1.Dispose(); // get the image again var result2 = await service.GetDrawableAsync(imageSource, Platform.DefaultContext); Assert.Equal(1, cache.Cache.Count); Assert.Equal(1, cache.Cache[imageSource.Color].Count); // make sure it WAS collected and we got a new image Assert.NotEqual(result1.Value, result2.Value); result2.Dispose(); }