Exemple #1
0
        public void SubscribeFrame_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.Subscribe;
            peerMan.FrameReceived(frm, rpFake);

            A.CallTo(() => subManFake.Subscribe(rpFake, "Test")).MustHaveHappened();
            A.CallTo(() => rpFake.SendSubscribeReply("Test", Core.StatusCodes.SubscribeStatus.Success)).MustHaveHappened();
        }
Exemple #2
0
        private void HandleSubscription(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.Subscribe(source, channelName);

            source.SendSubscribeReply(channelName, 0x00);
        }