private static void TestPublish(Link link)
        {
            ColorConsole.WriteLine("Starting...");
            link.Initialize();

            using (
                var producer =
                    link.CreateProducer(
                        async cfg => await cfg.ExchangeDeclare("link.consume", LinkExchangeType.Fanout),
                        config: cfg => cfg.TypeNameMap(map => map.Set<string>("string").Set<MyClass>("woot")))
                )
            {
                ColorConsole.WriteLine("Publish");
                var sw = Stopwatch.StartNew();

                var tasks = Enumerable
                    .Range(0, 100)
                    .Select(i => $"Item {i + 1}")
                    .Select(body => producer.PublishAsync(
                        body,
                        new LinkMessageProperties {DeliveryMode = LinkMessageDeliveryMode.Persistent},
                        new LinkPublishProperties {Mandatory = false}
                        ))
                    .ToArray();

                ColorConsole.WriteLine("Waiting for publish end...");
                Task.WaitAll(tasks);
                ColorConsole.WriteLine("Publish done");

                sw.Stop();
                Console.WriteLine("Done in {0:0.###}s", sw.Elapsed.TotalSeconds);
            }
        }