public void registries_registered_first_should_have_their_blueprints_used_first() { var construktion = new Construktion(); construktion.AddRegistry(new StringBRegistry()); construktion.AddRegistry(new StringARegistry()); var result = construktion.Construct <string>(); result.ShouldBe("StringB"); }
public void a_new_registry_without_a_ctor_strategy_should_not_overwrite_previous() { var registryA = new StringARegistry(); registryA.UseModestCtor(); var registryB = new StringARegistry(); var construktion = new Construktion(); construktion.AddRegistry(registryA); construktion.AddRegistry(registryB); //act var result = construktion.Construct <MultiCtor>(); result.UsedModestCtor.ShouldBe(true); }
public void should_use_the_last_registered_ctor_strategy() { var registryA = new StringARegistry(); registryA.UseModestCtor(); var registryB = new StringARegistry(); registryB.UseGreedyCtor(); var construktion = new Construktion(); construktion.AddRegistry(registryA); construktion.AddRegistry(registryB); //act var result = construktion.Construct <MultiCtor>(); result.UsedGreedyCtor.ShouldBe(true); }