Esempio n. 1
0
        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();
            }
        }
Esempio n. 2
0
        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();
            }
        }
Esempio n. 3
0
        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();
            }
        }