public void TestIfExecuteFilterTestsNullEvent() { var filename = "test7a.png"; TestIfExecuteFilterCallsEventHelper(filename); filename = "test7b.png"; var filter = new ImageFilter(); var testBitmap = GetTestBitmap(); SaveBitmap(testBitmap, filename); filter.Load(filename); try { TestLoadHelper(filter, testBitmap); try { filter.ExecuteFilter((p) => { return(p); }); } catch (Exception e) { Assert.Fail($"Method \'ExecuteFilter\' calls event even if it is null: \'{e.GetType().ToString()}\' is thrown."); } } finally { filter.OriginalImage.Dispose(); filter.FilteredImage.Dispose(); } }
private void TestIfExecuteFilterCallsEventHelper(string filename) { TestIfImageFilterContainsEvent(); ImageFilter filter = new ImageFilter(); var testBitmap = GetTestBitmap(); SaveBitmap(testBitmap, filename); filter.Load(filename); try { TestLoadHelper(filter, testBitmap); int eventCounter = 0; int eventValue = -1; EventInfo eventInfo = typeof(ImageFilter).GetEvents().FirstOrDefault(); if (eventInfo != null) { var parameters = eventInfo.EventHandlerType.GetMethod("Invoke").GetParameters(); MethodInfo addHandler = eventInfo.GetAddMethod(); Action <int> dummy = (i) => { eventCounter++; eventValue = i; }; Object[] addHandlerArgs = { dummy }; addHandler.Invoke(filter, addHandlerArgs); } ; filter.ExecuteFilter((p) => { return(p); }); Assert.IsTrue((eventCounter > 0), $"Method \'ExecuteFilter\' does not call its \'{eventInfo.Name}\' event."); Assert.IsTrue((eventCounter > Math.Min(testBitmap.Height, testBitmap.Width) / 2), $"Method \'ExecuteFilter\' calls its \'{eventInfo.Name}\' event only {eventCounter} times for bitmap with {testBitmap.Height} lines of {testBitmap.Width} pixels."); Assert.IsTrue((eventValue >= 90), $"ExecuteFilter - Last value from \'{eventInfo.Name}\' event is {eventValue}, expected 100."); } finally { filter.OriginalImage.Dispose(); filter.FilteredImage.Dispose(); } }
public void TestExecuteFilter() { var filename = "test1.png"; ImageFilter filter = new ImageFilter(); var testBitmap = GetTestBitmap(); SaveBitmap(testBitmap, filename); filter.Load(filename); try { TestLoadHelper(filter, testBitmap); AttachDummyEventHandler(filter); filter.ExecuteFilter((p) => { return(Color.FromArgb(1, 2, 3)); }); var filteredBitmap = filter.FilteredImage; Assert.IsNotNull(filteredBitmap, $"ImageFilter - upon calling \'ExecuteFilter\', property \'FilteredImage\' is null."); var originalBitmap = filter.OriginalImage; Assert.IsTrue(((originalBitmap.Width == filteredBitmap.Width) && (originalBitmap.Height == filteredBitmap.Height)), $"ImageFilter - upon calling \'ExecuteFilter\', property \'filteredImage\' has wrong size."); for (int x = 0; x < filteredBitmap.Width; x++) { for (int y = 0; y < filteredBitmap.Height; y++) { var c = filteredBitmap.GetPixel(x, y); Assert.IsTrue( ((c.R == 1) && (c.G == 2) && (c.B == 3)), $"ImageFilter - upon calling \'ExecuteFilter\', property \'FilteredImage\' contains wrong bitmap."); } } } finally { filter.OriginalImage.Dispose(); filter.FilteredImage.Dispose(); } }