/// <summary> /// Handles the fired event by passing it to the action defined by the subscription. /// </summary> /// <param name="eventBaseFired">The event that was fired.</param> /// <exception cref="ArgumentException">Thrown if the type of the fired event does not match that of the subscription.</exception> public void HandleFiredEvent(EventBase eventBaseFired) { if (eventBaseFired.GetType() == SubEventType) { SubHandler.Invoke((T)eventBaseFired); } else { throw new ArgumentException("Unable to handle fired event due to type mismatch." + $" {eventBaseFired.GetType()} != {SubEventType}"); } }
public async Task SubHandler_SubtractsSubtrahendToMinuend() { var request = new SubRequest { Minuend = TestHelper.GeneratePositiveNumber(), Subtrahend = TestHelper.GeneratePositiveNumber() }; var expected = request.Minuend - request.Subtrahend; var handler = new SubHandler(); var response = await handler.Handle(request, default); response.Difference.Should().Be(expected); }
static void Main(string[] args) { Handler sum = new SumHandler(); Handler sub = new SubHandler(); Handler div = new DivHandler(); Handler mult = new MultHandler(); sum.SetNext(sub); sub.SetNext(div); div.SetNext(mult); Request r1 = new Request(2, 2, "+"); sum.HandleRequest(r1); r1 = new Request(10, 5, "-"); sum.HandleRequest(r1); r1 = new Request(5, 2, "/"); sum.HandleRequest(r1); r1 = new Request(2, 2, "*"); sum.HandleRequest(r1); Console.ReadKey(); }