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);
        }
        private void CopyMembersToMessage(Message message, object toEncode)
        {
            foreach (string fieldNameCrt in GetFieldsOf(toEncode))
            {
                message.SetData(fieldNameCrt, GetFieldValue(toEncode, fieldNameCrt));
            }

            foreach (string propertyNameCrt in GetPropertiesOf(toEncode))
            {
                message.SetData(propertyNameCrt, GetPropertyValue(toEncode, propertyNameCrt));
            }
        }
        public Message Encode(object toEncode)
        {
            string messageType = FindMessageType(toEncode.GetType());

            Message message = new Message();
            message.SetData("type", messageType);
            CopyMembersToMessage(message, toEncode);
            return message;
        }
 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 ConnectStartsConnectionAndCaches()
        {
            MockRepository mockRepository = new MockRepository();
            var socketConnection = mockRepository.DynamicMock<IHTMLConnection>();
            TelnetProtocolTranslator connectMessageHandler =
                new TelnetProtocolTranslator(socketConnection, null, null);

            socketConnection.Expect(connection => connection.StartConnect("test.com", 25));

            socketConnection.Expect(connection => connection.ServerDisconnected += connectMessageHandler.OnDisconnected);
            socketConnection.Expect(connection => connection.ConnectionSucceeded += connectMessageHandler.OnConnectSucceeded);
            socketConnection.Expect(connection => connection.ErrorOccurred += connectMessageHandler.OnErrorOccurred);

            var message = new Message();
            message.SetData("type", "connect");
            message.SetData("server", "test.com");
            message.SetData("port", 25);
            message.clientId = "abc";
            message.channel = "def";

            mockRepository.ReplayAll();
            connectMessageHandler.HandleMessage(message);
            Assert.AreEqual("abc", connectMessageHandler.ClientId);
            Assert.AreEqual("def", connectMessageHandler.Channel);
            mockRepository.VerifyAll();
        }
        public void TextTypedForwardsLine()
        {
            MockRepository mockRepository = new MockRepository();
            var socketConnection = mockRepository.DynamicMock<IHTMLConnection>();
            var connectMessageHandler = new TelnetProtocolTranslator(socketConnection, null, null);

            socketConnection.Expect(connection => connection.Send("line typed"));

            var message = new Message();
            message.SetData("type", "textEntered");
            message.SetData("text", "line typed");

            mockRepository.ReplayAll();
            connectMessageHandler.HandleMessage(message);
            mockRepository.VerifyAll();
        }