A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://cloud.google.com/cpp/docs/reference/bigquery/2.13.0/bigquery-read-mock below:

C++ Client Libraries | Google Cloud

Stay organized with collections Save and categorize content based on your preferences.

Testing your Cloud BigQueryRead application with googlemock

This document describes how to test your own Cloud BigQueryRead application using the Cloud BigQueryRead C++ client library, Google Test and the Google Test Mocking Framework.

Mocking a Successful BigQueryReadClient::GetServiceAccount() call

First include the headers for the Cloud BigQueryRead Client, the mocking class, and the Google Mock framework:

#include "google/cloud/bigquery/storage/v1/bigquery_read_client.h"
#include "google/cloud/bigquery/storage/v1/mocks/mock_bigquery_read_connection.h"
#include <gmock/gmock.h>

The example uses a number of aliases to save typing and improve readability:

using ::google::cloud::bigquery_storage_v1_mocks::MockBigQueryReadConnection;
namespace bigquery = ::google::cloud::bigquery_storage_v1;

Create a mocking object for google::cloud::bigquery_storage_v1::BigQueryReadConnection:

  auto mock = std::make_shared<MockBigQueryReadConnection>();

It is customary to first setup the expectations for your mock, and then write the rest of the code:

  EXPECT_CALL(*mock, CreateReadSession)
      .WillOnce([&](google::cloud::bigquery::storage::v1::
                        CreateReadSessionRequest const& request) {
        EXPECT_EQ("test-project-name", request.parent());
        EXPECT_EQ("test-table-name", request.read_session().table());
        google::cloud::bigquery::storage::v1::ReadSession response;
        google::cloud::bigquery::storage::v1::ReadStream stream;
        stream.set_name("test-stream");
        *response.add_streams() = stream;
        return google::cloud::StatusOr<
            google::cloud::bigquery::storage::v1::ReadSession>(response);
      });

With the expectations in place, create a google::cloud::bigquery_storage_v1::BigQueryReadClient object:

  bigquery::BigQueryReadClient bigquery_client(mock);

And then make calls on the client as usual:

  google::cloud::bigquery::storage::v1::ReadSession read_session;
  read_session.set_table("test-table-name");
  int max_streams = 1;
  auto session = bigquery_client.CreateReadSession("test-project-name",
                                                   read_session, max_streams);

And then verify the results meet your expectations:

  EXPECT_TRUE(session.ok());
  EXPECT_EQ("test-stream", session->streams(0).name());
Full Listing

Finally we present the full code for this example:


#include "google/cloud/bigquery/storage/v1/bigquery_read_client.h"
#include "google/cloud/bigquery/storage/v1/mocks/mock_bigquery_read_connection.h"
#include <gmock/gmock.h>

namespace {

using ::google::cloud::bigquery_storage_v1_mocks::MockBigQueryReadConnection;
namespace bigquery = ::google::cloud::bigquery_storage_v1;

TEST(MockCreateReadSessionExample, CreateReadSession) {
  auto mock = std::make_shared<MockBigQueryReadConnection>();

  EXPECT_CALL(*mock, CreateReadSession)
      .WillOnce([&](google::cloud::bigquery::storage::v1::
                        CreateReadSessionRequest const& request) {
        EXPECT_EQ("test-project-name", request.parent());
        EXPECT_EQ("test-table-name", request.read_session().table());
        google::cloud::bigquery::storage::v1::ReadSession response;
        google::cloud::bigquery::storage::v1::ReadStream stream;
        stream.set_name("test-stream");
        *response.add_streams() = stream;
        return google::cloud::StatusOr<
            google::cloud::bigquery::storage::v1::ReadSession>(response);
      });

  bigquery::BigQueryReadClient bigquery_client(mock);

  google::cloud::bigquery::storage::v1::ReadSession read_session;
  read_session.set_table("test-table-name");
  int max_streams = 1;
  auto session = bigquery_client.CreateReadSession("test-project-name",
                                                   read_session, max_streams);

  EXPECT_TRUE(session.ok());
  EXPECT_EQ("test-stream", session->streams(0).name());
}

}  // namespace

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2025-08-14 UTC.

[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-14 UTC."],[[["This page provides documentation for testing Cloud BigQueryRead applications using the C++ client library, Google Test, and the Google Test Mocking Framework."],["The latest version of the Cloud BigQueryRead documentation is version 2.37.0-rc, with previous versions listed ranging down to 2.11.0, along with the current version 2.13.0."],["The guide demonstrates how to use `MockBigQueryReadConnection` to create a mock object for testing, setting expectations for calls like `CreateReadSession`, and verifying results."],["The tutorial walks through mocking the `CreateReadSession` method, including setting up expectations for the mock object, creating a client object, making calls, and verifying the results."],["The full example code is included, which demonstrates how to set up a mock, establish expectations, interact with a `BigQueryReadClient` object, and test the outcomes effectively."]]],[]]


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4