public async Task Should_be_able_to_get_clone()
        {
            await AgentClientBuilder.KillClones(client);

            var clone1 = await client.Clone(TestConstants.CLONE_PORT_1);
            var clone2 = await client.Clone(TestConstants.CLONE_PORT_2);
            var clone3 = await client.Clone(TestConstants.CLONE_PORT_3);
            var clone4 = await client.Clone(TestConstants.CLONE_PORT_4);

            Thread.Sleep(TestConstants.CLONE_WAIT_MS);
            
            var client3 = new AgentClient(clone1.ToClientInfo("guest", "guest")).Start();
            var pingResult1 = await client3.Ping();
            Assert.That(pingResult1, Is.Not.Null.Or.Empty);

            var client4 = new AgentClient(clone2.ToClientInfo("guest", "guest")).Start();
            var pingResult2 = await client4.Ping();
            Assert.That(pingResult2, Is.Not.Null.Or.Empty);

            var client5 = new AgentClient(clone3.ToClientInfo("guest", "guest")).Start();
            var pingResult3 = await client5.Ping();
            Assert.That(pingResult3, Is.Not.Null.Or.Empty);

            var client6 = new AgentClient(clone4.ToClientInfo("guest", "guest")).Start();
            var pingResult4 = await client6.Ping();
            Assert.That(pingResult4, Is.Not.Null.Or.Empty);

            Thread.Sleep(TestConstants.CLONE_WAIT_MS);

            client3.Exit();
            client4.Exit();
            client5.Exit();
            client6.Exit();
        }
        public async Task Should_be_able_to_recover_clones()
        {
            await AgentClientBuilder.KillClones(client);

            await Should_be_able_to_get_clone();

            Thread.Sleep(TestConstants.CLONE_WAIT_MS);

            var cloneInfos = await client.StartClones();

            Thread.Sleep(TestConstants.CLONE_WAIT_MS);

            var agents = new List<AgentClient>();

            foreach (var cloneInfo in cloneInfos)
            {
                var agent = new AgentClient(cloneInfo.ToClientInfo("guest", "guest"));
                agents.Add(agent.Start());
            }

            Thread.Sleep(TestConstants.CLONE_WAIT_MS);

            foreach (var agent in agents)
            {
                var result = await agent.Ping();
                Assert.That(result, Is.Not.Null.Or.Empty);
            }

            foreach (var agent in agents)
            {
                agent.Exit();
            }
        }