| // Copyright 2022 The ChromiumOS Authors | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #ifndef VTPM_BACKENDS_FAKE_BLOB_H_ | |
| #define VTPM_BACKENDS_FAKE_BLOB_H_ | |
| #include "vtpm/backends/mock_blob.h" | |
| #include <string> | |
| #include <gmock/gmock.h> | |
| namespace vtpm { | |
| // A fake implementation that always returns a constant string defined during | |
| // construction time. | |
| class FakeBlob : public MockBlob { | |
| public: | |
| // Constructs an instance w/ `blob as the retruend data for `Get()`. | |
| explicit FakeBlob(const std::string& blob) : blob_(blob) { | |
| using ::testing::_; | |
| using ::testing::DoAll; | |
| using ::testing::Return; | |
| using ::testing::SetArgReferee; | |
| ON_CALL(*this, Get(_)) | |
| .WillByDefault( | |
| DoAll(SetArgReferee<0>(blob_), Return(trunks::TPM_RC_SUCCESS))); | |
| } | |
| ~FakeBlob() override = default; | |
| private: | |
| const std::string blob_; | |
| }; | |
| } // namespace vtpm | |
| #endif // VTPM_BACKENDS_FAKE_BLOB_H_ |