@@ -39,6 +39,7 @@ using ::testing::Contains;
3939using ::testing::ElementsAre;
4040using ::testing::Eq;
4141using ::testing::HasSubstr;
42+ using ::testing::IsTrue;
4243using ::testing::Matcher;
4344using ::testing::Pair;
4445using ::testing::ResultOf;
@@ -193,6 +194,48 @@ TEST(RestStubTest, CreateBucket) {
193194 StatusIs (PermanentError ().code (), PermanentError ().message ()));
194195}
195196
197+ TEST (RestStubTest, ListBucketsIncludesPageTokenWhenPresentInRequest) {
198+ auto mock = std::make_shared<MockRestClient>();
199+ std::string expected_token = " test-page-token" ;
200+ ListBucketsRequest request (" test-project-id" );
201+ request.set_page_token (expected_token);
202+
203+ EXPECT_CALL (*mock,
204+ Get (ExpectedContext (),
205+ ResultOf (
206+ " request parameters contain expected pageToken" ,
207+ [](RestRequest const & r) { return r.parameters (); },
208+ Contains (Pair (" pageToken" , expected_token)))))
209+ .WillOnce (Return (PermanentError ()));
210+
211+ auto tested = std::make_unique<RestStub>(Options{}, mock, mock);
212+ auto context = TestContext ();
213+ tested->ListBuckets (context, TestOptions (), request);
214+ }
215+
216+ TEST (RestStubTest, ListBucketsOmitsPageTokenWhenEmptyInRequest) {
217+ auto mock = std::make_shared<MockRestClient>();
218+ ListBucketsRequest request (" test-project-id" );
219+
220+ EXPECT_CALL (*mock, Get (ExpectedContext (),
221+ ResultOf (
222+ " request parameters do not contain 'pageToken'" ,
223+ [](RestRequest const & r) {
224+ for (auto const & param : r.parameters ()) {
225+ if (param.first == " pageToken" ) {
226+ return false ;
227+ }
228+ }
229+ return true ;
230+ },
231+ IsTrue ())))
232+ .WillOnce (Return (PermanentError ()));
233+
234+ auto tested = std::make_unique<RestStub>(Options{}, mock, mock);
235+ auto context = TestContext ();
236+ tested->ListBuckets (context, TestOptions (), request);
237+ }
238+
196239TEST (RestStubTest, GetBucketMetadata) {
197240 auto mock = std::make_shared<MockRestClient>();
198241 EXPECT_CALL (*mock, Get (ExpectedContext (), ExpectedRequest ()))
0 commit comments