Exemple #1
0
        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\""));
                }
            }
        }
Exemple #2
0
        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
            });
        }
Exemple #3
0
        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);
            }
        }
Exemple #4
0
        public void ShouldHandleTypes(string header, bool isValid)
        {
            var handler = new JsonNetMediaHandler();

            Assert.AreEqual(handler.CanHandle(header), isValid);
        }