public void TestWithDefault() { void ExpectedResponder(int response) { } var handler = RequestHandlerFactory <int, Action <int> > .CreateHandler(() => new Ctrlr(ExpectedResponder), m => m.Method("get", q => q.Sync(p => p.Single("a", int.Parse), cf => cf().Method)), n => n); var uri = new Uri("http://localhost?a=192"); var responder = handler("get", uri, 543, _cts.Token).Result; responder(100); Assert.AreEqual((Action <int>)ExpectedResponder, responder); }
public void TestHandleNonMultipart() { void ExpectedResponder(int response) { } var handler = RequestHandlerFactory <Stream, bool> .CreateHandler(() => new Ctrlr(ExpectedResponder), m => m.Method("get", q => q .Sync(p => p .Context(FormUrlencodedDeserialize <SomeEntity>), cf => HandleSomeEntity)), n => n); var uri = new Uri("http://localhost"); var body = "IntField=12&BoolField=true&StringField=asdf"; var stream = GenerateStreamFromString(body); var result = handler("get", uri, stream, _cts.Token).Result; Assert.IsTrue(result); }
public static void Main(string[] args) { var cts = new CancellationTokenSource(); var c = CreateContainer(); var handler = RequestHandlerFactory <HttpListenerRequest, View> .CreateHandler(c.Resolve <HomeController>, ms => ms .Method(Mn.Get, qs => qs .Sync(ps => ps.Context(), cf => cf().EreIndex)) .Method(Mn.Get, qs => qs .Sync(ps => ps.Single("name"), cf => cf().EreIndex)) .Method(Mn.Get, qs => qs .Sync(ps => ps.Single("name", "default"), cf => cf().EreIndex)) .Method(Mn.Post, queries => queries .Sync(ps => ps.Context(DeserializeAsync <SimpleForm>), cp => cp().PostAnswer)), rs0 => rs0 .Named("about", ms => ms .Method(Mn.Get, qs => qs .Sync(ps => ps, c.ResolveKeyed <Func <View> >("About"))), rs1 => rs1 .Named("organization", ms => ms .Method(Mn.Get, qs => qs .Sync(ps => ps, c.ResolveKeyed <Func <View> >("About"))), rs2 => rs2 .Valued(int.Parse, c.Resolve <NewsController>, ms => ms .Method(Mn.Get, qs => qs .Sync(ps => ps.Multiple("order", bool.Parse) .Custom(ParseInt), cp => cp().Index))))) .Named("news", c.Resolve <NewsController>, ms => ms .Method(Mn.Get, qs => qs .Sync(ps => ps.Single("page", int.Parse, 0).Multiple("order", bool.Parse) .Custom(ParseInt), cp => cp().Index)), rs1 => rs1 .Valued(int.Parse, ms => ms .Method(Mn.Get, qs => qs .Sync(ps => ps, cp => cp().Get))))); new Server(handler) .RunAsync(cts.Token).Wait(); }
public void TestWithAlternative() { void ExpectedResponder(int response) { } var handler = RequestHandlerFactory <int, Action <int> > .CreateHandler( () => new Ctrlr(ExpectedResponder), m => m .Method("get", q => q .Sync(p => p .Single("s", s => s) .Single("b", bool.Parse), cf => new Ctrlr2(ExpectedResponder).Method)), n => n); var uri = new Uri("http://localhost?s=asdfasdfasdf&b=true"); var responder = handler("get", uri, 543, _cts.Token).Result; responder(100); Assert.AreEqual((Action <int>)ExpectedResponder, responder); }
public void TestHandleJson() { void ExpectedResponder(int response) { } var handler = RequestHandlerFactory <Stream, bool> .CreateHandler(() => new Ctrlr(ExpectedResponder), m => m.Method("get", q => q .Sync(p => p .Context(JsonDeserialize <SomeEntity>), cf => HandleSomeEntity)), n => n); var uri = new Uri("http://localhost"); var json = @"{ ""intField"": 12, ""boolField"": true, ""stringField"": ""asdf"", }"; var stream = GenerateStreamFromString(json); var result = handler("get", uri, stream, _cts.Token).Result; Assert.IsTrue(result); }