public void Aggregate()
        {
            var dispatcher = new AggregateDispatcher<Base, string>
            {
                (Sub1 sub1) => new[] {"sub1"},
                (Sub2 sub2) => new[] {"sub2"}
            };

            dispatcher.Dispatch(new Sub1()).Should().Equal("sub1");
            dispatcher.Dispatch(new Sub2()).Should().Equal("sub1", "sub2");
        }
 public void UnknownType()
 {
     var dispatcher = new AggregateDispatcher<Base, string>();
     dispatcher.Dispatch(new Sub1()).Should().BeEmpty();
 }