Пример #1
0
        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();
        }
Пример #2
0
        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);
        }