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_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); }
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.RaiseEvent(this, new EventArgs(), nameof(TestEvent)); //Assert Assert.IsTrue(didEventFire); }
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; }
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); }
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); }
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); }