コード例 #1
0
ファイル: ModeTests.cs プロジェクト: alfaproject/Supay.Irc
        public void ParseMultiOpMode()
        {
            const string raw = ":[email protected] MODE #ms.net +oo _aLfa_ bob";

            IrcMessage ircMsg = IrcMessageFactory.Parse(raw);
            Assert.IsInstanceOfType(ircMsg, typeof(ChannelModeMessage), "Parses MODE");

            var msg = (ChannelModeMessage) ircMsg;
            var creator = new ChannelModesCreator();
            creator.Parse(msg);

            Assert.AreEqual(2, creator.Modes.Count, "Mode Count");
            Assert.IsInstanceOfType(creator.Modes[0], typeof(OperatorMode), "Mode Type");
            Assert.IsInstanceOfType(creator.Modes[1], typeof(OperatorMode), "Mode Type");

            var mode = (OperatorMode) creator.Modes[0];
            Assert.AreEqual(ModeAction.Add, mode.Action, "Mode Action");
            Assert.AreEqual("_aLfa_", mode.Nick, "Mode Nick");

            mode = (OperatorMode) creator.Modes[1];
            Assert.AreEqual(ModeAction.Add, mode.Action, "Mode Action");
            Assert.AreEqual("bob", mode.Nick, "Mode Nick");

            creator.ApplyTo(msg);

            Assert.AreEqual(raw, msg.ToString(), "Round Trip");
        }
コード例 #2
0
ファイル: Client.cs プロジェクト: alfaproject/Supay.Irc
 private void HandleChannelModeIs(object sender, IrcMessageEventArgs<ChannelModeIsReplyMessage> e)
 {
     Channel channel;
     if (!this.Channels.TryGetValue(e.Message.Channel, out channel))
     {
         var modes = new ChannelModesCreator {
             ServerSupport = this.ServerSupports
         };
         modes.Parse(e.Message.Modes, e.Message.ModeArguments);
         channel.Modes.ResetWith(modes.Modes);
     }
 }