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>());
 }
Example #4
0
        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>());
        }
Example #6
0
        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);
        }