private void when_handle_multiple_times() { before = () => { var @event = new FakeEventWithHandler(); var aggregate = new FakeAggregate(); var target = new DefaultEventHandlerWithNoCache(); var stopwatch = Stopwatch.StartNew(); for (var i = 0; i < Times; i++) { target.Handle(aggregate, @event); } _elapsedNoCache = stopwatch.Elapsed; }; act = () => { var @event = new FakeEventWithHandler(); var stopwatch = Stopwatch.StartNew(); for (var i = 0; i < Times; i++) { _target.Handle(_aggregate, @event); } _elapsed = stopwatch.Elapsed; }; it["executes handler multiple times"] = () => _aggregate.Counter.ShouldBe(Times); it["is faster than with no cache"] = () => _elapsed.ShouldBeLessThan(_elapsedNoCache); }
private void Handle(FakeEventWithHandler @event) { Counter++; }