Exemple #1
0
        private static IPostRequestPlugin CreatePostRequestPlugin(int order)
        {
            IPostRequestPlugin plugin = Substitute.For <IPostRequestPlugin>();

            plugin.Order.Returns(order);
            plugin.Process(null, null).ReturnsForAnyArgs((IResponseData)null);
            return(plugin);
        }
Exemple #2
0
        public async Task OnAfterRequestShouldInvokeThePluginsInTheCorrectOrder()
        {
            IPostRequestPlugin one   = CreatePostRequestPlugin(1);
            IPostRequestPlugin two   = CreatePostRequestPlugin(2);
            IPostRequestPlugin three = CreatePostRequestPlugin(3);

            this.bootstrapper.GetAfterRequestPlugins().Returns(new[] { three, one, two });

            await this.processor.OnAfterRequest(this.request, Substitute.For <IResponseData>());

            Received.InOrder(() =>
            {
                one.Process(this.request, Arg.Any <IResponseData>());
                two.Process(this.request, Arg.Any <IResponseData>());
                three.Process(this.request, Arg.Any <IResponseData>());
            });
        }