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
|
// This file is part of CAF, the C++ Actor Framework. See the file LICENSE in
// the main distribution directory for license terms and copyright or visit
// https://github.com/actor-framework/actor-framework/blob/master/LICENSE.
#define CAF_SUITE message_id
#include "caf/message_id.hpp"
#include "core-test.hpp"
using namespace caf;
CAF_TEST(default construction) {
message_id x;
CHECK_EQ(x.is_async(), true);
CHECK_EQ(x.is_request(), false);
CHECK_EQ(x.is_response(), false);
CHECK_EQ(x.is_answered(), false);
CHECK(x.category() == message_id::normal_message_category);
CHECK_EQ(x.is_urgent_message(), false);
CHECK_EQ(x.is_normal_message(), true);
CHECK_EQ(x.is_stream_message(), false);
CHECK_EQ(x.is_upstream_message(), false);
CHECK_EQ(x.is_downstream_message(), false);
CHECK_EQ(x, x.response_id());
CHECK_EQ(x.request_id().integer_value(), 0u);
CHECK(x.integer_value() == message_id::default_async_value);
}
CAF_TEST(make_message_id) {
auto x = make_message_id();
message_id y;
CHECK_EQ(x, y);
CHECK_EQ(x.integer_value(), y.integer_value());
}
CAF_TEST(from integer value) {
auto x = make_message_id(42);
CHECK_EQ(x.is_async(), false);
CHECK_EQ(x.is_request(), true);
CHECK_EQ(x.is_response(), false);
CHECK_EQ(x.is_answered(), false);
CHECK(x.category() == message_id::normal_message_category);
CHECK_EQ(x.is_urgent_message(), false);
CHECK_EQ(x.is_normal_message(), true);
CHECK_EQ(x.is_stream_message(), false);
CHECK_EQ(x.is_upstream_message(), false);
CHECK_EQ(x.is_downstream_message(), false);
CHECK_EQ(x.request_id().integer_value(), 42u);
}
CAF_TEST(response ID) {
auto x = make_message_id(42).response_id();
CHECK_EQ(x.is_async(), false);
CHECK_EQ(x.is_request(), false);
CHECK_EQ(x.is_response(), true);
CHECK_EQ(x.is_answered(), false);
CHECK(x.category() == message_id::normal_message_category);
CHECK_EQ(x.is_urgent_message(), false);
CHECK_EQ(x.is_normal_message(), true);
CHECK_EQ(x.is_stream_message(), false);
CHECK_EQ(x.is_upstream_message(), false);
CHECK_EQ(x.is_downstream_message(), false);
CHECK_EQ(x.request_id().integer_value(), 42u);
}
CAF_TEST(request with high priority) {
auto x = make_message_id(42).response_id();
CHECK_EQ(x.is_async(), false);
CHECK_EQ(x.is_request(), false);
CHECK_EQ(x.is_response(), true);
CHECK_EQ(x.is_answered(), false);
CHECK(x.category() == message_id::normal_message_category);
CHECK_EQ(x.is_urgent_message(), false);
CHECK_EQ(x.is_normal_message(), true);
CHECK_EQ(x.is_stream_message(), false);
CHECK_EQ(x.is_upstream_message(), false);
CHECK_EQ(x.is_downstream_message(), false);
CHECK_EQ(x.request_id().integer_value(), 42u);
}
CAF_TEST(with_category) {
auto x = make_message_id();
CHECK(x.category() == message_id::normal_message_category);
for (auto category : {message_id::urgent_message_category,
message_id::downstream_message_category,
message_id::upstream_message_category,
message_id::normal_message_category}) {
x = x.with_category(category);
CHECK_EQ(x.category(), category);
CHECK_EQ(x.is_request(), false);
CHECK_EQ(x.is_response(), false);
CHECK_EQ(x.is_answered(), false);
}
}
|