blob: 546b7604deebc488bb0b61aa35f4cd775681bd63 (
plain) (
blame)
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
|
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#include <vespa/storage/storageserver/rpc/message_codec_provider.h>
#include <vespa/storageapi/mbusprot/protocolserialization7.h>
#include <vespa/document/base/testdocman.h>
#include <vespa/vespalib/gtest/gtest.h>
using namespace ::testing;
namespace storage::rpc {
struct MessageCodecProviderTest : Test {
std::shared_ptr<const document::DocumentTypeRepo> _repo1;
std::shared_ptr<const document::DocumentTypeRepo> _repo2;
MessageCodecProvider _provider;
// We don't care about repo/set contents, just their pointer identities
MessageCodecProviderTest()
: _repo1(document::TestDocRepo().getTypeRepoSp()),
_repo2(document::TestDocRepo().getTypeRepoSp()),
_provider(_repo1)
{}
~MessageCodecProviderTest() override;
};
MessageCodecProviderTest::~MessageCodecProviderTest() = default;
TEST_F(MessageCodecProviderTest, initially_provides_constructed_repos) {
auto wrapped = _provider.wrapped_codec();
EXPECT_EQ(&wrapped->codec().type_repo(), _repo1.get());
}
TEST_F(MessageCodecProviderTest, updated_repos_reflected_in_new_wrapped_codec) {
_provider.update_atomically(_repo2);
auto wrapped = _provider.wrapped_codec();
EXPECT_EQ(&wrapped->codec().type_repo(), _repo2.get());
}
}
|