public void SetUp() { const string verb = "GET"; const string applicationPath = "/"; var uri = new Uri("http://example.com/resources/1?query=2"); var routeParameters = new Dictionary <string, string> { { "route", "1" } }; HttpContextBase.Request.HttpMethod.Returns(verb); HttpContextBase.Request.ApplicationPath.Returns(applicationPath); HttpContextBase.Request.Url.Returns(uri); var inputStream = Substitute.For <Stream>(); inputStream.CanRead.Returns(false); HttpContextBase.Request.InputStream.Returns(inputStream); RequestRouter.FindRequestHandler(verb, applicationPath, uri).Returns(new RouteHandlerLookupResult(typeof(GetResource), routeParameters)); RequestHandlerInvoker.Execute( Arg.Any <GetResource>(), verb, routeParameters, Arg.Is <IDictionary <string, string> >(x => x["query"] == "2"), Arg.Is <IDictionary <string, object> >(x => (string)x["context"] == "3"), Arg.Is <string>(x => x == null)).Returns(new HttpResponseMessage { Content = new ObjectContent("test") }); _piccoloContext = new PiccoloContext(HttpContextBase); _piccoloContext.Data.context = "3"; Engine.ProcessRequest(_piccoloContext); }
public void SetUp() { const string verb = "POST"; const string applicationPath = "/"; var uri = new Uri("http://example.com/resources"); var routeParameters = new Dictionary <string, string>(); HttpContextBase.Request.HttpMethod.Returns(verb); HttpContextBase.Request.ApplicationPath.Returns(applicationPath); HttpContextBase.Request.Url.Returns(uri); HttpContextBase.Request.InputStream.Returns(new MemoryStream(Encoding.UTF8.GetBytes("\"request_payload\""))); RequestRouter.FindRequestHandler(verb, applicationPath, uri).Returns(new RouteHandlerLookupResult(typeof(CreateResource), routeParameters)); var httpResponseMessage = new HttpResponseMessage(HttpStatusCode.Created); httpResponseMessage.Headers.Location = new Uri("http://example.com/resources/1"); RequestHandlerInvoker.Execute( Arg.Any <CreateResource>(), verb, routeParameters, Arg.Is <IDictionary <string, string> >(x => x.Count == 0), Arg.Any <IDictionary <string, object> >(), Arg.Is <string>(x => x == "request_payload")).Returns(httpResponseMessage); _piccoloContext = new PiccoloContext(HttpContextBase); Engine.ProcessRequest(_piccoloContext); }
public void SetUp() { const string verb = "DELETE"; const string applicationPath = "/"; var uri = new Uri("http://example.com/resources/1"); var routeParameters = new Dictionary <string, string> { { "route", "1" } }; HttpContextBase.Request.HttpMethod.Returns(verb); HttpContextBase.Request.ApplicationPath.Returns(applicationPath); HttpContextBase.Request.Url.Returns(uri); var inputStream = Substitute.For <Stream>(); inputStream.CanRead.Returns(false); HttpContextBase.Request.InputStream.Returns(inputStream); RequestRouter.FindRequestHandler(verb, applicationPath, uri).Returns(new RouteHandlerLookupResult(typeof(DeleteResource), routeParameters)); RequestHandlerInvoker.Execute( Arg.Any <DeleteResource>(), verb, routeParameters, Arg.Is <IDictionary <string, string> >(x => x.Count == 0), Arg.Any <IDictionary <string, object> >(), Arg.Is <string>(x => x == string.Empty)).Returns(new HttpResponseMessage(HttpStatusCode.NoContent)); _piccoloContext = new PiccoloContext(HttpContextBase); Engine.ProcessRequest(_piccoloContext); }
public void SetUp() { _piccoloContext = new PiccoloContext(HttpContextBase); EventDispatcher.RaiseRequestProcessingEvent(_piccoloContext).Returns(true); Engine.ProcessRequest(_piccoloContext); }
public void RaiseRequestFaultedEvent(PiccoloContext context, Exception exception) { var args = new RequestFaultedEvent { Context = context, Exception = exception }; RaiseEvent(_eventHandlers.RequestFaulted, args); }
public void RaiseRequestProcessedEvent(PiccoloContext context) { var args = new RequestProcessedEvent { Context = context }; RaiseEvent(_eventHandlers.RequestProcessed, args); }
public void RaiseRequestProcessedEvent(PiccoloContext context, string payload) { var args = new RequestProcessedEvent { Context = context, Payload = payload }; RaiseEvent(_eventHandlers.RequestProcessed, args); }
protected given_event_dispatcher() { var httpContext = Substitute.For <HttpContextBase>(); httpContext.Response.Returns(HttpResponse); PiccoloContext = new PiccoloContext(httpContext); }
public void SetUp() { var eventHandlers = new EventHandlers(); eventHandlers.RequestProcessing.Add(typeof(TestRequestProcessingEventHandlerWithInterrupt)); eventHandlers.RequestProcessing.Add(typeof(BootstrapperTests.TestRequestProcessingEventHandler)); var httpContext = new Mock <HttpContextBase>(); _httpResponse = new Mock <HttpResponseBase>(); httpContext.SetupGet(x => x.Response).Returns(_httpResponse.Object); var piccoloContext = new PiccoloContext(httpContext.Object); var eventDispatcher = new EventDispatcher(eventHandlers, new DefaultObjectFactory()); eventDispatcher.RaiseRequestProcessingEvent(piccoloContext); }
public void SetUp() { const string verb = "POST"; const string applicationPath = "/"; var uri = new Uri("http://example.com/resources/1"); HttpContextBase.Request.HttpMethod.Returns(verb); HttpContextBase.Request.ApplicationPath.Returns(applicationPath); HttpContextBase.Request.Url.Returns(uri); var inputStream = Substitute.For <Stream>(); inputStream.CanRead.Returns(false); HttpContextBase.Request.InputStream.Returns(inputStream); RequestRouter.When(x => x.FindRequestHandler(verb, applicationPath, uri)).Do(_ => { throw new Exception(); }); _piccoloContext = new PiccoloContext(HttpContextBase); Engine.ProcessRequest(_piccoloContext); }
public bool RaiseRequestProcessingEvent(PiccoloContext context) { var args = new RequestProcessingEvent { Context = context }; var stopRequestProcessing = false; foreach (var eventHandlerType in _eventHandlers.RequestProcessing) { var eventHandler = _objectFactory.CreateInstance <IHandle <RequestProcessingEvent> >(eventHandlerType); eventHandler.Handle(args); stopRequestProcessing = args.StopRequestProcessing; if (args.StopEventProcessing) { break; } } return(stopRequestProcessing); }