public void then_handlers_defined_in_the_higher_level_config_should_be_called()
 {
     CalledByDuringGiven.ShouldContain(typeof(ProvideMagicByInterface).Name);
     CalledByDuringGiven.ShouldContain(typeof(ProvideMagicByConcreteType).Name);
     CalledByDuringGiven.ShouldContain(typeof(ProvideMagicByTypeName).Name);
     CalledByDuringGiven.ShouldNotContain(typeof(DoNotProvideMagic).Name);
     CalledByDuringGiven.ShouldContain(typeof(ProvideMagicForEveryone).Name);
 }
 public void then_handlers_for_all_types_are_called()
 {
     CalledByDuringGiven.ShouldContain(typeof(ProvideMagicForEveryone).Name);
 }
 public void then_handlers_that_do_not_match_should_not_be_called()
 {
     CalledByDuringGiven.ShouldNotContain(typeof(DoNotProvideMagic).Name);
 }
 public void then_handlers_for_names_are_called()
 {
     CalledByDuringGiven.ShouldContain(typeof(ProvideMagicByTypeName).Name);
 }
 public void then_handlers_for_the_type_are_called()
 {
     CalledByDuringGiven.ShouldContain(typeof(ProvideMagicByConcreteType).Name);
 }
 public void then_handlers_for_the_interface_are_called()
 {
     CalledByDuringGiven.ShouldContain(typeof(ProvideMagicByInterface).Name);
 }
 public void then_the_parent_contexts_are_applied_before_the_child_context()
 {
     CalledByDuringGiven.AsEnumerable().Reverse().First().ShouldEqual(typeof(NestedMagicProvider).Name);
 }
 public void then_handlers_for_this_levels_config_should_be_called()
 {
     CalledByDuringGiven.ShouldContain(typeof(NestedMagicProvider).Name);
 }