public void TestAttachChannel_AttachesSuccessfuly() { // Arrange var client = GetRealtimeClient(); Semaphore signal = new Semaphore(0, 2); var args = new List <Realtime.ChannelStateChangedEventArgs>(); Realtime.IRealtimeChannel target = client.Channels.Get("test"); target.ChannelStateChanged += (s, e) => { args.Add(e); signal.Release(); }; // Act target.Attach(); // Assert signal.WaitOne(10000); args.Count.ShouldBeEquivalentTo(1); args[0].NewState.ShouldBeEquivalentTo(Realtime.ChannelState.Attaching); args[0].Reason.ShouldBeEquivalentTo(null); target.State.ShouldBeEquivalentTo(Realtime.ChannelState.Attaching); signal.WaitOne(10000); args.Count.ShouldBeEquivalentTo(2); args[1].NewState.ShouldBeEquivalentTo(Realtime.ChannelState.Attached); args[1].Reason.ShouldBeEquivalentTo(null); target.State.ShouldBeEquivalentTo(Realtime.ChannelState.Attached); }
public void TestAttachChannel_SendingMessage_EchoesItBack() { // Arrange var client = GetRealtimeClient(); AutoResetEvent signal = new AutoResetEvent(false); Realtime.IRealtimeChannel target = client.Channels.Get("test"); target.Attach(); List <Message> messagesReceived = new List <Message>(); target.MessageReceived += (messages) => { messagesReceived.AddRange(messages); signal.Set(); }; // Act target.Publish("test", "test data"); signal.WaitOne(10000); // Assert messagesReceived.Count.ShouldBeEquivalentTo(1); messagesReceived[0].Name.ShouldBeEquivalentTo("test"); messagesReceived[0].Data.ShouldBeEquivalentTo("test data"); }
public void TestGetChannel_ReturnsValidChannel() { // Arrange var client = GetRealtimeClient(); AutoResetEvent signal = new AutoResetEvent(false); // Act Realtime.IRealtimeChannel target = client.Channels.Get("test"); // Assert target.Name.ShouldBeEquivalentTo("test"); target.State.ShouldBeEquivalentTo(Realtime.ChannelState.Initialised); }