diff options
| -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();  | 
