diff options
Diffstat (limited to 'messagebus/src/tests/bucketsequence/bucketsequence.cpp')
-rw-r--r-- | messagebus/src/tests/bucketsequence/bucketsequence.cpp | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/messagebus/src/tests/bucketsequence/bucketsequence.cpp b/messagebus/src/tests/bucketsequence/bucketsequence.cpp new file mode 100644 index 00000000000..6036c43f659 --- /dev/null +++ b/messagebus/src/tests/bucketsequence/bucketsequence.cpp @@ -0,0 +1,50 @@ +// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +#include <vespa/fastos/fastos.h> +#include <vespa/log/log.h> +LOG_SETUP("bucketsequence_test"); + +#include <vespa/messagebus/errorcode.h> +#include <vespa/messagebus/routing/retrytransienterrorspolicy.h> +#include <vespa/messagebus/testlib/receptor.h> +#include <vespa/messagebus/testlib/simplemessage.h> +#include <vespa/messagebus/testlib/simpleprotocol.h> +#include <vespa/messagebus/testlib/simplereply.h> +#include <vespa/messagebus/testlib/slobrok.h> +#include <vespa/messagebus/testlib/testserver.h> +#include <vespa/vespalib/testkit/testapp.h> + +using namespace mbus; + +TEST_SETUP(Test); + +class MyMessage : public SimpleMessage { +public: + MyMessage() : SimpleMessage("foo") { } + bool hasBucketSequence() { return true; } +}; + +int +Test::Main() +{ + TEST_INIT("bucketsequence_test"); + + Slobrok slobrok; + TestServer server(MessageBusParams() + .addProtocol(IProtocol::SP(new SimpleProtocol())) + .setRetryPolicy(IRetryPolicy::SP(new RetryTransientErrorsPolicy())), + RPCNetworkParams() + .setSlobrokConfig(slobrok.config())); + Receptor receptor; + SourceSession::UP session = server.mb.createSourceSession( + SourceSessionParams() + .setReplyHandler(receptor)); + Message::UP msg(new MyMessage()); + msg->setRoute(Route::parse("foo")); + ASSERT_TRUE(session->send(std::move(msg)).isAccepted()); + Reply::UP reply = receptor.getReply(); + ASSERT_TRUE(reply.get() != NULL); + EXPECT_EQUAL(1u, reply->getNumErrors()); + EXPECT_EQUAL((uint32_t)ErrorCode::SEQUENCE_ERROR, reply->getError(0).getCode()); + + TEST_DONE(); +} |