/// <summary>
 /// Creates a new instance of <see cref="WampIncomingMessageHandler{TMessage,TClient}"/>
 /// given <paramref name="wampRequestMapper"/> and
 /// <paramref name="methodBuilder"/>
 /// </summary>
 /// <param name="wampRequestMapper">The <see cref="IWampRequestMapper{TRequest}"/>
 /// used in order to map <see cref="WampMessage{TMessage}"/>s to their suitable methods.</param>
 /// <param name="methodBuilder">The <see cref="IMethodBuilder{TKey,TMethod}"/> used
 /// in order to build the corresponding methods.</param>
 public WampIncomingMessageHandler
     (IWampRequestMapper <TMessage> wampRequestMapper,
     IMethodBuilder <WampMethodInfo, Action <TClient, WampMessage <TMessage> > > methodBuilder)
 {
     mWampRequestMapper = wampRequestMapper;
     mLogger            = LogProvider.GetLogger(this.GetType());
     mDelegateCache     = new DelegateCache <WampMethodInfo, Action <TClient, WampMessage <TMessage> > >(methodBuilder);
 }
        public void UnknownMessageReturnsNullIfMissingContractNotImplemented(WampMessage <MockRaw> message)
        {
            IWampRequestMapper <MockRaw> mapper =
                mServerMapper;

            WampMethodInfo mapped = mapper.Map(message);

            Assert.That(mapped, Is.Null);
        }
        public void PublishExcludeMe(WampMessage <MockRaw> message)
        {
            IWampRequestMapper <MockRaw> mapper =
                mServerMapper;

            WampMethodInfo mapped = mapper.Map(message);

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

            Assert.That(mapped.Method, Is.SameAs(expected));
        }
        public void Unsubscribe(WampMessage <MockRaw> message)
        {
            IWampRequestMapper <MockRaw> mapper =
                mServerMapper;

            WampMethodInfo mapped = mapper.Map(message);

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

            Assert.That(mapped.Method, Is.SameAs(expected));
        }
        public void Event(WampMessage <MockRaw> message)
        {
            IWampRequestMapper <MockRaw> mapper =
                mClientMapper;

            WampMethodInfo mapped = mapper.Map(message);

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

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