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); }
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); }