Skip to content

Commit 202162d

Browse files
committed
test(core): Mock tests part2
1 parent e3544b7 commit 202162d

17 files changed

+1896
-6
lines changed

src/sdks/core/src/cpp/sdk/cpptest/CMakeLists.txt

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,11 @@ if(ENABLE_UNIT_TESTS)
9494
endif()
9595

9696
file(GLOB UNIT_TESTS "unit/*.cpp")
97-
file(GLOB MOCK_TESTS "mock/*.cpp")
97+
98+
if(ENABLE_MOCK_TESTS)
99+
add_compile_definitions(MOCK_TEST)
100+
file(GLOB MOCK_TESTS "mock/*.cpp")
101+
endif()
98102

99103
add_compile_definitions(UNIT_TEST_APP)
100104

@@ -112,13 +116,17 @@ if(ENABLE_UNIT_TESTS)
112116
${FIREBOLT_NAMESPACE}SDK::${FIREBOLT_NAMESPACE}SDK
113117
nlohmann_json::nlohmann_json
114118
nlohmann_json_schema_validator::validator
115-
GTest::gtest_main
119+
gtest
120+
gtest_main
121+
gmock
122+
gmock_main
116123
)
117124

118125
target_include_directories(${UNIT_TESTS_APP}
119126
PRIVATE
120127
$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/include/>
121128
$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/src/>
129+
$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/test/include>
122130
)
123131

124132
set_target_properties(${UNIT_TESTS_APP} PROPERTIES
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
#pragma once
2+
3+
#include "error.h"
4+
#include "JsonDataMock.h"
5+
6+
7+
class IGateway
8+
{
9+
public:
10+
virtual ~IGateway() = default;
11+
virtual Firebolt::Error Request(const std::string &method, const JsonObject &parameters, FireboltSDK::JSON::String &result) = 0;
12+
13+
virtual Firebolt::Error Request(const std::string &method, const JsonObject &parameters, WPEFramework::Core::JSON::VariantContainer &response) = 0;
14+
virtual Firebolt::Error Request(const std::string &method, const JsonObject &parameters, WPEFramework::Core::JSON::Variant &response) = 0;
15+
virtual Firebolt::Error Request(const std::string &method, const JsonObject &parameters, WPEFramework::Core::JSON::Boolean &response) = 0;
16+
virtual Firebolt::Error Request(const std::string &method, const JsonObject &parameters, WPEFramework::Core::JSON::ArrayType<FireboltSDK::JSON::String> &response) = 0;
17+
18+
virtual Firebolt::Error Request(const std::string &method, const JsonObject &parameters, Firebolt::Authentication::JsonData_Token &result) = 0;
19+
20+
virtual Firebolt::Error Request(const std::string &method, const JsonObject &parameters, Firebolt::Advertising::JsonData_AdPolicy &response) = 0;
21+
virtual Firebolt::Error Request(const std::string &method, const JsonObject &parameters, Firebolt::Advertising::JsonData_AdvertisingId &response) = 0;
22+
virtual Firebolt::Error Request(const std::string &method, const JsonObject &parameters, Firebolt::Advertising::JsonData_AdFrameworkConfig &response) = 0;
23+
virtual Firebolt::Error Request(const std::string &method, const JsonObject &parameters, Firebolt::Advertising::JsonData_DeviceAttributes &response) = 0;
24+
25+
virtual Firebolt::Error Request(const std::string &method, const JsonObject &parameters, Firebolt::Accessibility::JsonData_ClosedCaptionsSettings &response) = 0;
26+
virtual Firebolt::Error Request(const std::string &method, const JsonObject &parameters, Firebolt::Accessibility::JsonData_VoiceGuidanceSettings &response) = 0;
27+
virtual Firebolt::Error Request(const std::string &method, const JsonObject &parameters, Firebolt::Accessibility::JsonData_AudioDescriptionSettings &response) = 0;
28+
29+
virtual Firebolt::Error Request(const std::string &method, const JsonObject &parameters, Firebolt::Device::JsonData_DeviceVersion &response) = 0;
30+
virtual Firebolt::Error Request(const std::string &method, const JsonObject &parameters, Firebolt::Device::JsonData_AudioProfiles &response) = 0;
31+
virtual Firebolt::Error Request(const std::string &method, const JsonObject &parameters, Firebolt::Device::JsonData_HDCPVersionMap &response) = 0;
32+
virtual Firebolt::Error Request(const std::string &method, const JsonObject &parameters, Firebolt::Device::JsonData_HDRFormatMap &response) = 0;
33+
virtual Firebolt::Error Request(const std::string &method, const JsonObject &parameters, Firebolt::Device::JsonData_NetworkInfoResult &response) = 0;
34+
virtual Firebolt::Error Request(const std::string &method, const JsonObject &parameters, Firebolt::Device::JsonData_Resolution &response) = 0;
35+
36+
virtual Firebolt::Error Request(const std::string &method, const JsonObject &parameters, WPEFramework::Core::JSON::ArrayType<Firebolt::Capabilities::JsonData_CapabilityInfo> &response) = 0;
37+
38+
virtual Firebolt::Error Request(const std::string &method, const JsonObject &parameters, Firebolt::Discovery::JsonData_DiscoveryPolicy &response) = 0;
39+
40+
virtual Firebolt::Error Request(const std::string &method, const JsonObject &parameters, Firebolt::Localization::JsonData_Info &response) = 0;
41+
virtual Firebolt::Error Request(const std::string &method, const JsonObject &parameters, Firebolt::Localization::JsonData_LatLon &response) = 0;
42+
43+
virtual Firebolt::Error Request(const std::string &method, const JsonObject &parameters, Firebolt::Parameters::JsonData_AppInitialization &response) = 0;
44+
45+
virtual Firebolt::Error Request(const std::string &method, const JsonObject &parameters, Firebolt::Types::JsonData_FlatMap &response) = 0;
46+
virtual Firebolt::Error Request(const std::string &method, const JsonObject &parameters, Firebolt::Types::JsonData_BooleanMap &response) = 0;
47+
};
Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
#pragma once
2+
3+
#include "IGateway.h"
4+
#include "Transport/Transport.h"
5+
6+
class IGatewayMock : public IGateway
7+
{
8+
public:
9+
FireboltSDK::Transport<WPEFramework::Core::JSON::IElement> *transport;
10+
11+
template <typename RESPONSE>
12+
Firebolt::Error RequestImpl(const std::string &method, const JsonObject &parameters, RESPONSE &response)
13+
{
14+
if (transport == nullptr)
15+
{
16+
return Firebolt::Error::NotConnected;
17+
}
18+
return transport->Invoke(method, parameters, response);
19+
}
20+
21+
Firebolt::Error Request(const std::string &method, const JsonObject &parameters, FireboltSDK::JSON::String &response)
22+
{
23+
return RequestImpl(method, parameters, response);
24+
}
25+
26+
Firebolt::Error Request(const std::string &method, const JsonObject &parameters, Firebolt::Authentication::JsonData_Token &response)
27+
{
28+
return RequestImpl(method, parameters, response);
29+
}
30+
31+
Firebolt::Error Request(const std::string &method, const JsonObject &parameters, Firebolt::Advertising::JsonData_AdvertisingId &response)
32+
{
33+
return RequestImpl(method, parameters, response);
34+
}
35+
36+
Firebolt::Error Request(const std::string &method, const JsonObject &parameters, Firebolt::Advertising::JsonData_AdFrameworkConfig &response)
37+
{
38+
return RequestImpl(method, parameters, response);
39+
}
40+
41+
Firebolt::Error Request(const std::string &method, const JsonObject &parameters, Firebolt::Advertising::JsonData_DeviceAttributes &response)
42+
{
43+
return RequestImpl(method, parameters, response);
44+
}
45+
46+
Firebolt::Error Request(const std::string &method, const JsonObject &parameters, WPEFramework::Core::JSON::Boolean &response)
47+
{
48+
return RequestImpl(method, parameters, response);
49+
}
50+
51+
Firebolt::Error Request(const std::string &method, const JsonObject &parameters, Firebolt::Accessibility::JsonData_ClosedCaptionsSettings &response)
52+
{
53+
return RequestImpl(method, parameters, response);
54+
}
55+
56+
Firebolt::Error Request(const std::string &method, const JsonObject &parameters, Firebolt::Accessibility::JsonData_VoiceGuidanceSettings &response)
57+
{
58+
return RequestImpl(method, parameters, response);
59+
}
60+
61+
Firebolt::Error Request(const std::string &method, const JsonObject &parameters, Firebolt::Advertising::JsonData_AdPolicy &response)
62+
{
63+
return RequestImpl(method, parameters, response);
64+
}
65+
66+
Firebolt::Error Request(const std::string &method, const JsonObject &parameters, Firebolt::Accessibility::JsonData_AudioDescriptionSettings &response)
67+
{
68+
return RequestImpl(method, parameters, response);
69+
}
70+
71+
Firebolt::Error Request(const std::string &method, const JsonObject &parameters, WPEFramework::Core::JSON::ArrayType<Firebolt::Capabilities::JsonData_CapabilityInfo> &response)
72+
{
73+
return RequestImpl(method, parameters, response);
74+
}
75+
76+
Firebolt::Error Request(const std::string &method, const JsonObject &parameters, Firebolt::Device::JsonData_AudioProfiles &response)
77+
{
78+
return RequestImpl(method, parameters, response);
79+
}
80+
81+
Firebolt::Error Request(const std::string &method, const JsonObject &parameters, Firebolt::Device::JsonData_HDCPVersionMap &response)
82+
{
83+
return RequestImpl(method, parameters, response);
84+
}
85+
86+
Firebolt::Error Request(const std::string &method, const JsonObject &parameters, Firebolt::Device::JsonData_HDRFormatMap &response)
87+
{
88+
return RequestImpl(method, parameters, response);
89+
}
90+
91+
Firebolt::Error Request(const std::string &method, const JsonObject &parameters, Firebolt::Device::JsonData_NetworkInfoResult &response)
92+
{
93+
return RequestImpl(method, parameters, response);
94+
}
95+
96+
Firebolt::Error Request(const std::string &method, const JsonObject &parameters, Firebolt::Device::JsonData_Resolution &response)
97+
{
98+
return RequestImpl(method, parameters, response);
99+
}
100+
101+
Firebolt::Error Request(const std::string &method, const JsonObject &parameters, Firebolt::Device::JsonData_DeviceVersion &response)
102+
{
103+
return RequestImpl(method, parameters, response);
104+
}
105+
106+
Firebolt::Error Request(const std::string &method, const JsonObject &parameters, WPEFramework::Core::JSON::VariantContainer &response)
107+
{
108+
return RequestImpl(method, parameters, response);
109+
}
110+
111+
Firebolt::Error Request(const std::string &method, const JsonObject &parameters, WPEFramework::Core::JSON::Variant &response)
112+
{
113+
return RequestImpl(method, parameters, response);
114+
}
115+
116+
Firebolt::Error Request(const std::string &method, const JsonObject &parameters, Firebolt::Discovery::JsonData_DiscoveryPolicy &response)
117+
{
118+
return RequestImpl(method, parameters, response);
119+
}
120+
121+
Firebolt::Error Request(const std::string &method, const JsonObject &parameters, Firebolt::Localization::JsonData_Info &response)
122+
{
123+
return RequestImpl(method, parameters, response);
124+
}
125+
126+
Firebolt::Error Request(const std::string &method, const JsonObject &parameters, Firebolt::Localization::JsonData_LatLon &response)
127+
{
128+
return RequestImpl(method, parameters, response);
129+
}
130+
131+
Firebolt::Error Request(const std::string &method, const JsonObject &parameters, Firebolt::Parameters::JsonData_AppInitialization &response)
132+
{
133+
return RequestImpl(method, parameters, response);
134+
}
135+
136+
Firebolt::Error Request(const std::string &method, const JsonObject &parameters, Firebolt::Types::JsonData_FlatMap &response)
137+
{
138+
return RequestImpl(method, parameters, response);
139+
}
140+
141+
Firebolt::Error Request(const std::string &method, const JsonObject &parameters, Firebolt::Types::JsonData_BooleanMap &response)
142+
{
143+
return RequestImpl(method, parameters, response);
144+
}
145+
146+
Firebolt::Error Request(const std::string &method, const JsonObject &parameters, WPEFramework::Core::JSON::ArrayType<FireboltSDK::JSON::String> &response)
147+
{
148+
return RequestImpl(method, parameters, response);
149+
}
150+
};
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
#pragma once
2+
3+
#include "TypesPriv.h"
4+
#include "JsonDataMock.h"
5+
6+
class IProperties
7+
{
8+
public:
9+
virtual ~IProperties() = default;
10+
virtual Firebolt::Error Get(const std::string &propertyName, FireboltSDK::JSON::String &response) = 0;
11+
12+
virtual Firebolt::Error Get(const std::string &propertyName, WPEFramework::Core::JSON::ArrayType<FireboltSDK::JSON::String> &response) = 0;
13+
virtual Firebolt::Error Get(const std::string &propertyName, WPEFramework::Core::JSON::Boolean &response) = 0;
14+
15+
virtual Firebolt::Error Get(const std::string &propertyName, Firebolt::Advertising::JsonData_AdPolicy &response) = 0;
16+
17+
virtual Firebolt::Error Get(const std::string &propertyName, Firebolt::Accessibility::JsonData_AudioDescriptionSettings &response) = 0;
18+
virtual Firebolt::Error Get(const std::string &propertyName, Firebolt::Accessibility::JsonData_ClosedCaptionsSettings &response) = 0;
19+
virtual Firebolt::Error Get(const std::string &propertyName, Firebolt::Accessibility::JsonData_VoiceGuidanceSettings &response) = 0;
20+
21+
virtual Firebolt::Error Get(const std::string &propertyName, Firebolt::Device::JsonData_AudioProfiles &response) = 0;
22+
virtual Firebolt::Error Get(const std::string &propertyName, Firebolt::Device::JsonData_HDCPVersionMap &response) = 0;
23+
virtual Firebolt::Error Get(const std::string &propertyName, Firebolt::Device::JsonData_HDRFormatMap &response) = 0;
24+
virtual Firebolt::Error Get(const std::string &propertyName, Firebolt::Device::JsonData_NetworkInfoResult &response) = 0;
25+
virtual Firebolt::Error Get(const std::string &propertyName, Firebolt::Device::JsonData_Resolution &response) = 0;
26+
27+
virtual Firebolt::Error Get(const std::string &propertyName, Firebolt::Discovery::JsonData_DiscoveryPolicy &response) = 0;
28+
};
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
#pragma once
2+
3+
#include "Gateway/Gateway.h"
4+
#include "IProperties.h"
5+
6+
class IPropertiesMock : public IProperties
7+
{
8+
template <typename RESPONSETYPE>
9+
static Firebolt::Error GetImpl(const string &propertyName, RESPONSETYPE &response)
10+
{
11+
std::cout << "IPropertiesMock::GetImpl()\n";
12+
JsonObject parameters;
13+
return FireboltSDK::Gateway::Instance().Request(propertyName, parameters, response);
14+
}
15+
16+
public:
17+
Firebolt::Error Get(const std::string &propertyName, FireboltSDK::JSON::String &response)
18+
{
19+
return GetImpl(propertyName, response);
20+
}
21+
22+
Firebolt::Error Get(const std::string &propertyName, Firebolt::Advertising::JsonData_AdPolicy &response)
23+
{
24+
return GetImpl(propertyName, response);
25+
}
26+
27+
Firebolt::Error Get(const std::string &propertyName, Firebolt::Accessibility::JsonData_AudioDescriptionSettings &response)
28+
{
29+
return GetImpl(propertyName, response);
30+
}
31+
32+
Firebolt::Error Get(const std::string &propertyName, Firebolt::Accessibility::JsonData_ClosedCaptionsSettings &response)
33+
{
34+
return GetImpl(propertyName, response);
35+
}
36+
37+
Firebolt::Error Get(const std::string &propertyName, Firebolt::Accessibility::JsonData_VoiceGuidanceSettings &response)
38+
{
39+
return GetImpl(propertyName, response);
40+
}
41+
42+
Firebolt::Error Get(const std::string &propertyName, Firebolt::Device::JsonData_AudioProfiles &response)
43+
{
44+
return GetImpl(propertyName, response);
45+
}
46+
47+
Firebolt::Error Get(const std::string &propertyName, Firebolt::Device::JsonData_HDCPVersionMap &response)
48+
{
49+
return GetImpl(propertyName, response);
50+
}
51+
52+
Firebolt::Error Get(const std::string &propertyName, Firebolt::Device::JsonData_HDRFormatMap &response)
53+
{
54+
return GetImpl(propertyName, response);
55+
}
56+
57+
Firebolt::Error Get(const std::string &propertyName, Firebolt::Device::JsonData_NetworkInfoResult &response)
58+
{
59+
return GetImpl(propertyName, response);
60+
}
61+
62+
Firebolt::Error Get(const std::string &propertyName, Firebolt::Device::JsonData_Resolution &response)
63+
{
64+
return GetImpl(propertyName, response);
65+
}
66+
67+
Firebolt::Error Get(const std::string &propertyName, Firebolt::Discovery::JsonData_DiscoveryPolicy &response)
68+
{
69+
return GetImpl(propertyName, response);
70+
}
71+
72+
Firebolt::Error Get(const std::string &propertyName, WPEFramework::Core::JSON::ArrayType<FireboltSDK::JSON::String> &response)
73+
{
74+
return GetImpl(propertyName, response);
75+
}
76+
77+
Firebolt::Error Get(const std::string &propertyName, WPEFramework::Core::JSON::Boolean &response)
78+
{
79+
return GetImpl(propertyName, response);
80+
}
81+
};

0 commit comments

Comments
 (0)