blob: b28f44b67e422a57466d3177e080445a0633aa29 [file] [log] [blame]
// Copyright 2021 The Fuchsia 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 ZIRCON_KERNEL_LIB_EFI_TESTING_INCLUDE_LIB_EFI_TESTING_MOCK_TCP6_H_
#define ZIRCON_KERNEL_LIB_EFI_TESTING_INCLUDE_LIB_EFI_TESTING_MOCK_TCP6_H_
#include <efi/protocol/tcp6.h>
#include <gmock/gmock.h>
#include "mock_protocol_base.h"
namespace efi {
// gmock wrapper for efi_tcp6_protocol.
class MockTcp6Protocol : public MockProtocolBase<MockTcp6Protocol, efi_tcp6_protocol> {
public:
MockTcp6Protocol()
: MockProtocolBase({.GetModeData = Bounce<&MockTcp6Protocol::GetModeData>,
.Configure = Bounce<&MockTcp6Protocol::Configure>,
.Connect = Bounce<&MockTcp6Protocol::Connect>,
.Accept = Bounce<&MockTcp6Protocol::Accept>,
.Transmit = Bounce<&MockTcp6Protocol::Transmit>,
.Receive = Bounce<&MockTcp6Protocol::Receive>,
.Close = Bounce<&MockTcp6Protocol::Close>,
.Cancel = Bounce<&MockTcp6Protocol::Cancel>,
.Poll = Bounce<&MockTcp6Protocol::Poll>}) {}
MOCK_METHOD(efi_status, GetModeData,
(efi_tcp6_connection_state * tcp6_state, efi_tcp6_config_data* tcp6_config_data,
efi_ip6_mode_data* ip6_mode_data, efi_managed_network_config_data* mnp_config_data,
efi_simple_network_mode* snp_mode_data));
MOCK_METHOD(efi_status, Configure, (efi_tcp6_config_data * tcp6_config_data));
MOCK_METHOD(efi_status, Connect, (efi_tcp6_connection_token * connection_token));
MOCK_METHOD(efi_status, Accept, (efi_tcp6_listen_token * listen_token));
MOCK_METHOD(efi_status, Transmit, (efi_tcp6_io_token * token));
MOCK_METHOD(efi_status, Receive, (efi_tcp6_io_token * token));
MOCK_METHOD(efi_status, Close, (efi_tcp6_close_token * close_token));
MOCK_METHOD(efi_status, Cancel, (efi_tcp6_completion_token * token));
MOCK_METHOD(efi_status, Poll, ());
};
} // namespace efi
#endif // ZIRCON_KERNEL_LIB_EFI_TESTING_INCLUDE_LIB_EFI_TESTING_MOCK_TCP6_H_