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; 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.IsNull(e); didEventFire = true; TestEvent -= HandleTestEvent; } //Act #pragma warning disable CS8625 //Cannot convert null literal to non-nullable reference type TestWeakEventManager.HandleEvent(this, null, nameof(TestEvent)); #pragma warning restore CS8625 //Assert Assert.IsTrue(didEventFire); }
public void WeakEventManager_HandleEvent_InvalidHandleEvent() { //Arrange TestEvent += HandleTestEvent; bool didEventFire = false; void HandleTestEvent(object?sender, EventArgs e) => didEventFire = true; //Act //Assert Assert.Throws <InvalidHandleEventException>(() => TestWeakEventManager.HandleEvent(nameof(TestEvent))); Assert.IsFalse(didEventFire); TestEvent -= HandleTestEvent; }
public void WeakEventManager_UnassignedEvent() { //Arrange bool didEventFire = false; TestEvent += HandleTestEvent; TestEvent -= HandleTestEvent; void HandleTestEvent(object?sender, EventArgs e) => didEventFire = true; //Act TestWeakEventManager.HandleEvent(null, null, nameof(TestEvent)); //Assert Assert.IsFalse(didEventFire); }
public void WeakEventManager_HandleEvent_InvalidHandleEventName() { //Arrange TestEvent += HandleTestEvent; bool didEventFire = false; void HandleTestEvent(object?sender, EventArgs e) => didEventFire = true; //Act TestWeakEventManager.HandleEvent(this, new EventArgs(), nameof(TestStringEvent)); //Assert Assert.False(didEventFire); TestEvent -= HandleTestEvent; }
public void WeakEventManager_HandleEvent_NullSender() { //Arrange TestEvent += HandleTestEvent; bool didEventFire = false; void HandleTestEvent(object?sender, EventArgs e) { Assert.IsNull(sender); Assert.IsNotNull(e); didEventFire = true; TestEvent -= HandleTestEvent; } //Act TestWeakEventManager.HandleEvent(null, new EventArgs(), nameof(TestEvent)); //Assert Assert.IsTrue(didEventFire); }
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); }