コード例 #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");
        }