/* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. SPDX-License-Identifier: Apache-2.0 */ #pragma once #ifndef S3_EXAMPLES_S3_GTESTS_H #define S3_EXAMPLES_S3_GTESTS_H #include #include #include class MockHttpClient; class MockHttpClientFactory; namespace AwsDocTest { class MyStringBuffer : public std::stringbuf { int underflow() override; }; class SES_GTests : public testing::Test { protected: void SetUp() override; void TearDown() override; static void SetUpTestSuite(); static void TearDownTestSuite(); static Aws::String preconditionError(); void AddCommandLineResponses(const std::vector &responses); // s_clientConfig must be a pointer because the client config must be initialized // after InitAPI. static std::unique_ptr s_clientConfig; private: static bool suppressStdOut(); static Aws::SDKOptions s_options; std::stringbuf m_coutBuffer; // Used to silence cout. std::streambuf *m_savedBuffer = nullptr; MyStringBuffer m_cinBuffer; std::streambuf *m_savedInBuffer = nullptr; }; // SES_GTests class MockHTTP { public: MockHTTP(); virtual ~MockHTTP(); bool addResponseWithBody(const std::string &fileName, Aws::Http::HttpResponseCode httpResponseCode = Aws::Http::HttpResponseCode::OK); private: std::shared_ptr mockHttpClient; std::shared_ptr mockHttpClientFactory; std::shared_ptr requestTmp; }; // MockHTTP } // AwsDocTest #endif //S3_EXAMPLES_S3_GTESTS_H