public async Task ShouldUseProvidedSerializer() { var settings = new JsonSerializerSettings() { NullValueHandling = NullValueHandling.Ignore, }; var serializer = JsonSerializer.Create(settings); var handler = new JsonNetMediaHandler(serializer); var data = new DummyData() { Test = null, Date = new DateTime(2000, 1, 30), }; using (var req = new FakeRequest()) { await handler.Write(req, data); req.ResponseBody.Seek(0, SeekOrigin.Begin); using (var reader = new StreamReader(req.ResponseBody)) { var txt = reader.ReadToEnd(); Assert.IsFalse(txt.Contains("Test")); Assert.IsTrue(txt.Contains("\"Date\":\"2000-01-30T00:00:00\"")); } } }
public void Configure(IApplicationBuilder app) { app.Map("/api", api => { // overriding the default route path var routes = RouteBuilder .WithLoadedAssemblies() .WithPathBuilder(t => "/" + t.Name.ToLower()) .GetRoutes(); // customizing the json settings var settings = new JsonSerializerSettings() { ContractResolver = new CamelCasePropertyNamesContractResolver() }; var media = new JsonNetMediaHandler(JsonSerializer.Create(settings)); var router = new Router(routes, new[] { media }); // before pingpongr, we're adding our exception handlers api.Use(ExceptionMiddleWare); // manually adding the pingpongr router to the /api path api.UsePingPongr(router); }); // the index.html is set to copy with the project // and host from the root var files = new PhysicalFileProvider( Path.Combine(Directory.GetCurrentDirectory(), "web")); app.UseDefaultFiles(new DefaultFilesOptions() { FileProvider = files, }); app.UseStaticFiles(new StaticFileOptions { FileProvider = files }); }
public async Task ShouldDeserializeData() { var handler = new JsonNetMediaHandler(JsonSerializer.CreateDefault()); using (var req = new FakeRequest()) { using (var writer = new StreamWriter(req.RequestBody, System.Text.Encoding.UTF8, 1024, true)) { writer.Write("{\"Test\":\"Hello\",\"Date\":\"2000-01-30T00:00:00\"}"); } req.RequestBody.Seek(0, SeekOrigin.Begin); //reset the request stream var results = await handler.Read <DummyData>(req); Assert.AreEqual("Hello", results.Test); Assert.AreEqual(new DateTime(2000, 01, 30), results.Date); } }
public void ShouldHandleTypes(string header, bool isValid) { var handler = new JsonNetMediaHandler(); Assert.AreEqual(handler.CanHandle(header), isValid); }