| // Copyright 2023 The ChromiumOS Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef NET_BASE_MOCK_SOCKET_H_ |
| #define NET_BASE_MOCK_SOCKET_H_ |
| |
| #include "net-base/socket.h" |
| |
| #include <memory> |
| #include <vector> |
| |
| #include <base/files/scoped_file.h> |
| #include <brillo/brillo_export.h> |
| #include <gmock/gmock.h> |
| |
| namespace net_base { |
| |
| class BRILLO_EXPORT MockSocket : public Socket { |
| public: |
| MockSocket(); |
| explicit MockSocket(base::ScopedFD fd, int type); |
| ~MockSocket() override; |
| |
| MOCK_METHOD(std::unique_ptr<Socket>, |
| Accept, |
| (struct sockaddr*, socklen_t*), |
| (const, override)); |
| MOCK_METHOD(bool, |
| Bind, |
| (const struct sockaddr*, socklen_t), |
| (const, override)); |
| MOCK_METHOD(bool, |
| GetSockName, |
| (struct sockaddr*, socklen_t*), |
| (const, override)); |
| MOCK_METHOD(bool, Listen, (int), (const, override)); |
| MOCK_METHOD(std::optional<int>, |
| Ioctl, |
| // NOLINTNEXTLINE(runtime/int) |
| (unsigned long, void*), |
| (const, override)); |
| MOCK_METHOD(std::optional<size_t>, |
| RecvFrom, |
| (base::span<uint8_t>, int, struct sockaddr*, socklen_t*), |
| (const, override)); |
| MOCK_METHOD(bool, RecvMessage, (std::vector<uint8_t>*), (const, override)); |
| MOCK_METHOD(std::optional<size_t>, |
| Send, |
| (base::span<const uint8_t>, int), |
| (const, override)); |
| MOCK_METHOD( |
| std::optional<size_t>, |
| SendTo, |
| (base::span<const uint8_t>, int, const struct sockaddr*, socklen_t), |
| (const, override)); |
| MOCK_METHOD(bool, SetReceiveBuffer, (int), (const, override)); |
| MOCK_METHOD(bool, |
| SetSockOpt, |
| (int, int, base::span<const uint8_t>), |
| (const, override)); |
| }; |
| |
| class BRILLO_EXPORT MockSocketFactory : public SocketFactory { |
| public: |
| MockSocketFactory(); |
| ~MockSocketFactory() override; |
| |
| MOCK_METHOD(std::unique_ptr<Socket>, Create, (int, int, int), (override)); |
| MOCK_METHOD(std::unique_ptr<Socket>, |
| CreateNetlink, |
| (int, uint32_t, std::optional<int>), |
| (override)); |
| }; |
| |
| } // namespace net_base |
| #endif // NET_BASE_MOCK_SOCKET_H_ |