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