public void WeakEventManagerTEventArgs_HandleEvent_ValidImplementation()
        {
            //Arrange
            TestStringEvent += HandleTestEvent;

            const string stringEventArg = "Test";
            bool         didEventFire   = false;

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

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

                Assert.IsNotNull(e);
                Assert.AreEqual(stringEventArg, e);

                didEventFire     = true;
                TestStringEvent -= HandleTestEvent;
            }

            //Act
            TestStringWeakEventManager.HandleEvent(this, stringEventArg, nameof(TestStringEvent));

            //Assert
            Assert.IsTrue(didEventFire);
        }
        public void WeakEventManageTEventArgs_HandleEvent_NullSender()
        {
            //Arrange
            TestStringEvent += HandleTestEvent;

            const string stringEventArg = "Test";

            bool didEventFire = false;

            void HandleTestEvent(object?sender, string e)
            {
                Assert.IsNull(sender);

                Assert.IsNotNull(e);
                Assert.AreEqual(stringEventArg, e);

                didEventFire     = true;
                TestStringEvent -= HandleTestEvent;
            }

            //Act
            TestStringWeakEventManager.HandleEvent(null, stringEventArg, nameof(TestStringEvent));

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

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

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

                Assert.IsNull(e);

                didEventFire     = true;
                TestStringEvent -= HandleTestEvent;
            }

            //Act
#pragma warning disable CS8625 //Cannot convert null literal to non-nullable reference type
            TestStringWeakEventManager.HandleEvent(this, null, nameof(TestStringEvent));
#pragma warning enable CS8625

            //Assert
            Assert.IsTrue(didEventFire);
        }
示例#4
0
        public void WeakEventManageTEventArgs_HandleEvent_NullSender()
        {
            // Arrange
            TestStringEvent += HandleTestEvent;

            const string stringEventArg = "Test";

            var didEventFire = false;

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

                Assert.IsNotNull(e);
                Assert.AreEqual(stringEventArg, e);

                didEventFire     = true;
                TestStringEvent -= HandleTestEvent;
            }

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

            // Assert
            Assert.IsTrue(didEventFire);
        }
        public void WeakEventManagerT_RemoveventHandler_WhiteSpaceEventName()
        {
            //Arrange

            //Act

            //Assert
            Assert.Throws <ArgumentNullException>(() => TestStringWeakEventManager.AddEventHandler(s => { var temp = s; }, string.Empty), "Value cannot be null.\nParameter name: eventName");
        }
示例#6
0
        public void WeakEventManagerT_RemoveventHandler_NullHandler()
        {
            //Arrange

            //Act

            //Assert
            Assert.Throws <ArgumentNullException>(() => TestStringWeakEventManager.RemoveEventHandler((EventHandler <string>)null), "Value cannot be null.\nParameter name: handler");
        }
示例#7
0
        public void WeakEventManagerT_RemoveEventHandler_WhiteSpaceEventName()
        {
            // Arrange

            // Act

            // Assert
            Assert.Throws <ArgumentNullException>(() => TestStringWeakEventManager.AddEventHandler(s => { var temp = s; }, string.Empty));
        }
示例#8
0
        public void WeakEventManagerT_RemoveventHandler_NullEventName()
        {
            //Arrange

            //Act

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

            //Act

            //Assert
#pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference
            Assert.Throws <ArgumentNullException>(() => TestStringWeakEventManager.AddEventHandler(s => { var temp = s; }, null), "Value cannot be null.\nParameter name: eventName");
#pragma warning enable CS8625  // Cannot convert null literal to non-nullable reference
        }
        public void WeakEventManagerT_RemoveventHandler_NullHandler()
        {
            //Arrange

            //Act

            //Assert
#pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference
            Assert.Throws <ArgumentNullException>(() => TestStringWeakEventManager.RemoveEventHandler((EventHandler <string>?)null), "Value cannot be null.\nParameter name: handler");
#pragma warning enable CS8625
        }
示例#11
0
        public void WeakEventManagerT_RemoveEventHandler_NullEventName()
        {
            // Arrange

            // Act

            // Assert
#pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type.
            Assert.Throws <ArgumentNullException>(() => TestStringWeakEventManager.AddEventHandler(s => { var temp = s; }, null));
#pragma warning restore CS8625 // Cannot convert null literal to non-nullable reference type.
        }
示例#12
0
        public void WeakEventManagerT_RemoveEventHandler_NullHandler()
        {
            // Arrange

            // Act

            // Assert
#pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference
            Assert.Throws <ArgumentNullException>(() => TestStringWeakEventManager.RemoveEventHandler((EventHandler <string>)null));
#pragma warning restore CS8625
        }
        public void WeakEventManagerT_HandleEvent_InvalidHandleEvent()
        {
            //Arrange
            TestStringEvent += HandleTestStringEvent;
            bool didEventFire = false;

            void HandleTestStringEvent(object sender, string e) => didEventFire = true;

            //Act

            //Assert
            Assert.Throws <InvalidHandleEventException>(() => TestStringWeakEventManager.HandleEvent("", nameof(TestStringEvent)));
            Assert.IsFalse(didEventFire);
            TestStringEvent -= HandleTestStringEvent;
        }
        public void WeakEventManagerTEventArgs_UnassignedEvent()
        {
            //Arrange
            bool didEventFire = false;

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

            //Act
            TestStringWeakEventManager.HandleEvent(this, "Test", nameof(TestStringEvent));

            //Assert
            Assert.IsFalse(didEventFire);
        }
示例#15
0
        public void WeakEventManagerTEventArgs_HandleEvent_InvalidHandleEvent()
        {
            // Arrange
            TestStringEvent += HandleTestEvent;

            var didEventFire = false;

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

            // Act
            TestStringWeakEventManager.RaiseEvent(this, "Test", nameof(TestEvent));

            // Assert
            Assert.False(didEventFire);
            TestStringEvent -= HandleTestEvent;
        }
示例#16
0
        public void WeakEventManagerTEventArgs_HandleEvent_NullEventArgs()
        {
            //Arrange
            TestStringEvent += HandleTestEvent;
            bool didEventFire = false;

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

                Assert.IsNull(e);

                didEventFire     = true;
                TestStringEvent -= HandleTestEvent;
            }

            //Act
            TestStringWeakEventManager.HandleEvent(this, null, nameof(TestStringEvent));

            //Assert
            Assert.IsTrue(didEventFire);
        }