Пример #1
0
        public WampMessage <MockRaw> MapRequest(WampMessage <MockRaw> message, IEnumerable <WampMessage <MockRaw> > messages, bool ignoreRequestId)
        {
            WampMethodInfo map = mMapper.Map(message);

            int[] indexes;

            if (!ignoreRequestId)
            {
                indexes = Enumerable.Range(0, map.Method.GetParameters().Length)
                          .ToArray();
            }
            else
            {
                indexes =
                    map.Method.GetParameters().Select((x, i) => new { parameter = x, index = i })
                    .Where(x => x.parameter.Name != "requestId" &&
                           x.parameter.Name != "publicationId")
                    .Select(x => x.index)
                    .ToArray();
            }

            JArray formattedIncoming = Format(message, indexes);

            WampMessage <MockRaw> request =
                messages.Where(x => x.MessageType == message.MessageType)
                .FirstOrDefault(x => AreEquivalent(formattedIncoming, indexes, x, message));

            return(request);
        }
        public void UnknownMessageReturnsNullIfMissingContractNotImplemented(WampMessage <MockRaw> message)
        {
            IWampRequestMapper <MockRaw> mapper =
                mServerMapper;

            WampMethodInfo mapped = mapper.Map(message);

            Assert.That(mapped, Is.Null);
        }
        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));
        }
        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));
        }
        private WampMethodInfo GetWampMethod(MethodInfo method)
        {
            if (mMethodToWampMethod.TryGetValue(method, out WampMethodInfo result))
            {
                return(result);
            }
            else
            {
                result = new WampMethodInfo(method);
                mMethodToWampMethod[method] = result;
            }

            return(result);
        }
Пример #6
0
        protected override object GetInstance(IWampClientProxy <TMessage> client, WampSharp.Core.Message.WampMessage <TMessage> message, WampMethodInfo method)
        {
            IWampBindedRealm <TMessage> realm = client.Realm;

            if (realm == null)
            {
                return(base.GetInstance(client, message, method));
            }

            return(realm.Server);
        }