public void ServiceCollectionAfterService() { ServiceCollection services = new ServiceCollection(); services.WithService("Test", "/"); services .AfterService(() => true) .AfterService((req, res) => true) .AfterService<string>((req, res) => true); Assert.AreEqual(3, services.First().Pipeline.AfterActions.Count); }
public void ResolvedServiceInvokeAfterActions() { Payload payload = new Payload() { Date = DateTime.UtcNow, Number = 42, Text = "Hello, world!" }; ServiceCollection services = new ServiceCollection(); services .WithService("Test", "/") .WithEndpoint("{action}") .Post<Payload>((Payload p) => { }); ResolvedService service = new ServiceResolver(services).Find(MethodType.Post, "foo"); IDictionary<string, object> routeValues = new Dictionary<string, object>(); routeValues["action"] = "foo"; using (IRequestMessage request = new RequestMessage<Payload>("Test", routeValues, new Uri("http://example.com/foo"), payload)) { using (IResponseMessage response = new ResponseMessage()) { InvokeActionsResult result = service.InvokeAfterActions(request, response); Assert.IsNotNull(result); Assert.IsTrue(result.Continue); Assert.IsTrue(result.Success); Assert.IsFalse(result.Results.Any()); services.AfterService<Payload>( (req, resp) => { Assert.AreEqual(payload, req.RequestObject); return true; }); service = new ServiceResolver(services).Find(MethodType.Post, "foo"); result = service.InvokeAfterActions(request, response); Assert.IsTrue(result.Continue); Assert.IsTrue(result.Success); Assert.AreEqual(1, result.Results.Count); services.AfterService(() => true); service = new ServiceResolver(services).Find(MethodType.Post, "foo"); result = service.InvokeAfterActions(request, response); Assert.IsTrue(result.Continue); Assert.IsTrue(result.Success); Assert.AreEqual(2, result.Results.Count); } } }