public void WeakEventManager_HandleEvent_EmptyEventArgs()
        {
            // Arrange
            TestEvent += HandleTestEvent;
            var didEventFire = false;

            void HandleTestEvent(object?sender, EventArgs e)
            {
                if (sender == null)
                {
                    throw new ArgumentNullException(nameof(sender));
                }

                Assert.IsNotNull(sender);
                Assert.AreEqual(GetType(), sender.GetType());

                Assert.IsNotNull(e);
                Assert.AreEqual(EventArgs.Empty, e);

                didEventFire = true;
                TestEvent   -= HandleTestEvent;
            }

            // Act
            TestWeakEventManager.RaiseEvent(this, EventArgs.Empty, nameof(TestEvent));

            // Assert
            Assert.IsTrue(didEventFire);
        }
        public void WeakEventManager_HandleEvent_ValidImplementation()
        {
            //Arrange
            TestEvent += HandleTestEvent;
            bool didEventFire = false;

            void HandleTestEvent(object?sender, EventArgs e)
            {
                if (sender is null)
                {
                    throw new ArgumentNullException(nameof(sender));
                }

                Assert.IsNotNull(sender);
                Assert.AreEqual(this.GetType(), sender.GetType());

                Assert.IsNotNull(e);

                didEventFire = true;
                TestEvent   -= HandleTestEvent;
            }

            //Act
            TestWeakEventManager.HandleEvent(this, new EventArgs(), nameof(TestEvent));

            //Assert
            Assert.IsTrue(didEventFire);
        }
        public void WeakEventManager_HandleEvent_NullEventArgs()
        {
            // Arrange
            TestEvent += HandleTestEvent;
            var didEventFire = false;

            void HandleTestEvent(object?sender, EventArgs e)
            {
                if (sender == null)
                {
                    throw new ArgumentNullException(nameof(sender));
                }

                Assert.IsNotNull(sender);
                Assert.AreEqual(GetType(), sender.GetType());

                Assert.Null(e);

                didEventFire = true;
                TestEvent   -= HandleTestEvent;
            }

            // Act
#pragma warning disable CS8625 //Cannot convert null literal to non-nullable reference type
            TestWeakEventManager.RaiseEvent(this, null, nameof(TestEvent));
#pragma warning restore CS8625

            // Assert
            Assert.IsTrue(didEventFire);
        }
コード例 #4
0
        public void WeakEventManager_RemoveventHandler_WhiteSpaceEventName()
        {
            //Arrange

            //Act

            //Assert
            Assert.Throws <ArgumentNullException>(() => TestWeakEventManager.RemoveEventHandler(null, " "), "Value cannot be null.\nParameter name: eventName");
        }
コード例 #5
0
        public void WeakEventManager_AddEventHandler_NullHandler()
        {
            //Arrange

            //Act

            //Assert
            Assert.Throws <ArgumentNullException>(() => TestWeakEventManager.AddEventHandler(null), "Value cannot be null.\nParameter name: handler");
        }
コード例 #6
0
        public void WeakEventManager_AddEventHandler_EmptyEventName()
        {
            //Arrange

            //Act

            //Assert
            Assert.Throws <ArgumentNullException>(() => TestWeakEventManager.AddEventHandler(null, string.Empty), "Value cannot be null.\nParameter name: eventName");
        }
        public void WeakEventManager_RemoveEventHandler_WhiteSpaceEventName()
        {
            // Arrange

            // Act

            // Assert
#pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference
            Assert.Throws <ArgumentNullException>(() => TestWeakEventManager.RemoveEventHandler(null, " "));
#pragma warning restore CS8625
        }
        public void WeakEventManager_AddEventHandler_EmptyEventName()
        {
            // Arrange

            // Act

            // Assert
#pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference
            Assert.Throws <ArgumentNullException>(() => TestWeakEventManager.AddEventHandler(null, string.Empty));
#pragma warning restore CS8625
        }
        public void WeakEventManager_AddEventHandler_NullHandler()
        {
            //Arrange

            //Act

            //Assert
#pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference
            Assert.Throws <ArgumentNullException>(() => TestWeakEventManager.AddEventHandler(null), "Value cannot be null.\nParameter name: handler");
#pragma warning restore CS8625
        }
        public void WeakEventManager_RemoveEventHandler_EmptyEventName()
        {
            //Arrange

            //Act

            //Assert
#pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference
            Assert.Throws <ArgumentNullException>(() => TestWeakEventManager.RemoveEventHandler(null, string.Empty), "Value cannot be null.\nParameter name: eventName");
#pragma warning restore CS8625
        }
        public void WeakEventManager_HandleEvent_InvalidHandleEvent()
        {
            // Arrange
            TestEvent += HandleTestEvent;
            var didEventFire = false;

            void HandleTestEvent(object?sender, EventArgs e) => didEventFire = true;

            // Act

            // Assert
            Assert.Throws <InvalidHandleEventException>(() => TestWeakEventManager.RaiseEvent(nameof(TestEvent)));
            Assert.False(didEventFire);
            TestEvent -= HandleTestEvent;
        }
        public void WeakEventManager_HandleEvent_InvalidHandleEventName()
        {
            // Arrange
            TestEvent += HandleTestEvent;
            var didEventFire = false;

            void HandleTestEvent(object?sender, EventArgs e) => didEventFire = true;

            // Act
            TestWeakEventManager.RaiseEvent(this, new EventArgs(), nameof(TestStringEvent));

            // Assert
            Assert.False(didEventFire);
            TestEvent -= HandleTestEvent;
        }
コード例 #13
0
        public void WeakEventManager_UnassignedEvent()
        {
            // Arrange
            var didEventFire = false;

            TestEvent += HandleTestEvent;
            TestEvent -= HandleTestEvent;
            void HandleTestEvent(object?sender, EventArgs e) => didEventFire = true;

            // Act
            TestWeakEventManager.RaiseEvent(null, null, nameof(TestEvent));

            // Assert
            Assert.False(didEventFire);
        }
        public void WeakEventManager_UnassignedEvent()
        {
            // Arrange
            var didEventFire = false;

            TestEvent += HandleTestEvent;
            TestEvent -= HandleTestEvent;
            void HandleTestEvent(object?sender, EventArgs e) => didEventFire = true;

            // Act
#pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type.
            TestWeakEventManager.RaiseEvent(null, null, nameof(TestEvent));
#pragma warning restore CS8625 // Cannot convert null literal to non-nullable reference type.

            // Assert
            Assert.False(didEventFire);
        }
コード例 #15
0
        public void WeakEventManager_HandleEvent_NullSender()
        {
            // Arrange
            TestEvent += HandleTestEvent;
            var didEventFire = false;

            void HandleTestEvent(object?sender, EventArgs e)
            {
                Assert.Null(sender);
                Assert.NotNull(e);

                didEventFire = true;
                TestEvent   -= HandleTestEvent;
            }

            // Act
            TestWeakEventManager.RaiseEvent(null, new EventArgs(), nameof(TestEvent));

            // Assert
            Assert.True(didEventFire);
        }
コード例 #16
0
        public void WeakEventManager_HandleEvent_NullEventArgs()
        {
            //Arrange
            TestEvent += HandleTestEvent;
            bool didEventFire = false;

            void HandleTestEvent(object sender, EventArgs e)
            {
                Assert.IsNotNull(sender);
                Assert.AreEqual(this.GetType(), sender.GetType());

                Assert.IsNull(e);

                didEventFire = true;
                TestEvent   -= HandleTestEvent;
            }

            //Act
            TestWeakEventManager.HandleEvent(this, null, nameof(TestEvent));

            //Assert
            Assert.IsTrue(didEventFire);
        }
        public void WeakEventManager_HandleEvent_NullSender()
        {
            // Arrange
            TestEvent += HandleTestEvent;
            var didEventFire = false;

            void HandleTestEvent(object?sender, EventArgs e)
            {
                Assert.Null(sender);
                Assert.IsNotNull(e);

                didEventFire = true;
                TestEvent   -= HandleTestEvent;
            }

            // Act
#pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type.
            TestWeakEventManager.RaiseEvent(null, new EventArgs(), nameof(TestEvent));
#pragma warning restore CS8625 // Cannot convert null literal to non-nullable reference type.

            // Assert
            Assert.IsTrue(didEventFire);
        }