public void Should_replace_a_definition() { Func <SomePluginContext, bool> predicate4 = x => true; Func <SomePluginContext, bool> predicate5 = x => true; var instance2 = new SomeImplementation2(); var instance4 = new SomeImplementation4(); _definitions.Append <SomeImplementation1>() .Append(instance2) .Append <SomeImplementation3>(); _definitions.Replace <SomeImplementation1>().With(instance4, predicate4); _definitions.Replace <SomeImplementation2>().With <SomeImplementation5>(predicate5, true); var definitions = _definitions.ToList(); _definitions.Count().ShouldEqual(3); definitions[0].HasInstance.ShouldBeTrue(); definitions[0].Instance.ShouldEqual(instance4); definitions[0].Singleton.ShouldBeFalse(); definitions[0].AppliesTo.ShouldEqual(predicate4); definitions[1].HasInstance.ShouldBeFalse(); definitions[1].Type.ShouldEqual(typeof(SomeImplementation5)); definitions[1].Singleton.ShouldBeTrue(); definitions[1].AppliesTo.ShouldEqual(predicate5); definitions[2].HasInstance.ShouldBeFalse(); definitions[2].Type.ShouldEqual(typeof(SomeImplementation3)); }
public void Should_append_a_definition_after_another() { var instance1 = new SomeImplementation1(); var instance4 = new SomeImplementation4(); _definitions.Append(instance1) .Append <SomeImplementation2>(); _definitions.Append <SomeImplementation3>().After <SomeImplementation1>(); _definitions.Append(instance4).After <SomeImplementation2>(); var definitions = _definitions.ToList(); _definitions.Count().ShouldEqual(4); definitions[0].HasInstance.ShouldBeTrue(); definitions[0].Instance.ShouldEqual(instance1); definitions[1].HasInstance.ShouldBeFalse(); definitions[1].Type.ShouldEqual(typeof(SomeImplementation3)); definitions[2].HasInstance.ShouldBeFalse(); definitions[2].Type.ShouldEqual(typeof(SomeImplementation2)); definitions[3].HasInstance.ShouldBeTrue(); definitions[3].Instance.ShouldEqual(instance4); }