diff options
author | Dan Goodliffe <dan@randomdan.homeip.net> | 2019-05-27 20:22:43 +0100 |
---|---|---|
committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2019-05-27 20:22:43 +0100 |
commit | 501eae80fc3bad6eb8021402d90c7a12f3ccb0bb (patch) | |
tree | 39a91864ed0f518de09d132602baf4220688b981 | |
parent | Move iceobj rule into wider scope and add properties (diff) | |
download | icetray-501eae80fc3bad6eb8021402d90c7a12f3ccb0bb.tar.bz2 icetray-501eae80fc3bad6eb8021402d90c7a12f3ccb0bb.tar.xz icetray-501eae80fc3bad6eb8021402d90c7a12f3ccb0bb.zip |
Add mock mail server to dryice
-rw-r--r-- | icetray/dryice/Jamfile.jam | 6 | ||||
-rw-r--r-- | icetray/dryice/mockMail.ice | 17 | ||||
-rw-r--r-- | icetray/dryice/mockMailServer.cpp | 15 | ||||
-rw-r--r-- | icetray/dryice/mockMailServer.h | 21 | ||||
-rw-r--r-- | icetray/unittests/Jamfile.jam | 1 | ||||
-rw-r--r-- | icetray/unittests/testIceTrayMail.cpp | 13 |
6 files changed, 71 insertions, 2 deletions
diff --git a/icetray/dryice/Jamfile.jam b/icetray/dryice/Jamfile.jam index 1979337..50d7686 100644 --- a/icetray/dryice/Jamfile.jam +++ b/icetray/dryice/Jamfile.jam @@ -1,8 +1,9 @@ import package ; +iceobj mockMail : mockMail.ice : <library>../icetray//icetray ; lib dryice : - dryice.cpp - mockPool.cpp + [ glob *.cpp ] + mockMail : <library>..//adhocutil <library>../icetray//icetray @@ -10,6 +11,7 @@ lib dryice : <library>..//IceBox++11 <library>..//pthread <implicit-dependency>../icetray//icetray + <implicit-dependency>mockMail : : <include>. ; diff --git a/icetray/dryice/mockMail.ice b/icetray/dryice/mockMail.ice new file mode 100644 index 0000000..3aa9285 --- /dev/null +++ b/icetray/dryice/mockMail.ice @@ -0,0 +1,17 @@ +#ifndef ICETRAY_MOCKMAIL +#define ICETRAY_MOCKMAIL + +#include <mail.ice> + +[["ice-prefix"]] +module IceTray { + module Mail { + local sequence<Email> Emails; + local interface MockMailServer extends MailServer { + Emails getSentEmails(); + }; + }; +}; + +#endif + diff --git a/icetray/dryice/mockMailServer.cpp b/icetray/dryice/mockMailServer.cpp new file mode 100644 index 0000000..e93befb --- /dev/null +++ b/icetray/dryice/mockMailServer.cpp @@ -0,0 +1,15 @@ +#include "mockMailServer.h" + +namespace IceTray::Mail { + void MockMailServerImpl::sendEmail(const EmailPtr & e) + { + sentEmails.push_back(e); + } + + Emails + MockMailServerImpl::getSentEmails() + { + return sentEmails; + } +} + diff --git a/icetray/dryice/mockMailServer.h b/icetray/dryice/mockMailServer.h new file mode 100644 index 0000000..76906b9 --- /dev/null +++ b/icetray/dryice/mockMailServer.h @@ -0,0 +1,21 @@ +#ifndef ICETRAY_MOCKMAILSERVER_H +#define ICETRAY_MOCKMAILSERVER_H + +#include <mockMail.h> +#include <mailServer.h> + +namespace IceTray { + namespace Mail { + class DLL_PUBLIC MockMailServerImpl : public MockMailServer, BasicMailServer { + public: + void sendEmail(const EmailPtr & msg) override; + Emails getSentEmails() override; + + private: + Emails sentEmails; + }; + } +} + +#endif + diff --git a/icetray/unittests/Jamfile.jam b/icetray/unittests/Jamfile.jam index 655acb3..98ddb01 100644 --- a/icetray/unittests/Jamfile.jam +++ b/icetray/unittests/Jamfile.jam @@ -29,6 +29,7 @@ alias testCommon : : : : <dependency>../tool//icetray-sql/<toolset>gcc <icetray.sql.basedir>$(me) <implicit-dependency>../icetray//icetray + <implicit-dependency>../dryice//dryice <toolset>tidy:<xcheckxx>hicpp-vararg <toolset>tidy:<xcheckxx>hicpp-no-array-decay ; diff --git a/icetray/unittests/testIceTrayMail.cpp b/icetray/unittests/testIceTrayMail.cpp index c24b579..5b9fdf5 100644 --- a/icetray/unittests/testIceTrayMail.cpp +++ b/icetray/unittests/testIceTrayMail.cpp @@ -4,6 +4,7 @@ #include <memstream.h> #include <mailServer.h> +#include <mockMailServer.h> #include <mimeImpl.h> #include <fileUtils.h> #include <definedDirs.h> @@ -152,5 +153,17 @@ BOOST_AUTO_TEST_CASE(multipart_alt_imgs) BOOST_CHECK_EQUAL(ms, AdHoc::FileUtils::MemMap(fixtures / "multipart-alt-imgs.eml").sv()); } +BOOST_AUTO_TEST_CASE(mock_mail_server) +{ + e->content = std::make_shared<TextPart>(Headers { + { "X-Source", "single_part" } + }, "text/plain", text_content); + MockMailServerImpl mms; + mms.sendEmail(e); + auto sent = mms.getSentEmails(); + BOOST_CHECK_EQUAL(1, sent.size()); + BOOST_CHECK_EQUAL(sent.front(), e); +} + BOOST_AUTO_TEST_SUITE_END(); |