diff --git a/test/Network/TcpListener.test.cpp b/test/Network/TcpListener.test.cpp index d08faa1c0..5ae33b4b1 100644 --- a/test/Network/TcpListener.test.cpp +++ b/test/Network/TcpListener.test.cpp @@ -1,8 +1,58 @@ #include +// Other 1st party headers +#include + +#include + #include -static_assert(!std::is_copy_constructible_v); -static_assert(!std::is_copy_assignable_v); -static_assert(std::is_nothrow_move_constructible_v); -static_assert(std::is_nothrow_move_assignable_v); +TEST_CASE("[Network] sf::TcpListener") +{ + SECTION("Type traits") + { + STATIC_CHECK(!std::is_copy_constructible_v); + STATIC_CHECK(!std::is_copy_assignable_v); + STATIC_CHECK(std::is_nothrow_move_constructible_v); + STATIC_CHECK(std::is_nothrow_move_assignable_v); + } + + SECTION("Construction") + { + const sf::TcpListener tcpListener; + CHECK(tcpListener.getLocalPort() == 0); + } + + SECTION("listen()") + { + sf::TcpListener tcpListener; + + SECTION("Valid") + { + CHECK(tcpListener.listen(0) == sf::Socket::Status::Done); + CHECK(tcpListener.getLocalPort() != 0); + } + + SECTION("Invalid") + { + CHECK(tcpListener.listen(0, sf::IpAddress::Broadcast) == sf::Socket::Status::Error); + CHECK(tcpListener.getLocalPort() == 0); + } + } + + SECTION("close()") + { + sf::TcpListener tcpListener; + CHECK(tcpListener.listen(0) == sf::Socket::Status::Done); + CHECK(tcpListener.getLocalPort() != 0); + tcpListener.close(); + CHECK(tcpListener.getLocalPort() == 0); + } + + SECTION("accept()") + { + sf::TcpListener tcpListener; + sf::TcpSocket tcpSocket; + CHECK(tcpListener.accept(tcpSocket) == sf::Socket::Status::Error); + } +}