public void TestMessageAsMethodArgument()
 {
     QueueChannel requestChannel = new QueueChannel();
     StartResponder(requestChannel);
     GatewayProxyFactoryObject proxyFactory = new GatewayProxyFactoryObject();
     proxyFactory.ServiceInterface = typeof (ITestService);
     proxyFactory.DefaultRequestChannel = requestChannel;
     proxyFactory.AfterPropertiesSet();
     ITestService service = (ITestService) proxyFactory.GetObject();
     String result = service.RequestReplyWithMessageParameter(new StringMessage("foo"));
     Assert.That(result, Is.EqualTo("foobar"));
 }
 public void TestMessageAsReturnValue()
 {
     QueueChannel requestChannel = new QueueChannel();
     new Thread(new ThreadStart(delegate
                                    {
                                        IMessage input = requestChannel.Receive();
                                        StringMessage reply = new StringMessage(input.Payload + "bar");
                                        ((IMessageChannel) input.Headers.ReplyChannel).Send(reply);
                                    })).Start();
     GatewayProxyFactoryObject proxyFactory = new GatewayProxyFactoryObject();
     proxyFactory.ServiceInterface = typeof (ITestService);
     proxyFactory.DefaultRequestChannel = requestChannel;
     proxyFactory.AfterPropertiesSet();
     ITestService service = (ITestService) proxyFactory.GetObject();
     IMessage result = service.RequestReplyWithMessageReturnValue("foo");
     Assert.That(result.Payload, Is.EqualTo("foobar"));
 }
        public void TestSolicitResponse()
        {
            QueueChannel replyChannel = new QueueChannel();
            replyChannel.Send(new StringMessage("foo"));
            GatewayProxyFactoryObject proxyFactory = new GatewayProxyFactoryObject();
            proxyFactory.ServiceInterface = typeof (ITestService);
            proxyFactory.DefaultRequestChannel = new DirectChannel();
            proxyFactory.DefaultReplyChannel = replyChannel;
            proxyFactory.AfterPropertiesSet();
            ITestService service = (ITestService) proxyFactory.GetObject();

            string result = service.SolicitResponse();
            Assert.IsNotNull(result);
            Assert.That(result, Is.EqualTo("foo"));
        }
 public void TestServiceMustBeInterface()
 {
     GatewayProxyFactoryObject proxyFactory = new GatewayProxyFactoryObject();
     int count = 0;
     try
     {
         proxyFactory.ServiceInterface = typeof (ITestService);
         count++;
         proxyFactory.ServiceInterface = typeof (string);
         count++;
     }
     catch (ArgumentException)
     {
         // expected
     }
     Assert.That(count, Is.EqualTo(1));
 }
 public void TestRequestReplyWithTypeConversion()
 {
     QueueChannel requestChannel = new QueueChannel();
     new Thread(new ThreadStart(delegate
                                    {
                                        IMessage input = requestChannel.Receive();
                                        StringMessage reply = new StringMessage(input.Payload + "456");
                                        ((IMessageChannel) input.Headers.ReplyChannel).Send(reply);
                                    })).Start();
     GatewayProxyFactoryObject proxyFactory = new GatewayProxyFactoryObject();
     proxyFactory.ServiceInterface = typeof (ITestService);
     proxyFactory.DefaultRequestChannel = requestChannel;
     proxyFactory.AfterPropertiesSet();
     ITestService service = (ITestService) proxyFactory.GetObject();
     int result = service.RequestReplyWithIntegers(123);
     Assert.That(result, Is.EqualTo(123456));
 }
 public void TestProxiedToStringMethod()
 {
     GatewayProxyFactoryObject proxyFactory = new GatewayProxyFactoryObject();
     proxyFactory.DefaultRequestChannel = new DirectChannel();
     proxyFactory.ServiceInterface = typeof (ITestService);
     proxyFactory.AfterPropertiesSet();
     Object proxy = proxyFactory.GetObject();
     const string expected = "gateway proxy for";
     string current = proxy.ToString();
     Assert.That(current.Substring(0, expected.Length), Is.EqualTo(expected));
 }
 public void TestOneWay()
 {
     QueueChannel requestChannel = new QueueChannel();
     GatewayProxyFactoryObject proxyFactory = new GatewayProxyFactoryObject();
     proxyFactory.DefaultRequestChannel = requestChannel;
     proxyFactory.ServiceInterface = typeof (ITestService);
     proxyFactory.AfterPropertiesSet();
     ITestService service = (ITestService) proxyFactory.GetObject();
     service.OneWay("test");
     IMessage message = requestChannel.Receive(TimeSpan.FromMilliseconds(1000));
     Assert.IsNotNull(message);
     Assert.That(message.Payload, Is.EqualTo("test"));
 }