Beispiel #1
0
        public void MessageSendTopic()
        {
            INError error = null;

            ManualResetEvent evt1  = new ManualResetEvent(false);
            string           room  = "test-room";
            INTopic          topic = null;

            client1.Send(new NTopicJoinMessage.Builder().TopicRoom(room).Build(), (INResultSet <INTopic> topics1) =>
            {
                topic = topics1.Results[0];
                client2.Send(new NTopicJoinMessage.Builder().TopicRoom(room).Build(), (INResultSet <INTopic> topics2) =>
                {
                    evt1.Set();
                }, (INError err) =>
                {
                    error = err;
                    evt1.Set();
                });
            }, (INError err) =>
            {
                error = err;
                evt1.Set();
            });
            evt1.WaitOne(5000, false);
            Assert.IsNull(error);
            Assert.IsNotNull(topic);

            string            data       = "{\"some\":\"data\"}";
            INTopicMessage    message    = null;
            INTopicMessageAck messageAck = null;
            ManualResetEvent  evt2       = new ManualResetEvent(false);
            ManualResetEvent  evt3       = new ManualResetEvent(false);

            client1.OnTopicMessage = (INTopicMessage msg) =>
            {
                message = msg;
                evt2.Set();
            };
            client2.Send(NTopicMessageSendMessage.Default(topic.Topic, data), (INTopicMessageAck ack) =>
            {
                messageAck = ack;
                evt3.Set();
            }, (INError err) =>
            {
                error = err;
                evt2.Set();
                evt3.Set();
            });

            evt2.WaitOne(5000, false);
            evt3.WaitOne(5000, false);
            Assert.IsNull(error);
            Assert.IsNotNull(message);
            Assert.IsNotNull(messageAck);

            Assert.AreEqual(userId2, message.UserId);
            Assert.AreEqual(TopicMessageType.Chat, message.Type);
            Assert.AreEqual(data, message.Data);

            Assert.AreEqual(messageAck.MessageId, message.MessageId);
            Assert.AreEqual(messageAck.CreatedAt, message.CreatedAt);
            Assert.AreEqual(messageAck.ExpiresAt, message.ExpiresAt);
            Assert.AreEqual(messageAck.Handle, message.Handle);
        }
Beispiel #2
0
        public void MessageSendTopic()
        {
            INError error = null;

            ManualResetEvent evt1 = new ManualResetEvent(false);

            byte[]  room  = Encoding.UTF8.GetBytes("test-room");
            INTopic topic = null;

            client1.Send(new NTopicJoinMessage.Builder().TopicRoom(room).Build(), (INTopic topic1) =>
            {
                topic = topic1;
                client2.Send(new NTopicJoinMessage.Builder().TopicRoom(room).Build(), (INTopic topic2) =>
                {
                    evt1.Set();
                }, (INError err) =>
                {
                    error = err;
                    evt1.Set();
                });
            }, (INError err) =>
            {
                error = err;
                evt1.Set();
            });
            evt1.WaitOne(5000, false);
            Assert.IsNull(error);
            Assert.IsNotNull(topic);

            byte[]            data       = Encoding.UTF8.GetBytes("{\"some\":\"data\"}");
            INTopicMessage    message    = null;
            INTopicMessageAck messageAck = null;
            ManualResetEvent  evt2       = new ManualResetEvent(false);
            ManualResetEvent  evt3       = new ManualResetEvent(false);

            client1.OnTopicMessage += (object source, NTopicMessageEventArgs args) =>
            {
                message = args.Message;
                evt2.Set();
            };
            client2.Send(NTopicMessageSendMessage.Default(topic.Topic, data), (INTopicMessageAck ack) =>
            {
                messageAck = ack;
                evt3.Set();
            }, (INError err) =>
            {
                error = err;
                evt2.Set();
                evt3.Set();
            });

            evt2.WaitOne(5000, false);
            evt3.WaitOne(5000, false);
            Assert.IsNull(error);
            Assert.IsNotNull(message);
            Assert.IsNotNull(messageAck);

            Assert.AreEqual(userId2, message.UserId);
            Assert.AreEqual(TopicMessageType.Chat, message.Type);
            Assert.AreEqual(data, message.Data);

            Assert.AreEqual(messageAck.MessageId, message.MessageId);
            Assert.AreEqual(messageAck.CreatedAt, message.CreatedAt);
            Assert.AreEqual(messageAck.ExpiresAt, message.ExpiresAt);
            Assert.AreEqual(messageAck.Handle, message.Handle);
        }