public void UnsubscribeFrame_CallsSubscriptionManager() { FrameBuilder fb = new FrameBuilder(); var bytes = Encoding.UTF8.GetBytes("Test"); fb.WriteMultiByte(bytes.Length); fb.WriteArray(bytes); var data = fb.GetData(); var frm = new Frame(); frm.payload = data; frm.frameType = FrameType.Unsub; peerMan.FrameReceived(frm, rpFake); A.CallTo(() => subManFake.Unsubscribe(rpFake, "Test")).MustHaveHappened(); A.CallTo(() => rpFake.SendUnsubReply("Test")).MustHaveHappened(); }
private void HandleUnsub(Frame frame, IPeer source) { var len = Util.ExtractMultiByte(frame.payload, 0); if (!len.success) { // something bad happened. } var buff = new byte[len.value]; Array.Copy(frame.payload, (int)len.numBytesUsed, buff, 0, (int)len.value); var channelName = Encoding.UTF8.GetString(buff); subMan.Unsubscribe(source, channelName); source.SendUnsubReply(channelName); }