load("@fbcode//quic:defs.bzl", "mvfst_cpp_library")
load("@fbcode_macros//build_defs:cpp_unittest.bzl", "cpp_unittest")

oncall("traffic_protocols")

mvfst_cpp_library(
    name = "QuicAsyncUDPSocketMock",
    headers = [
        "QuicAsyncUDPSocketMock.h",
    ],
    exported_deps = [
        "//folly/portability:gmock",
        "//quic/common/udpsocket:quic_async_udp_socket",
    ],
)

mvfst_cpp_library(
    name = "QuicAsyncUDPSocketTestBase",
    headers = [
        "QuicAsyncUDPSocketTestBase.h",
    ],
    exported_deps = [
        ":QuicAsyncUDPSocketMock",
        "//folly/portability:gtest",
    ],
)

cpp_unittest(
    name = "FollyQuicAsyncUDPSocketTest",
    srcs = [
        "FollyQuicAsyncUDPSocketTest.cpp",
    ],
    supports_static_listing = False,
    deps = [
        ":QuicAsyncUDPSocketTestBase",
        "//folly/portability:gtest",
        "//quic/common/udpsocket:folly_async_udp_socket",
    ],
)

cpp_unittest(
    name = "LibevQuicAsyncUDPSocketTest",
    srcs = [
        "LibevQuicAsyncUDPSocketTest.cpp",
    ],
    supports_static_listing = False,
    deps = [
        ":QuicAsyncUDPSocketTestBase",
        "//folly/portability:gtest",
        "//quic/common/udpsocket:libev_async_udp_socket",
    ],
    external_deps = [
        "libev",
    ],
)
