public async Task ReleasingImageSourceReturnsDifferentBitmap() { var bitmapFile = CreateBitmapFile(100, 100, Colors.Red); var imageSource = new FileImageSourceStub(bitmapFile); var service = new FileImageSourceService(); // get an image var result1 = await service.GetImageAsync(imageSource); var uiimage1 = Assert.IsType <UIImage>(result1.Value); // release result1.Dispose(); // try collect it var collected = await TryCollectFile(bitmapFile); Assert.True(collected); // get the image again var result2 = await service.GetImageAsync(imageSource); var uiimage2 = Assert.IsType <UIImage>(result2.Value); // make sure it WAS collected and we got a new image Assert.NotEqual(uiimage1, uiimage2); result2.Dispose(); }
public async Task TheSameImageSourceReturnsTheSameBitmap() { var bitmapFile = CreateBitmapFile(100, 100, Colors.Red); var imageSource = new FileImageSourceStub(bitmapFile); var service = new FileImageSourceService(); // get an image var result1 = await service.GetImageAsync(imageSource); var uiimage1 = Assert.IsType <UIImage>(result1.Value); // try collect it var collected = await TryCollectFile(bitmapFile); Assert.False(collected); // get the image again var result2 = await service.GetImageAsync(imageSource); var uiimage2 = Assert.IsType <UIImage>(result2.Value); // make sure it was NOT collected and we got the same image Assert.Equal(uiimage1, uiimage2); result1.Dispose(); result2.Dispose(); }
public async Task ThrowsForIncorrectTypes(Type type) { var service = new FileImageSourceService(); var imageSource = (ImageSourceStub)Activator.CreateInstance(type); await Assert.ThrowsAsync <InvalidCastException>(() => service.GetImageAsync(imageSource)); }
public async Task GetImageAsyncWithResource(string filename, string colorHex) { var service = new FileImageSourceService(); var imageSource = new FileImageSourceStub(filename); using var result = await service.GetImageAsync(imageSource); var uiimage = Assert.IsType <UIImage>(result.Value); var expectedColor = Color.FromHex(colorHex); uiimage.AssertColorAtCenter(expectedColor.ToNative()); }
public async Task GetImageAsyncWithFile(string colorHex) { var expectedColor = Color.FromHex(colorHex); var service = new FileImageSourceService(); var filename = CreateBitmapFile(100, 100, expectedColor); var imageSource = new FileImageSourceStub(filename); using var drawable = await service.GetImageAsync(imageSource); var uiimage = Assert.IsType <UIImage>(drawable.Value); uiimage.AssertColorAtCenter(expectedColor.ToNative()); }