This repository was archived by the owner on Aug 16, 2024. It is now read-only.
File tree Expand file tree Collapse file tree 2 files changed +18
-1
lines changed
Expand file tree Collapse file tree 2 files changed +18
-1
lines changed Original file line number Diff line number Diff line change @@ -22,6 +22,14 @@ TEST(MessageChain_Test, Add_and_Get) {
2222 ASSERT_TRUE (m.Text () == " Hello" );
2323}
2424
25+ TEST (MessageChain_Test, Add_and_Get2) {
26+ using namespace Cyan ;
27+ MessageChain mc;
28+ mc.Add <PlainMessage>(" Hello" );
29+ auto m = mc.GetFirst <PlainMessage>();
30+ ASSERT_TRUE (m.Text () == " Hello" );
31+ }
32+
2533TEST (MessageChain_Test, GetAll) {
2634 using namespace Cyan ;
2735 MessageChain mc;
@@ -105,7 +113,7 @@ TEST(MessageChain_Test, AtMessage) {
105113 MessageChain mc;
106114 mc.Add (AtMessage (1234_qq));
107115 auto at = mc.GetFirst <AtMessage>();
108- ASSERT_TRUE (at.Target ().QQ == 1234 );
116+ ASSERT_TRUE (at.Target ().ToInt64 () == 1234 );
109117}
110118
111119TEST (MessageChain_Test, AtAllMessage) {
Original file line number Diff line number Diff line change @@ -81,6 +81,15 @@ namespace Cyan
8181 return *this ;
8282 }
8383
84+ template <class T ,class ... Args>
85+ MessageChain& Add (Args&&... args)
86+ {
87+ static_assert (std::is_base_of<IMessage, T>::value, " 只能接受 IMessage 的派生类" );
88+ std::shared_ptr<IMessage> m_ptr (new T (args...));
89+ messages_.push_back (m_ptr);
90+ return *this ;
91+ }
92+
8493 template <class T >
8594 void Remove (const T& m)
8695 {
You can’t perform that action at this time.
0 commit comments