public void WindowVisibilityChangedEventEmit()
        {
            tlog.Debug(tag, $"WindowVisibilityChangedEventEmit START");
            var currentPid = global::System.Diagnostics.Process.GetCurrentProcess().Id;
            var currentTid = global::System.Threading.Thread.CurrentThread.ManagedThreadId;

            tlog.Debug(tag, $"thread check! main pid={App.mainPid}, current pid={currentPid}, main tid={App.mainTid}, current tid={currentTid}");

            using (Window window = new Window(new Rectangle(0, 0, 2, 2), false))
            {
                var testingTarget = new WindowVisibilityChangedEvent(Window.Instance);
                Assert.IsNotNull(testingTarget, "Should be not null!");
                Assert.IsInstanceOf <WindowVisibilityChangedEvent>(testingTarget, "Should be an Instance of WindowVisibilityChangedEvent!");

                try
                {
                    testingTarget.Emit(window, false);
                }
                catch (Exception e)
                {
                    tlog.Debug(tag, e.Message.ToString());
                    Assert.Fail("Caught Exception: Failed!");
                }

                testingTarget.Dispose();
            }

            tlog.Debug(tag, $"WindowVisibilityChangedEventEmit END (OK)");
        }
        public void WindowVisibilityChangedEventConnect()
        {
            tlog.Debug(tag, $"WindowVisibilityChangedEventConnect START");

            var testingTarget = new WindowVisibilityChangedEvent(Window.Instance);

            Assert.IsNotNull(testingTarget, "Should be not null!");
            Assert.IsInstanceOf <WindowVisibilityChangedEvent>(testingTarget, "Should be an Instance of WindowVisibilityChangedEvent!");

            try
            {
                dummyCallback callback = OnDummyCallback;
                testingTarget.Connect(callback);
                testingTarget.Disconnect(callback);
            }
            catch (Exception e)
            {
                tlog.Debug(tag, e.Message.ToString());
                Assert.Fail("Caught Exception: Failed!");
            }

            testingTarget.Dispose();

            tlog.Debug(tag, $"WindowVisibilityChangedEventConnect END (OK)");
        }
        public void WindowVisibilityChangedEventConstructor()
        {
            tlog.Debug(tag, $"WindowVisibilityChangedEventConstructor START");

            var testingTarget = new WindowVisibilityChangedEvent(Window.Instance);

            Assert.IsNotNull(testingTarget, "should be not null");
            Assert.IsInstanceOf <WindowVisibilityChangedEvent>(testingTarget, "should be an instance of WindowVisibilityChangedEvent class!");

            testingTarget.Dispose();
            tlog.Debug(tag, $"WindowVisibilityChangedEventConstructor END (OK)");
        }
        public void WindowVisibilityChangedEventEmpty()
        {
            tlog.Debug(tag, $"WindowVisibilityChangedEventEmpty START");

            var testingTarget = new WindowVisibilityChangedEvent(Window.Instance);

            Assert.IsNotNull(testingTarget, "Should be not null!");
            Assert.IsInstanceOf <WindowVisibilityChangedEvent>(testingTarget, "Should be an Instance of WindowVisibilityChangedEvent!");

            try
            {
                testingTarget.Empty();
            }
            catch (Exception e)
            {
                tlog.Debug(tag, e.Message.ToString());
                Assert.Fail("Caught Exception: Failed!");
            }

            testingTarget.Dispose();
            tlog.Debug(tag, $"WindowVisibilityChangedEventEmpty END (OK)");
        }