public void testCall()
        {
            const String     connectionString = "bnmq://localhost:3333";
            TransportFactory conFactory       = new TransportFactory();

            try {
                conFactory.TransportMessageCoderFactory = (new ASN1TransportMessageCoderFactory());

                ITransport server = conFactory.getServerTransport(new Uri(connectionString));
                Assert.NotNull(server);
                CallMessageListener cl = new CallMessageListener(this);
                server.addConnectionListener(cl);
                server.addReader(cl);
                Thread.Sleep(500);
                server.start();

                ITransport client = conFactory.getClientTransport(new Uri(connectionString));
                Assert.NotNull(client);
                client.start();
                MessageEnvelope result = client.call(createMessage("Call"), 10);
                Console.WriteLine("Result call received with Id:" + result.Id + " has been received successfully");
                client.close();
                server.close();
            }
            finally {
                conFactory.close();
            }
            Console.WriteLine("Finished: testCall");
        }
        public void testAsyncCall()
        {
            const String     connectionString = "bnmq://localhost:3333";
            TransportFactory conFactory       = new TransportFactory();

            try {
                conFactory.TransportMessageCoderFactory = (new ASN1TransportMessageCoderFactory());

                ITransport server = conFactory.getServerTransport(new Uri(connectionString));
                Assert.NotNull(server);
                CallMessageListener cl = new CallMessageListener(this);
                server.addConnectionListener(cl);
                server.addReader(cl);
                server.start();

                ITransport client = conFactory.getClientTransport(new Uri(connectionString));
                Assert.NotNull(client);
                client.start();
                client.callAsync(createMessage("CallAsync"), new AsyncCallMessageListener());
                Thread.Sleep(500);

                client.close();
                server.close();
            }
            finally {
                conFactory.close();
            }
            Console.WriteLine("Finished: testCall");
        }