@@ -37,9 +37,6 @@ const auto kTestHrn = "hrn:here:data::olp-here-test:hereos-internal-test";
37
37
const auto kLayer = " testlayer" ;
38
38
const auto kVersion = 44 ;
39
39
constexpr auto kWaitTimeout = std::chrono::seconds(10 );
40
- const auto kPartitionsResponsePath =
41
- " /query/v1/catalogs/hrn:here:data::olp-here-test:hereos-internal-test/"
42
- " layers/testlayer/partitions" ;
43
40
44
41
class VersionedLayerClientGetDataTest : public ::testing::Test {
45
42
protected:
@@ -57,6 +54,11 @@ class VersionedLayerClientGetDataTest : public ::testing::Test {
57
54
mock_server_client_.reset ();
58
55
}
59
56
57
+ std::string GenerateGetPartitionsPath (const std::string& hrn,
58
+ const std::string& layer) {
59
+ return " /query/v1/catalogs/" + hrn + " /layers/" + layer + " /partitions" ;
60
+ }
61
+
60
62
std::shared_ptr<olp::client::OlpClientSettings> settings_;
61
63
std::shared_ptr<mockserver::MockServerHelper> mock_server_client_;
62
64
};
@@ -74,7 +76,7 @@ TEST_F(VersionedLayerClientGetDataTest, GetDataFromPartitionSync) {
74
76
mockserver::ReadDefaultResponses::GenerateVersionResponse (kVersion ));
75
77
mock_server_client_->MockGetResponse (
76
78
mockserver::ReadDefaultResponses::GeneratePartitionsResponse (1 ),
77
- kPartitionsResponsePath );
79
+ GenerateGetPartitionsPath ( kTestHrn , kLayer ) );
78
80
mock_server_client_->MockGetResponse (
79
81
kLayer , mockserver::ReadDefaultResponses::GenerateDataHandle (partition),
80
82
data);
@@ -105,7 +107,7 @@ TEST_F(VersionedLayerClientGetDataTest, GetDataFromPartitionAsync) {
105
107
mockserver::ReadDefaultResponses::GenerateVersionResponse (kVersion ));
106
108
mock_server_client_->MockGetResponse (
107
109
mockserver::ReadDefaultResponses::GeneratePartitionsResponse (1 ),
108
- kPartitionsResponsePath );
110
+ GenerateGetPartitionsPath ( kTestHrn , kLayer ) );
109
111
mock_server_client_->MockGetResponse (
110
112
kLayer , mockserver::ReadDefaultResponses::GenerateDataHandle (partition),
111
113
data);
@@ -133,4 +135,98 @@ TEST_F(VersionedLayerClientGetDataTest, GetDataFromPartitionAsync) {
133
135
EXPECT_TRUE (mock_server_client_->Verify ());
134
136
}
135
137
138
+ TEST_F (VersionedLayerClientGetDataTest, GetDataWithHandle) {
139
+ olp::client::HRN hrn (kTestHrn );
140
+
141
+ const auto data_handle =
142
+ mockserver::ReadDefaultResponses::GenerateDataHandle (" test" );
143
+ const auto data = mockserver::ReadDefaultResponses::GenerateData ();
144
+
145
+ mock_server_client_->MockAuth ();
146
+ mock_server_client_->MockLookupResourceApiResponse (
147
+ mockserver::ApiDefaultResponses::GenerateResourceApisResponse (kTestHrn ));
148
+
149
+ mock_server_client_->MockGetResponse (kLayer , data_handle, data);
150
+
151
+ auto client = olp::dataservice::read::VersionedLayerClient (
152
+ hrn, kLayer , boost::none, *settings_);
153
+
154
+ auto request = olp::dataservice::read::DataRequest ();
155
+ request.WithDataHandle (data_handle);
156
+
157
+ auto future = client.GetData (request);
158
+ auto data_response = future.GetFuture ().get ();
159
+
160
+ EXPECT_SUCCESS (data_response);
161
+ ASSERT_TRUE (data_response.GetResult () != nullptr );
162
+ ASSERT_LT (0 , data_response.GetResult ()->size ());
163
+ std::string data_string (data_response.GetResult ()->begin (),
164
+ data_response.GetResult ()->end ());
165
+ ASSERT_EQ (data, data_string);
166
+ EXPECT_TRUE (mock_server_client_->Verify ());
167
+ }
168
+
169
+ TEST_F (VersionedLayerClientGetDataTest, GetDataWithInvalidLayerId) {
170
+ olp::client::HRN hrn (kTestHrn );
171
+
172
+ const auto kInvalidLayer = " InvalidLayer" ;
173
+
174
+ mock_server_client_->MockAuth ();
175
+ mock_server_client_->MockLookupResourceApiResponse (
176
+ mockserver::ApiDefaultResponses::GenerateResourceApisResponse (kTestHrn ));
177
+ mock_server_client_->MockGetVersionResponse (
178
+ mockserver::ReadDefaultResponses::GenerateVersionResponse (kVersion ));
179
+ mock_server_client_->MockGetError (
180
+ olp::client::ApiError (olp::http::HttpStatusCode::BAD_REQUEST),
181
+ GenerateGetPartitionsPath (kTestHrn , kInvalidLayer ));
182
+
183
+ auto client = olp::dataservice::read::VersionedLayerClient (
184
+ hrn, kInvalidLayer , boost::none, *settings_);
185
+
186
+ auto request = olp::dataservice::read::DataRequest ();
187
+ request.WithPartitionId (" 269" );
188
+
189
+ auto future = client.GetData (request);
190
+ auto data_response = future.GetFuture ().get ();
191
+
192
+ ASSERT_FALSE (data_response.IsSuccessful ());
193
+ ASSERT_EQ (olp::client::ErrorCode::BadRequest,
194
+ data_response.GetError ().GetErrorCode ());
195
+ EXPECT_TRUE (mock_server_client_->Verify ());
196
+ }
197
+
198
+ TEST_F (VersionedLayerClientGetDataTest, GetDataWithPartitionIdVersion2) {
199
+ olp::client::HRN hrn (kTestHrn );
200
+
201
+ auto partitions_model =
202
+ mockserver::ReadDefaultResponses::GeneratePartitionsResponse (1 );
203
+ auto data_handle = partitions_model.GetPartitions ()[0 ].GetDataHandle ();
204
+ auto data = mockserver::ReadDefaultResponses::GenerateData ();
205
+
206
+ mock_server_client_->MockAuth ();
207
+ mock_server_client_->MockLookupResourceApiResponse (
208
+ mockserver::ApiDefaultResponses::GenerateResourceApisResponse (kTestHrn ));
209
+ mock_server_client_->MockGetResponse (
210
+ partitions_model, GenerateGetPartitionsPath (kTestHrn , kLayer ));
211
+
212
+ mock_server_client_->MockGetResponse (kLayer , data_handle, data);
213
+
214
+ auto client =
215
+ olp::dataservice::read::VersionedLayerClient (hrn, kLayer , 2 , *settings_);
216
+
217
+ auto request = olp::dataservice::read::DataRequest ();
218
+ request.WithPartitionId (" 269" );
219
+
220
+ auto future = client.GetData (request);
221
+ auto data_response = future.GetFuture ().get ();
222
+
223
+ EXPECT_SUCCESS (data_response);
224
+ ASSERT_TRUE (data_response.GetResult () != nullptr );
225
+ ASSERT_LT (0 , data_response.GetResult ()->size ());
226
+ std::string data_string (data_response.GetResult ()->begin (),
227
+ data_response.GetResult ()->end ());
228
+ ASSERT_EQ (data, data_string);
229
+ EXPECT_TRUE (mock_server_client_->Verify ());
230
+ }
231
+
136
232
} // namespace
0 commit comments