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