Beispiel #1
0
        private static WampListener <TMessage> GetWampListener(IWampConnectionListener <TMessage> connectionListener, IWampFormatter <TMessage> formatter, IWampServer <TMessage> server)
        {
            IWampClientBuilderFactory <TMessage, IWampClient> clientBuilderFactory =
                GetWampClientBuilder(formatter);

            IWampClientContainer <TMessage, IWampClient> clientContainer =
                new WampClientContainer <TMessage>(clientBuilderFactory);

            IWampRequestMapper <TMessage> requestMapper =
                new WampRequestMapper <TMessage>(server.GetType(),
                                                 formatter);

            WampMethodBuilder <TMessage, IWampClient> methodBuilder =
                new WampMethodBuilder <TMessage, IWampClient>(server, formatter);

            IWampIncomingMessageHandler <TMessage, IWampClient> wampIncomingMessageHandler =
                new WampIncomingMessageHandler <TMessage, IWampClient>
                    (requestMapper,
                    methodBuilder);

            return(new WampListener <TMessage>
                       (connectionListener,
                       wampIncomingMessageHandler,
                       clientContainer));
        }
        private WampListener <TMessage> GetWampListener(IWampConnectionListener <TMessage> connectionListener, IWampBinding <TMessage> binding, IWampOutgoingRequestSerializer outgoingRequestSerializer)
        {
            IWampClientBuilderFactory <TMessage, IWampClientProxy <TMessage> > clientBuilderFactory =
                GetWampClientBuilder(binding, outgoingRequestSerializer);

            IWampClientContainer <TMessage, IWampClientProxy <TMessage> > clientContainer =
                new WampClientContainer <TMessage>(clientBuilderFactory);

            IWampRequestMapper <TMessage> requestMapper =
                new WampRequestMapper <TMessage>(typeof(WampServer <TMessage>),
                                                 binding.Formatter);

            WampRealmMethodBuilder <TMessage> methodBuilder =
                new WampRealmMethodBuilder <TMessage>(mSession, binding.Formatter);

            IWampIncomingMessageHandler <TMessage, IWampClientProxy <TMessage> > wampIncomingMessageHandler =
                new WampIncomingMessageHandler <TMessage, IWampClientProxy <TMessage> >
                    (requestMapper,
                    methodBuilder);

            return(new WampListener <TMessage>
                       (connectionListener,
                       wampIncomingMessageHandler,
                       clientContainer,
                       mSession));
        }
        public void UnknownMessageReturnsMissingIfMissingContractClientVersionImplemented(WampMessage <MockRaw> message)
        {
            IWampRequestMapper <MockRaw> mapper =
                new WampRequestMapper <MockRaw>(typeof(MockWampServerWithMissingClient),
                                                new MockRawFormatter());

            WampMethodInfo mapped = mapper.Map(message);

            MethodInfo expected =
                Method.Get((IWampMissingMethodContract <MockRaw, IWampClient> server) =>
                           server.Missing(default(IWampClient), default(WampMessage <MockRaw>)));

            Assert.That(mapped.Method, Is.SameAs(expected));
        }
        public void CallResult(WampMessage<MockRaw> message)
        {
            IWampRequestMapper<MockRaw> mapper =
                new WampRequestMapper<MockRaw>(typeof(MockWampClient),
                                               new MockRawFormatter());

            WampMethodInfo mapped = mapper.Map(message);

            MethodInfo expected =
                Method.Get((IWampClient<MockRaw> client) =>
                           client.CallResult(default(string), default(MockRaw)));

            Assert.That(mapped.Method, Is.SameAs(expected));
        }
        public void Prefix(WampMessage<MockRaw> message)
        {
            IWampRequestMapper<MockRaw> mapper =
                new WampRequestMapper<MockRaw>(typeof (MockWampServer),
                                               new MockRawFormatter());

            WampMethodInfo mapped = mapper.Map(message);

            MethodInfo expected =
                Method.Get((IWampServer<MockRaw> server) =>
                           server.Prefix(default(IWampClient), default(string), default(string)));

            Assert.That(mapped.Method, Is.SameAs(expected));
        }
        public void UnknownMessageReturnsNullIfMissingContractNotImplemented(WampMessage<MockRaw> message)
        {
            IWampRequestMapper<MockRaw> mapper =
                new WampRequestMapper<MockRaw>(typeof(MockWampServer),
                                               new MockRawFormatter());

            WampMethodInfo mapped = mapper.Map(message);

            Assert.That(mapped, Is.Null);
        }
        public void UnknownMessageReturnsMissingIfMissingContractImplemented(WampMessage<MockRaw> message)
        {
            IWampRequestMapper<MockRaw> mapper =
                new WampRequestMapper<MockRaw>(typeof(MockWampServerWithMissing),
                                               new MockRawFormatter());

            WampMethodInfo mapped = mapper.Map(message);

            MethodInfo expected =
                Method.Get((IWampMissingMethodContract<MockRaw> server) =>
                           server.Missing(default(WampMessage<MockRaw>)));

            Assert.That(mapped.Method, Is.SameAs(expected));
        }