public void ConfigurationRegistersHookPointsCorrectly() { var configuration = new ApiConfiguration(); Assert.Null(configuration.GetHookHandler <IHookA>()); Assert.Null(configuration.GetHookHandler <IHookB>()); var singletonHookPoint = new HookA(); configuration.AddHookHandler <IHookA>(singletonHookPoint); Assert.Same(singletonHookPoint, configuration.GetHookHandler <IHookA>()); Assert.Null(configuration.GetHookHandler <IHookB>()); var multiCastHookPoint1 = new HookB(); configuration.AddHookHandler <IHookB>(multiCastHookPoint1); Assert.Same(singletonHookPoint, configuration.GetHookHandler <IHookA>()); Assert.Equal(multiCastHookPoint1, configuration.GetHookHandler <IHookB>()); var multiCastHookPoint2 = new HookB(); configuration.AddHookHandler <IHookB>(multiCastHookPoint2); var handler = configuration.GetHookHandler <IHookB>(); Assert.Equal(multiCastHookPoint2, handler); var delegateHandler = handler as IDelegateHookHandler <IHookB>; Assert.NotNull(delegateHandler); Assert.Equal(multiCastHookPoint1, delegateHandler.InnerHandler); }
public void ConfigurationRegistersHookPointsCorrectly() { IServiceCollection services = new ServiceCollection(); var configuration = services.BuildApiConfiguration(); Assert.Null(configuration.GetApiService<IHookA>()); Assert.Null(configuration.GetApiService<IHookB>()); var singletonHookPoint = new HookA(); services.CutoffPrevious<IHookA>(singletonHookPoint); configuration = services.BuildApiConfiguration(); Assert.Same(singletonHookPoint, configuration.GetApiService<IHookA>()); Assert.Null(configuration.GetApiService<IHookB>()); var multiCastHookPoint1 = new HookB(); services.CutoffPrevious<IHookB>(multiCastHookPoint1); configuration = services.BuildApiConfiguration(); Assert.Same(singletonHookPoint, configuration.GetApiService<IHookA>()); Assert.Equal(multiCastHookPoint1, configuration.GetApiService<IHookB>()); services = new ServiceCollection() .CutoffPrevious<IHookB>(multiCastHookPoint1) .ChainPrevious<IHookB, HookB>() .AddInstance(new HookB()); configuration = services.BuildApiConfiguration(); var multiCastHookPoint2 = configuration.GetApiService<HookB>(); var handler = configuration.GetApiService<IHookB>(); Assert.Equal(multiCastHookPoint2, handler); var delegateHandler = handler as HookB; Assert.NotNull(delegateHandler); Assert.Equal(multiCastHookPoint1, delegateHandler.InnerHandler); }
public void InvocationContextGetsHookPointsCorrectly() { var hook = new HookA(); var configuration = new ApiConfiguration().AddHookHandler<IHookA>(hook); configuration.EnsureCommitted(); var apiContext = new ApiContext(configuration); var context = new InvocationContext(apiContext); Assert.Same(hook, context.GetHookHandler<IHookA>()); }
public void InvocationContextGetsHookPointsCorrectly() { var hook = new HookA(); var configuration = new ServiceCollection() .CutoffPrevious <IHookA>(hook) .BuildApiConfiguration(); var apiContext = new ApiContext(configuration); var context = new InvocationContext(apiContext); Assert.Same(hook, context.GetApiService <IHookA>()); }
public void InvocationContextGetsHookPointsCorrectly() { var hook = new HookA(); var configuration = new ApiConfiguration().AddHookHandler <IHookA>(hook); configuration.EnsureCommitted(); var apiContext = new ApiContext(configuration); var context = new InvocationContext(apiContext); Assert.Same(hook, context.GetHookHandler <IHookA>()); }
public void ConfigurationRegistersHookPointsCorrectly() { IServiceCollection services = new ServiceCollection(); var configuration = services.BuildApiConfiguration(); Assert.Null(configuration.GetApiService <IHookA>()); Assert.Null(configuration.GetApiService <IHookB>()); var singletonHookPoint = new HookA(); services.CutoffPrevious <IHookA>(singletonHookPoint); configuration = services.BuildApiConfiguration(); Assert.Same(singletonHookPoint, configuration.GetApiService <IHookA>()); Assert.Null(configuration.GetApiService <IHookB>()); var multiCastHookPoint1 = new HookB(); services.CutoffPrevious <IHookB>(multiCastHookPoint1); configuration = services.BuildApiConfiguration(); Assert.Same(singletonHookPoint, configuration.GetApiService <IHookA>()); Assert.Equal(multiCastHookPoint1, configuration.GetApiService <IHookB>()); services = new ServiceCollection() .CutoffPrevious <IHookB>(multiCastHookPoint1) .ChainPrevious <IHookB, HookB>() .AddInstance(new HookB()); configuration = services.BuildApiConfiguration(); var multiCastHookPoint2 = configuration.GetApiService <HookB>(); var handler = configuration.GetApiService <IHookB>(); Assert.Equal(multiCastHookPoint2, handler); var delegateHandler = handler as HookB; Assert.NotNull(delegateHandler); Assert.Equal(multiCastHookPoint1, delegateHandler.InnerHandler); }