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