| // Copyright 2019 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef PLATFORM_TEST_MOCK_TLS_CONNECTION_H_ |
| #define PLATFORM_TEST_MOCK_TLS_CONNECTION_H_ |
| |
| #include "gmock/gmock.h" |
| #include "platform/api/tls_connection.h" |
| |
| namespace openscreen { |
| |
| class TaskRunner; |
| |
| class MockTlsConnection : public TlsConnection { |
| public: |
| MockTlsConnection(IPEndpoint local_address, IPEndpoint remote_address) |
| : local_address_(local_address), remote_address_(remote_address) {} |
| |
| ~MockTlsConnection() override = default; |
| |
| using TlsConnection::Client; |
| void SetClient(Client* client) override { client_ = client; } |
| |
| MOCK_METHOD(bool, Send, (const void* data, size_t len), (override)); |
| |
| IPEndpoint GetLocalEndpoint() const override { return local_address_; } |
| IPEndpoint GetRemoteEndpoint() const override { return remote_address_; } |
| |
| void OnError(Error error) { |
| if (client_) { |
| client_->OnError(this, std::move(error)); |
| } |
| } |
| void OnRead(std::vector<uint8_t> block) { |
| if (client_) { |
| client_->OnRead(this, std::move(block)); |
| } |
| } |
| |
| private: |
| Client* client_; |
| const IPEndpoint local_address_; |
| const IPEndpoint remote_address_; |
| }; |
| |
| } // namespace openscreen |
| |
| #endif // PLATFORM_TEST_MOCK_TLS_CONNECTION_H_ |