From ab06efbe9538aa3aba3bc3bf85d5dbaef186eecc Mon Sep 17 00:00:00 2001 From: Chris Thrasher Date: Mon, 21 Aug 2023 23:54:29 -0600 Subject: [PATCH] Add tests for `sf::TcpListener` --- test/Network/TcpListener.test.cpp | 58 ++++++++++++++++++++++++++++--- 1 file changed, 54 insertions(+), 4 deletions(-) diff --git a/test/Network/TcpListener.test.cpp b/test/Network/TcpListener.test.cpp index d08faa1c..5ae33b4b 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); + } +}