public async Task Integration()
    {
        await using (var connection = Connection.OpenConnection())
        {
            var manager = new DedupeManager(connection, "Deduplication");
            await manager.Create();
        }

        var endpoint = await StartEndpoint();

        var hostBuilder = new WebHostBuilder();

        hostBuilder.UseStartup <SampleStartup>();
        using (var server = new TestServer(hostBuilder))
        {
            using var client = server.CreateClient();
            client.DefaultRequestHeaders.Referrer = new Uri("http://TheReferrer");
            var clientFormSender = new ClientFormSender(client);
            var guid             = Guid.NewGuid();
            var first            = await SendAsync(clientFormSender, guid);

            Assert.Equal(202, first);
            var second = await SendAsync(clientFormSender, guid);

            Assert.Equal(208, second);
        }

        Thread.Sleep(3000);

        await endpoint.Stop();

        Assert.Equal(1, count);
    }
    static async Task <int> SendAsync(ClientFormSender clientFormSender, Guid guid)
    {
        var message = "{}";
        var send    = await clientFormSender.Send(
            route : "/SendMessage",
            message : message,
            typeName : "DedupMessage",
            destination : nameof(HttpPassthroughDedupTests),
            messageId : guid);

        return(send.httpStatus);
    }
    async Task Foo(HttpClient httpClient)
    {
        #region ClientFormSender

        var clientFormSender = new ClientFormSender(httpClient);
        await clientFormSender.Send(
            route : "/SendMessage",
            message : "{\"Property\": \"Value\"}",
            typeName : "TheMessageType",
            typeNamespace : "TheMessageNamespace",
            destination : "TheDestination",
            attachments : new()
        {
            { "fileName", Encoding.UTF8.GetBytes("fileContents") }
        });

        #endregion
    }
    static async Task SubmitMultipartForm()
    {
        var hostBuilder = new WebHostBuilder();

        hostBuilder.UseStartup <SampleStartup>();
        using var server = new TestServer(hostBuilder);
        using var client = server.CreateClient();
        client.DefaultRequestHeaders.Referrer = new("http://TheReferrer");
        var message          = "{\"Property\": \"Value\"}";
        var clientFormSender = new ClientFormSender(client);
        await clientFormSender.Send(
            route : "/SendMessage",
            message : message,
            typeName : "MyMessage",
            typeNamespace : "My.Namespace",
            destination : nameof(HttpPassthroughIntegrationTests),
            attachments : new()
        {
            { "fooFile", Encoding.UTF8.GetBytes("foo") },
            { "default", Encoding.UTF8.GetBytes("bar") }
        });
    static async Task SubmitMultipartForm()
    {
        #region asptesthost

        var hostBuilder = new WebHostBuilder();
        hostBuilder.UseStartup <Startup>();
        using var testServer = new TestServer(hostBuilder);
        using var httpClient = testServer.CreateClient();
        var clientFormSender = new ClientFormSender(httpClient);
        await clientFormSender.Send(
            route : "/SendMessage",
            message : "{\"Property\": \"Value\"}",
            typeName : "TheMessageType",
            typeNamespace : "TheMessageNamespace",
            destination : "TheDestination",
            attachments : new()
        {
            { "fileName", Encoding.UTF8.GetBytes("fileContents") }
        });

        #endregion
    }