コード例 #1
0
        public UptimeMessageService(HttpClient http, HttpServer server)
        {
            _http   = http;
            _server = server;
            _server.AddJsonDocumentHandler(OnGet);

            _timeInitialized = DateTime.Now.Ticks;
        }
コード例 #2
0
        public async Task GettingPostBody()
        {
            // Arrange
            using (var server = new HttpServer())
            {
                var poco = new
                {
                    id   = 1,
                    name = "moo"
                };
                var      expectedBody = JsonConvert.SerializeObject(poco);
                string   body         = null;
                PostBody bodyObject   = null;
                server.AddJsonDocumentHandler(
                    (processor, stream) =>
                {
                    if (processor.Path != "/post")
                    {
                        return(null);
                    }
                    body       = stream.AsString();
                    bodyObject = stream.As <PostBody>();
                    return(new
                    {
                        id = 1,
                        body
                    });
                });
                // Pre-assert
                // Act
                var client  = new HttpClient();
                var message = new HttpRequestMessage(
                    HttpMethod.Post,
                    server.GetFullUrlFor("/post"))
                {
                    Method  = HttpMethod.Post,
                    Content = new ObjectContent <object>(
                        poco,
                        new JsonMediaTypeFormatter())
                };
                await client.SendAsync(message);

                // Assert
                Expect(body).To.Equal(expectedBody);
                Expect(bodyObject).Not.To.Be.Null();
                Expect(bodyObject.Id).To.Equal(poco.id);
                Expect(bodyObject.Name).To.Equal(poco.name);
            }
        }