1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
|
#define BOOST_TEST_MODULE Message
#include <boost/test/unit_test.hpp>
#include <sstream>
#include <odil/Exception.h>
#include <odil/webservices/Message.h>
BOOST_AUTO_TEST_CASE(DefaultConstructor)
{
odil::webservices::Message const message;
BOOST_REQUIRE(message.get_headers().empty());
BOOST_REQUIRE(message.get_body().empty());
}
BOOST_AUTO_TEST_CASE(OneParameterConstructor)
{
odil::webservices::Message const message(
odil::webservices::Message::Headers{{"foo", "bar"}, {"plip", "plop"}});
BOOST_REQUIRE(
message.get_headers()
== odil::webservices::Message::Headers(
{{"foo", "bar"}, {"plip", "plop"}}));
BOOST_REQUIRE(message.get_body().empty());
}
BOOST_AUTO_TEST_CASE(TwoParametersConstructor)
{
odil::webservices::Message const message(
odil::webservices::Message::Headers{{"foo", "bar"}, {"plip", "plop"}},
"body");
BOOST_REQUIRE(
message.get_headers()
== odil::webservices::Message::Headers(
{{"foo", "bar"}, {"plip", "plop"}}));
BOOST_REQUIRE_EQUAL(message.get_body(), "body");
}
BOOST_AUTO_TEST_CASE(Headers)
{
odil::webservices::Message message;
message.set_headers({{"foo", "bar"}, {"plip", "plop"}});
BOOST_REQUIRE(
message.get_headers()
== odil::webservices::Message::Headers(
{{"foo", "bar"}, {"plip", "plop"}}));
BOOST_REQUIRE(message.has_header("foo"));
BOOST_REQUIRE(message.has_header("FoO"));
BOOST_REQUIRE(!message.has_header("bar"));
BOOST_REQUIRE_EQUAL(message.get_header("foo"), "bar");
BOOST_REQUIRE_EQUAL(message.get_header("FoO"), "bar");
BOOST_REQUIRE_THROW(message.get_header("bar"), odil::Exception);
message.set_header("foo", "other");
BOOST_REQUIRE_EQUAL(message.get_header("foo"), "other");
}
BOOST_AUTO_TEST_CASE(Body)
{
odil::webservices::Message message;
message.set_body("body");
BOOST_REQUIRE_EQUAL(message.get_body(), "body");
}
BOOST_AUTO_TEST_CASE(Input)
{
std::stringstream stream(
"From: John Doe <jdoe@machine.example>\r\n"
"To: Mary Smith <mary@example.net>\r\n"
"Subject: Saying Hello\r\n"
"Date: Fri, 21 Nov 1997 09:55:06 -0600\r\n"
"Message-ID: <1234@local.machine.example>\r\n"
"\r\n"
"This is a message just to say hello.\r\n"
"So, \"Hello\".\r\n");
odil::webservices::Message message;
stream >> message;
BOOST_REQUIRE(
message.get_headers()
== odil::webservices::Message::Headers({
{"From", "John Doe <jdoe@machine.example>"},
{"To", "Mary Smith <mary@example.net>"},
{"Subject", "Saying Hello"},
{"Date", "Fri, 21 Nov 1997 09:55:06 -0600"},
{"Message-ID", "<1234@local.machine.example>"}
}));
BOOST_REQUIRE_EQUAL(
message.get_body(),
"This is a message just to say hello.\r\n"
"So, \"Hello\".\r\n");
}
BOOST_AUTO_TEST_CASE(Output)
{
odil::webservices::Message const message{
{
{"From", "John Doe <jdoe@machine.example>"},
{"To", "Mary Smith <mary@example.net>"},
{"Subject", "Saying Hello"},
{"Date", "Fri, 21 Nov 1997 09:55:06 -0600"},
{"Message-ID", "<1234@local.machine.example>"}
},
"This is a message just to say hello.\r\n"
"So, \"Hello\".\r\n"
};
std::stringstream stream;
stream << message;
odil::webservices::Message result;
stream >> result;
BOOST_REQUIRE(message.get_headers() == result.get_headers());
BOOST_REQUIRE_EQUAL(message.get_body(), result.get_body());
}
|