public void TestEncode()
        {
            var map = new MessageMap(new KeyValuePair<string, Type>[] { new KeyValuePair<string, Type>("type1", typeof(SampleObject)) });
            Message message = map.Encode(new SampleObject() { V1 = "ABC", V2 = 5 });

            Assert.AreEqual("type1", message.GetData<string>("type"));
            Assert.AreEqual("ABC", message.GetData<string>("V1"));
            Assert.AreEqual(5, message.GetData<int>("V2"));
        }
 public void MessageHandlerDispatchesByType()
 {
     Message message = new Message();
     message.SetData("type", "type1");
     MessageMap messageMap = new MessageMap(GetType().Assembly, "CometGateway.Server.Gateway.Tests.SampleMessages");
     SampleHandler handler = new SampleHandler(messageMap);
     handler.HandleMessage(message);
     Assert.AreEqual("SampleMessage1", handler.called);
 }
        public void TestDecode()
        {
            var map = new MessageMap(new KeyValuePair<string, Type>[] { new KeyValuePair<string, Type>("type1", typeof(SampleObject)) });
            var message = new Message();
            message.SetData("type", "type1");
            message.SetData("V1", "ABC");
            message.SetData("V2", 5);
            var obj = map.Decode(message) as SampleObject;

            Assert.AreEqual("ABC", obj.V1);
            Assert.AreEqual(5, obj.V2);
        }
        public void TestFromAssembly()
        {
            var messageMap = new MessageMap(Assembly.GetExecutingAssembly(), "CometGateway.Server.Gateway.Tests.SampleMessages");

            List<KeyValuePair<string, Type>> map = messageMap
                                                            .MessageTypeMap
                                                            .OrderBy(pair => pair.Key)
                                                            .ToList();
            Assert.AreEqual(2, map.Count);
            Assert.AreEqual("type1", map[0].Key);
            Assert.AreEqual(typeof(SampleMessages.SampleMessage1), map[0].Value);
            Assert.AreEqual("type2", map[1].Key);
            Assert.AreEqual(typeof(SampleMessages.SampleMessage2), map[1].Value);
        }
        public void RemoveMessageHandlerCallsOnDisconnect()
        {
            var mockRepository = new MockRepository();
            var client = mockRepository.Stub<IClient>();
            client.Expect(c => c.ID).Return("abc").Repeat.Any();

            var emptyMessageMap = new MessageMap(Enumerable.Empty<KeyValuePair<string, Type>>());
            var messageHandler = mockRepository.StrictMock<MessageHandler>(emptyMessageMap);
            messageHandler.Expect(h => h.HandleDisconnect(client));

            mockRepository.ReplayAll();
            var messageHandlerCache = new MessageHandlerCache();
            messageHandlerCache[client] = messageHandler;
            EventHub.Publish(new DisconnectedEvent(client));
            Assert.AreEqual(null, messageHandlerCache[client]);
            mockRepository.VerifyAll();
        }
 public SampleHandler(MessageMap messageMap)
     : base(messageMap)
 {
 }