summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2019-05-27 20:22:43 +0100
committerDan Goodliffe <dan@randomdan.homeip.net>2019-05-27 20:22:43 +0100
commit501eae80fc3bad6eb8021402d90c7a12f3ccb0bb (patch)
tree39a91864ed0f518de09d132602baf4220688b981
parentMove iceobj rule into wider scope and add properties (diff)
downloadicetray-501eae80fc3bad6eb8021402d90c7a12f3ccb0bb.tar.bz2
icetray-501eae80fc3bad6eb8021402d90c7a12f3ccb0bb.tar.xz
icetray-501eae80fc3bad6eb8021402d90c7a12f3ccb0bb.zip
Add mock mail server to dryice
-rw-r--r--icetray/dryice/Jamfile.jam6
-rw-r--r--icetray/dryice/mockMail.ice17
-rw-r--r--icetray/dryice/mockMailServer.cpp15
-rw-r--r--icetray/dryice/mockMailServer.h21
-rw-r--r--icetray/unittests/Jamfile.jam1
-rw-r--r--icetray/unittests/testIceTrayMail.cpp13
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();