public void Sync_chain_terminating_on_first() { ISynchronousFilterChain filterChain = new DefaultSynchronousFilterChain(dataStore: null) .Add(new CreateInterceptorFilter()) .Add(new DeleteInterceptorFilter()); var request = new DefaultResourceDataRequest(ResourceAction.Create, typeof(IAccount), new CanonicalUri("http://api.foo.bar"), false); var result = filterChain.Filter(request, Substitute.For<ILogger>()); result.Action.ShouldBe(ResourceAction.Create); result.Body.ShouldContainKeyAndValue("Foo", "bar"); }
public void Sync_with_inline_filter() { ISynchronousFilterChain defaultFilterChain = new DefaultSynchronousFilterChain(dataStore: null) .Add(new DeleteInterceptorFilter()); ISynchronousFilterChain finalChain = new DefaultSynchronousFilterChain(defaultFilterChain as DefaultSynchronousFilterChain) .Add(new DefaultSynchronousFilter((req, next, logger) => { return new DefaultResourceDataResult( ResourceAction.Create, typeof(IDictionary<string, object>), req.Uri, httpStatus: 200, body: new Dictionary<string, object>() { { "Foo", "bar" } }); })); var request = new DefaultResourceDataRequest(ResourceAction.Create, typeof(IAccount), new CanonicalUri("http://api.foo.bar"), false); var result = finalChain.Filter(request, Substitute.For<ILogger>()); result.Action.ShouldBe(ResourceAction.Create); result.Body.ShouldContainKeyAndValue("Foo", "bar"); }