-
Notifications
You must be signed in to change notification settings - Fork 45
Expand file tree
/
Copy pathITest_GetParameter.cpp
More file actions
72 lines (52 loc) · 2.69 KB
/
ITest_GetParameter.cpp
File metadata and controls
72 lines (52 loc) · 2.69 KB
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
// SPDX-FileCopyrightText: 2023 Vector Informatik GmbH
//
// SPDX-License-Identifier: MIT
#include <memory>
#include <string>
#include "gtest/gtest.h"
#include "silkit/vendor/CreateSilKitRegistry.hpp"
#include "silkit/SilKit.hpp"
namespace {
struct ITest_GetParameter : public testing::Test
{
void checkGetParameterValues(SilKit::IParticipant* participant, std::unordered_map<SilKit::Parameter, std::string> expectedParameters)
{
for (auto it : expectedParameters)
{
std::string parameterValue = participant->GetParameter(it.first);
std::string expectedValue = it.second;
EXPECT_EQ(expectedValue, parameterValue);
}
}
const std::string _registryUriAnyPort = "silkit://127.0.0.1:0";
};
// Check that GetParameter return the values set via api
TEST_F(ITest_GetParameter, get_parameter_set_by_api)
{
const std::string participantNameByApi = "P1";
auto emptyParticipantConfig = SilKit::Config::ParticipantConfigurationFromString("");
auto registry = SilKit::Vendor::Vector::CreateSilKitRegistry(emptyParticipantConfig);
auto registryUriByApi = registry->StartListening(_registryUriAnyPort);
auto participant = SilKit::CreateParticipant(emptyParticipantConfig, participantNameByApi, registryUriByApi);
checkGetParameterValues(participant.get(), {{SilKit::Parameter::ParticipantName, participantNameByApi},
{SilKit::Parameter::RegistryUri, registryUriByApi}});
}
// Config values take precedence over api values
// Check that GetParameter actually return the config values if both are set
TEST_F(ITest_GetParameter, get_parameter_set_by_config)
{
const std::string participantNameByApi = "P2";
const std::string registryUriByApi = "silkit://127.0.0.42:0";
const std::string participantNameByConfig = "P1";
auto emptyParticipantConfig = SilKit::Config::ParticipantConfigurationFromString("");
auto registry = SilKit::Vendor::Vector::CreateSilKitRegistry(emptyParticipantConfig);
auto registryUriByConfig = registry->StartListening(_registryUriAnyPort);
std::ostringstream ss;
ss << R"({ "ParticipantName": ")" << participantNameByConfig << R"(", "Middleware": { "RegistryUri": ")"
<< registryUriByConfig << R"(" }})";
auto participantConfig = SilKit::Config::ParticipantConfigurationFromString(ss.str());
auto participant = SilKit::CreateParticipant(participantConfig, participantNameByApi, registryUriByApi);
checkGetParameterValues(participant.get(), {{SilKit::Parameter::ParticipantName, participantNameByConfig},
{SilKit::Parameter::RegistryUri, registryUriByConfig}});
}
} //end namespace