|
PACS System 0.1.0
PACS DICOM system library
|
RAII wrapper for a test DICOM server. More...
#include <test_fixtures.h>

Public Member Functions | |
| test_server (uint16_t port=0, const std::string &ae_title=test_scp_ae_title) | |
| Construct and start a test server. | |
| ~test_server () | |
| test_server (const test_server &)=delete | |
| test_server & | operator= (const test_server &)=delete |
| test_server (test_server &&)=delete | |
| test_server & | operator= (test_server &&)=delete |
| template<typename Service > | |
| void | register_service (std::shared_ptr< Service > service) |
| Register a service provider. | |
| bool | start () |
| Start the server and wait for it to be ready. | |
| void | stop () |
| Stop the server. | |
| uint16_t | port () const noexcept |
| const std::string & | ae_title () const noexcept |
| bool | is_running () const noexcept |
| network::dicom_server & | server () |
Static Private Member Functions | |
| static bool | check_port_listening (uint16_t port) |
| Check if a port is listening (inline implementation) | |
Private Attributes | |
| uint16_t | port_ |
| std::string | ae_title_ |
| std::unique_ptr< network::dicom_server > | server_ |
| bool | running_ {false} |
RAII wrapper for a test DICOM server.
Provides automatic server lifecycle management for tests. Server is started on construction and stopped on destruction.
Definition at line 530 of file test_fixtures.h.
|
inlineexplicit |
Construct and start a test server.
| port | Port to listen on (0 = auto-select) |
| ae_title | AE title for server |
Definition at line 537 of file test_fixtures.h.
References kcenon::pacs::network::server_config::ae_title, ae_title_, kcenon::pacs::network::server_config::idle_timeout, kcenon::pacs::network::server_config::implementation_class_uid, kcenon::pacs::network::server_config::implementation_version_name, kcenon::pacs::network::server_config::max_associations, kcenon::pacs::network::server_config::port, port_, and server_.
|
inline |
Definition at line 554 of file test_fixtures.h.
References stop().

|
delete |
|
delete |
|
inlinenodiscardnoexcept |
Definition at line 625 of file test_fixtures.h.
References ae_title_.
Referenced by TEST_CASE(), TEST_CASE(), TEST_CASE(), and TEST_CASE().

|
inlinestaticprivate |
Check if a port is listening (inline implementation)
This is a simplified version for use within test_server::start() since process_launcher is defined later in this file.
Definition at line 640 of file test_fixtures.h.
References kcenon::pacs::integration_test::is_ci_environment(), and port().
Referenced by start().


|
inlinenodiscardnoexcept |
Definition at line 628 of file test_fixtures.h.
References running_.
Referenced by TEST_CASE().

|
delete |
|
delete |
|
inlinenodiscardnoexcept |
Definition at line 622 of file test_fixtures.h.
References port_.
Referenced by check_port_listening().

|
inline |
Register a service provider.
| service | Service provider to register |
Definition at line 569 of file test_fixtures.h.
References server_.
Referenced by TEST_CASE(), TEST_CASE(), TEST_CASE(), TEST_CASE(), TEST_CASE(), TEST_CASE(), TEST_CASE(), TEST_CASE(), TEST_CASE(), TEST_CASE(), TEST_CASE(), TEST_CASE(), TEST_CASE(), TEST_CASE(), and TEST_CASE().

|
inlinenodiscard |
Definition at line 631 of file test_fixtures.h.
References server_.
|
inlinenodiscard |
Start the server and wait for it to be ready.
This method:
The port listening check ensures the server is truly ready to accept connections, which is critical for reliable tests in CI environments where process startup can be slower.
Definition at line 585 of file test_fixtures.h.
References check_port_listening(), port_, running_, server_, and kcenon::pacs::integration_test::server_ready_timeout().
Referenced by TEST_CASE(), TEST_CASE(), TEST_CASE(), TEST_CASE(), TEST_CASE(), TEST_CASE(), TEST_CASE(), TEST_CASE(), TEST_CASE(), TEST_CASE(), TEST_CASE(), TEST_CASE(), TEST_CASE(), TEST_CASE(), and TEST_CASE().


|
inline |
Stop the server.
Definition at line 614 of file test_fixtures.h.
References running_, and server_.
Referenced by TEST_CASE(), TEST_CASE(), TEST_CASE(), TEST_CASE(), TEST_CASE(), and ~test_server().

|
private |
Definition at line 715 of file test_fixtures.h.
Referenced by ae_title(), and test_server().
|
private |
Definition at line 714 of file test_fixtures.h.
Referenced by port(), start(), and test_server().
|
private |
Definition at line 717 of file test_fixtures.h.
Referenced by is_running(), start(), and stop().
|
private |
Definition at line 716 of file test_fixtures.h.
Referenced by register_service(), server(), start(), stop(), and test_server().