From ec952024d78432156c4aaa4f83f40b360a12adb0 Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Sat, 5 Sep 2015 11:57:14 +0200 Subject: [PATCH] Add CModeMessage --- include/znc/Message.h | 5 +++++ test/MessageTest.cpp | 13 +++++++++++++ 2 files changed, 18 insertions(+) diff --git a/include/znc/Message.h b/include/znc/Message.h index 5df61dbe..994d33e9 100644 --- a/include/znc/Message.h +++ b/include/znc/Message.h @@ -113,6 +113,11 @@ public: void SetKey(const CString& sKey) { SetParam(1, sKey); } }; +class CModeMessage : public CTargetMessage { +public: + CString GetModes() const { return GetParams(1); } +}; + class CNickMessage : public CMessage { public: CString GetOldNick() const { return GetNick().GetNick(); } diff --git a/test/MessageTest.cpp b/test/MessageTest.cpp index ed0c7086..31f84203 100644 --- a/test/MessageTest.cpp +++ b/test/MessageTest.cpp @@ -176,6 +176,19 @@ TEST(MessageTest, Join) { EXPECT_EQ(":nick JOIN #znc", msg.ToString()); } +TEST(MessageTest, Mode) { + CModeMessage msg; + msg.Parse(":nick MODE #chan +k foo"); + EXPECT_EQ("nick", msg.GetNick().GetNick()); + EXPECT_EQ("MODE", msg.GetCommand()); + EXPECT_EQ("#chan", msg.GetTarget()); + EXPECT_EQ("+k foo", msg.GetModes()); + + msg.SetTarget("#znc"); + EXPECT_EQ("#znc", msg.GetTarget()); + EXPECT_EQ(":nick MODE #znc +k foo", msg.ToString()); +} + TEST(MessageTest, Nick) { CNickMessage msg; msg.Parse(":nick NICK person");