public void GetImageRunCallback() { var imageGetter = new SimpleBitmapThumbnailGetter(100); var callbackCompleted = false; var processingDone = new ManualResetEventSlim(false); var result = imageGetter.BeginGetImage(ar => { Assert.IsNotNull(ar); Assert.IsTrue(ar.IsCompleted); var actualImage = imageGetter.EndGetImage(ar); var expected = _originalImage.GetThumbnailImage(100, 100, null, IntPtr.Zero); //not the same binary?? //AssertImagesAreEquivalent(expected, actualImage); callbackCompleted = true; processingDone.Set(); }, _file.FullName); Assert.IsFalse(callbackCompleted); //result.AsyncWaitHandle.WaitOne(); //doesn't wait for callback complete, just callback init Assert.IsTrue(processingDone.Wait(5000)); Assert.IsFalse(result.CompletedSynchronously); Assert.IsTrue(callbackCompleted); }
public void GetImageBlocking() { var imageGetter = new SimpleBitmapThumbnailGetter(100); var result = imageGetter.BeginGetImage(null, _file.FullName); var actualImage = imageGetter.EndGetImage(result); var expected = _originalImage.GetThumbnailImage(100, 100, null, IntPtr.Zero); //not the same binary?? //AssertImagesAreEquivalent(expected, actualImage); Assert.IsFalse(result.CompletedSynchronously); }
public void GetCorrectTargetShape() { var actualBigSquare = SimpleBitmapThumbnailGetter.GetTargetShape(500, 500, 100); var expectedBigSquare = new Rectangle(0, 0, 100, 100); Assert.AreEqual(expectedBigSquare, actualBigSquare); var actualBigWideRectangle = SimpleBitmapThumbnailGetter.GetTargetShape(1000, 500, 100); var expectedBigWideRectangle = new Rectangle(0, 25, 100, 50); Assert.AreEqual(expectedBigWideRectangle, actualBigWideRectangle); var actualBigTallRectangle = SimpleBitmapThumbnailGetter.GetTargetShape(500, 1000, 100); var expectedBigTallRectangle = new Rectangle(25, 0, 50, 100); Assert.AreEqual(expectedBigTallRectangle, actualBigTallRectangle); var actualSmallSquare = SimpleBitmapThumbnailGetter.GetTargetShape(50, 50, 100); var expectedSmallSquare = new Rectangle(25, 25, 50, 50); Assert.AreEqual(expectedSmallSquare, actualSmallSquare); }