public void TestAcceptChannel()
        {
            IChannel cacheServiceChannel = connection.OpenChannel(CacheServiceProtocol.Instance,
                                                                  "CacheServiceProxy", null, null);
            EnsureCacheRequest ensureCacheRequest =
                (EnsureCacheRequest)cacheServiceChannel.MessageFactory.CreateMessage(
                    EnsureCacheRequest.TYPE_ID);

            ensureCacheRequest.CacheName = CacheName;

            string response = (string)cacheServiceChannel.Request(ensureCacheRequest);
            Uri    uri      = new Uri(response);

            Assert.IsNotNull(uri);

            int id;

            id = Int32.Parse(UriUtils.GetSchemeSpecificPart(uri));
            Assert.IsTrue(id > 0);
            Assert.IsTrue(connection.GetChannel(id) == null);

            AcceptChannel acceptChannel =
                (AcceptChannel)connection.GetChannel(0).MessageFactory.CreateMessage(
                    AcceptChannel.TYPE_ID);

            Assert.IsInstanceOf(typeof(AcceptChannel), acceptChannel);
            Assert.AreEqual(AcceptChannel.TYPE_ID, acceptChannel.TypeId);

            acceptChannel.ChannelUri = uri;
            acceptChannel.Connection = (Connection)connection;

            IResponse acceptChannelResponse = connection.GetChannel(0).Send(acceptChannel).WaitForResponse(-1);

            Assert.IsInstanceOf(typeof(InternalResponse), acceptChannelResponse);
            Request.RequestStatus status = (Request.RequestStatus)acceptChannelResponse.Result;
            Assert.IsNotNull(status);
            Assert.IsNull(status.Exception);
            Assert.IsInstanceOf(typeof(AcceptChannelRequest), status.Request);
        }
        public void TestOpenChannel()
        {
            IChannel channel0 = connection.GetChannel(0);

            IMessage message = channel0.MessageFactory.CreateMessage(OpenChannelRequest.TYPE_ID);

            Assert.IsInstanceOf(typeof(OpenChannelRequest), message);
            Assert.AreEqual(OpenChannelRequest.TYPE_ID, message.TypeId);

            message = channel0.MessageFactory.CreateMessage(OpenChannelResponse.TYPE_ID);
            Assert.IsInstanceOf(typeof(OpenChannelResponse), message);
            Assert.AreEqual(OpenChannelResponse.TYPE_ID, message.TypeId);

            OpenChannel openChannel = (OpenChannel)channel0.MessageFactory.CreateMessage(OpenChannel.TYPE_ID);

            Assert.IsInstanceOf(typeof(OpenChannel), openChannel);
            Assert.AreEqual(OpenChannel.TYPE_ID, openChannel.TypeId);

            openChannel.Connection   = (Connection)connection;
            openChannel.Protocol     = CacheServiceProtocol.Instance;
            openChannel.ReceiverName = "CacheServiceProxy";

            IResponse openChannelResponse = connection.GetChannel(0).Send(openChannel).WaitForResponse(-1);

            Assert.IsInstanceOf(typeof(InternalResponse), openChannelResponse);

            Assert.IsFalse(openChannelResponse.IsFailure);
            Assert.IsNotNull(openChannelResponse.Result);
            Assert.AreEqual(openChannelResponse.RequestId, openChannel.Id);

            Assert.IsInstanceOf(typeof(Request.RequestStatus), openChannelResponse.Result);
            Request.RequestStatus status = (Request.RequestStatus)openChannelResponse.Result;
            Assert.IsNotNull(status);
            Assert.IsNull(status.Exception);
            Assert.IsInstanceOf(typeof(OpenChannelRequest), status.Request);
        }