public async Task ConnectAsync_Tests()
        {
            using (var client = new FluentdClient(new FluentdSetting("172.0.0.1", Port, _serializer)
            {
                Timeout = 1000, ExceptionHandler = ex => { Assert.NotNull(ex); }
            }))
            {
                await client.ConnectAsync();
            }

            using (var client = new FluentdClient(Host, Port, _serializer))
            {
                await client.ConnectAsync();
            }
        }
        public async Task Serialize_Tests()
        {
            using (var client = new FluentdClient("localhost", 24224, new MessagePackSerializer()))
            {
                await client.SendAsync("test.messagepack.simple", "hello fluentd by messagepack.");

                await client.SendAsync(
                    "test.messagepack.structured.class",
                    new Message
                {
                    Id        = 1,
                    Name      = "AAA",
                    Timestamp = DateTimeOffset.Now,
                    IsMessage = true,
                    Type      = MessageType.Class,
                    Array     = new object[] { 1, "XXX", true, 10.5D }
                });

                await client.SendAsync(
                    "test.messagepack.structured.dictionary",
                    new Dictionary <string, object>
                {
                    { "Id", 2 },
                    { "Name", "BBB" },
                    { "Timestamp", DateTimeOffset.Now },
                    { "IsMessage", true },
                    { "Type", MessageType.Dictionary },
                    { "Nested", new Message {
                          Id = 1, Name = "AAA", Timestamp = DateTimeOffset.Now, IsMessage = true, Type = MessageType.Class
                      } }
                });

                await client.SendAsync(
                    "test.messagepack.structured.anonymous",
                    new
                {
                    Id         = 3,
                    Name       = "CCC",
                    Timestamp  = DateTimeOffset.Now,
                    IsMessage  = true,
                    Type       = MessageType.Anonymous,
                    Dictionary = new Dictionary <string, object> {
                        { "Id", 3 }, { "Name", "CCC" }, { "Array", new object[] { 1, "A", true } }
                    }
                });
            }
        }
        public void Constructor_Tests()
        {
            Assert.Throws <ArgumentNullException>(() => new FluentdClient("", Port, _serializer));
            Assert.Throws <ArgumentNullException>(() => new FluentdClient(Host, Port, null));

            using (var client = new FluentdClient(Host, Port, _serializer))
            {
                Assert.NotNull(client);
            }

            Assert.Throws <ArgumentNullException>(() => new FluentdClient(null));

            using (var client = new FluentdClient(new FluentdSetting(Host, Port, _serializer)))
            {
                Assert.NotNull(client);
            }
        }