public void Should_Leave_Delegates_In_Place() { var b = new B(); var d1 = new ServiceConventionDelegate(x => { }); var d2 = new ServiceConventionDelegate(x => { }); var d3 = new ServiceConventionDelegate(x => { }); var c = new C(); var d = new D(); var e = new E(); var f = new F(); var provider = new ConventionProvider( new IConvention[] { b, c }, new object[] { d1, d, d2 }, new object[] { e, d3, f } ); provider.GetAll() .Select(x => x.Convention as object ?? x.Delegate) .Should() .ContainInOrder( d1, e, d, d2, b, c, d3, f ); }
public void Should_Include_Unit_Test_Conventions() { var b = new B(); var d1 = new ServiceConventionDelegate(x => { }); var d2 = new ServiceConventionDelegate(x => { }); var d3 = new ServiceConventionDelegate(x => { }); var c = new C(); var d = new D(); var e = new E(); var f = new F(); var provider = new ConventionProvider( new IConvention[] { b, c }, new object[] { d1, d, d2 }, new object[] { e, d3, f } ); provider.GetAll(HostType.UnitTestHost) .Select(x => x.Convention as object ?? x.Delegate) .Should() .ContainInOrder( d1, e, d, d2, b, c, d3 ); }
/// <summary> /// Configure the services delegate to the convention scanner /// </summary> /// <param name="container">The container.</param> /// <param name="delegate">The delegate.</param> /// <returns>IConventionHostBuilder.</returns> public static IConventionHostBuilder ConfigureServices( [NotNull] this IConventionHostBuilder container, ServiceConventionDelegate @delegate ) { if (container == null) { throw new ArgumentNullException(nameof(container)); } container.Scanner.AppendDelegate(@delegate); return(container); }
public void ShouldIncludeAddedDelegates() { var scanner = AutoFake.Resolve <SimpleConventionScanner>(); var finder = AutoFake.Resolve <IAssemblyCandidateFinder>(); A.CallTo(() => finder.GetCandidateAssemblies(A <IEnumerable <string> > ._)) .Returns(Array.Empty <Assembly>()); var @delegate = new ServiceConventionDelegate(context => { }); var delegate2 = new ServiceConventionDelegate(context => { }); scanner.PrependDelegate(delegate2); scanner.AppendDelegate(@delegate); var provider = scanner.BuildProvider(); provider.Get <IServiceConvention, ServiceConventionDelegate>() .Select(x => x.Delegate) .Should() .ContainInOrder(delegate2, @delegate); }