@@ -37,9 +37,6 @@ const auto kTestHrn = "hrn:here:data::olp-here-test:hereos-internal-test";
3737const auto kLayer = " testlayer" ;
3838const auto kVersion = 44 ;
3939constexpr 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" ;
4340
4441class VersionedLayerClientGetDataTest : public ::testing::Test {
4542 protected:
@@ -57,6 +54,11 @@ class VersionedLayerClientGetDataTest : public ::testing::Test {
5754 mock_server_client_.reset ();
5855 }
5956
57+ std::string GenerateGetPartitionsPath (const std::string& hrn,
58+ const std::string& layer) {
59+ return " /query/v1/catalogs/" + hrn + " /layers/" + layer + " /partitions" ;
60+ }
61+
6062 std::shared_ptr<olp::client::OlpClientSettings> settings_;
6163 std::shared_ptr<mockserver::MockServerHelper> mock_server_client_;
6264};
@@ -74,7 +76,7 @@ TEST_F(VersionedLayerClientGetDataTest, GetDataFromPartitionSync) {
7476 mockserver::ReadDefaultResponses::GenerateVersionResponse (kVersion ));
7577 mock_server_client_->MockGetResponse (
7678 mockserver::ReadDefaultResponses::GeneratePartitionsResponse (1 ),
77- kPartitionsResponsePath );
79+ GenerateGetPartitionsPath ( kTestHrn , kLayer ) );
7880 mock_server_client_->MockGetResponse (
7981 kLayer , mockserver::ReadDefaultResponses::GenerateDataHandle (partition),
8082 data);
@@ -105,7 +107,7 @@ TEST_F(VersionedLayerClientGetDataTest, GetDataFromPartitionAsync) {
105107 mockserver::ReadDefaultResponses::GenerateVersionResponse (kVersion ));
106108 mock_server_client_->MockGetResponse (
107109 mockserver::ReadDefaultResponses::GeneratePartitionsResponse (1 ),
108- kPartitionsResponsePath );
110+ GenerateGetPartitionsPath ( kTestHrn , kLayer ) );
109111 mock_server_client_->MockGetResponse (
110112 kLayer , mockserver::ReadDefaultResponses::GenerateDataHandle (partition),
111113 data);
@@ -133,4 +135,98 @@ TEST_F(VersionedLayerClientGetDataTest, GetDataFromPartitionAsync) {
133135 EXPECT_TRUE (mock_server_client_->Verify ());
134136}
135137
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+
136232} // namespace
0 commit comments