PACS System 0.1.0
PACS DICOM system library
Loading...
Searching...
No Matches
kcenon::pacs::di::test::MockNetwork Class Reference

Mock network service for testing. More...

#include <test_support.h>

Inheritance diagram for kcenon::pacs::di::test::MockNetwork:
Inheritance graph
Collaboration diagram for kcenon::pacs::di::test::MockNetwork:
Collaboration graph

Public Member Functions

 MockNetwork ()=default
 
 ~MockNetwork () override=default
 
std::unique_ptr< network::dicom_servercreate_server (const network::server_config &config, const integration::tls_config &) override
 Create a DICOM server.
 
integration::Result< integration::network_adapter::session_ptrconnect (const integration::connection_config &config) override
 Connect to a remote DICOM peer.
 
integration::Result< integration::network_adapter::session_ptrconnect (const std::string &host, uint16_t port, std::chrono::milliseconds) override
 Connect to a remote DICOM peer (simplified)
 
std::size_t connection_attempt_count () const
 Get connection attempt count.
 
std::size_t server_creation_count () const
 Get server creation count.
 
void set_fail_connections (bool fail)
 Configure connections to fail.
 
void clear ()
 Clear call history.
 
- Public Member Functions inherited from kcenon::pacs::di::IDicomNetwork
virtual ~IDicomNetwork ()=default
 

Private Attributes

std::mutex mutex_
 
std::vector< std::pair< std::string, uint16_t > > connection_attempts_
 
std::vector< network::server_configserver_configs_
 
bool fail_connections_ = false
 

Additional Inherited Members

- Protected Member Functions inherited from kcenon::pacs::di::IDicomNetwork
 IDicomNetwork ()=default
 
 IDicomNetwork (const IDicomNetwork &)=default
 
IDicomNetworkoperator= (const IDicomNetwork &)=default
 
 IDicomNetwork (IDicomNetwork &&)=default
 
IDicomNetworkoperator= (IDicomNetwork &&)=default
 

Detailed Description

Mock network service for testing.

Provides a mock implementation of IDicomNetwork that records calls and can be configured to return specific results for testing.

Thread Safety: All methods are thread-safe.

Definition at line 186 of file test_support.h.

Constructor & Destructor Documentation

◆ MockNetwork()

kcenon::pacs::di::test::MockNetwork::MockNetwork ( )
default

◆ ~MockNetwork()

kcenon::pacs::di::test::MockNetwork::~MockNetwork ( )
overridedefault

Member Function Documentation

◆ clear()

void kcenon::pacs::di::test::MockNetwork::clear ( )
inline

Clear call history.

Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/di/test_support.h.

Definition at line 246 of file test_support.h.

246 {
247 std::lock_guard<std::mutex> lock(mutex_);
248 connection_attempts_.clear();
249 server_configs_.clear();
250 }
std::vector< std::pair< std::string, uint16_t > > connection_attempts_
std::vector< network::server_config > server_configs_

References connection_attempts_, mutex_, and server_configs_.

◆ connect() [1/2]

integration::Result< integration::network_adapter::session_ptr > kcenon::pacs::di::test::MockNetwork::connect ( const integration::connection_config & config)
inlinenodiscardoverridevirtual

Connect to a remote DICOM peer.

Parameters
configConnection configuration
Returns
Result containing session on success, or error message

Implements kcenon::pacs::di::IDicomNetwork.

Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/di/test_support.h.

Definition at line 202 of file test_support.h.

202 {
203 std::lock_guard<std::mutex> lock(mutex_);
204 connection_attempts_.push_back({config.host, config.port});
205
206 if (fail_connections_) {
207 return integration::error_info{"Connection refused (mock)"};
208 }
209
210 // Return nullptr session for mock
212 }
std::shared_ptr< dicom_session > session_ptr
Session pointer type.

References connection_attempts_, fail_connections_, kcenon::pacs::integration::connection_config::host, mutex_, and kcenon::pacs::integration::connection_config::port.

Referenced by connect().

Here is the caller graph for this function:

◆ connect() [2/2]

integration::Result< integration::network_adapter::session_ptr > kcenon::pacs::di::test::MockNetwork::connect ( const std::string & host,
uint16_t port,
std::chrono::milliseconds timeout )
inlinenodiscardoverridevirtual

Connect to a remote DICOM peer (simplified)

Parameters
hostRemote host address
portRemote port
timeoutConnection timeout
Returns
Result containing session on success, or error message

Implements kcenon::pacs::di::IDicomNetwork.

Definition at line 215 of file test_support.h.

216 {
217 integration::connection_config config;
218 config.host = host;
219 config.port = port;
220 return connect(config);
221 }
integration::Result< integration::network_adapter::session_ptr > connect(const integration::connection_config &config) override
Connect to a remote DICOM peer.

References connect(), kcenon::pacs::integration::connection_config::host, and kcenon::pacs::integration::connection_config::port.

Here is the call graph for this function:

◆ connection_attempt_count()

std::size_t kcenon::pacs::di::test::MockNetwork::connection_attempt_count ( ) const
inlinenodiscard

Get connection attempt count.

Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/di/test_support.h.

Definition at line 228 of file test_support.h.

228 {
229 std::lock_guard<std::mutex> lock(mutex_);
230 return connection_attempts_.size();
231 }

References connection_attempts_, and mutex_.

◆ create_server()

std::unique_ptr< network::dicom_server > kcenon::pacs::di::test::MockNetwork::create_server ( const network::server_config & config,
const integration::tls_config & tls_cfg )
inlinenodiscardoverridevirtual

Create a DICOM server.

Parameters
configServer configuration
tls_cfgOptional TLS configuration
Returns
Unique pointer to dicom_server, or nullptr on failure

Implements kcenon::pacs::di::IDicomNetwork.

Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/di/test_support.h.

Definition at line 191 of file test_support.h.

193 {
194 std::lock_guard<std::mutex> lock(mutex_);
195 server_configs_.push_back(config);
196
197 // Return nullptr for mock - actual server creation not needed in tests
198 return nullptr;
199 }

References mutex_, and server_configs_.

◆ server_creation_count()

std::size_t kcenon::pacs::di::test::MockNetwork::server_creation_count ( ) const
inlinenodiscard

Get server creation count.

Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/di/test_support.h.

Definition at line 234 of file test_support.h.

234 {
235 std::lock_guard<std::mutex> lock(mutex_);
236 return server_configs_.size();
237 }

References mutex_, and server_configs_.

◆ set_fail_connections()

void kcenon::pacs::di::test::MockNetwork::set_fail_connections ( bool fail)
inline

Configure connections to fail.

Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/di/test_support.h.

Definition at line 240 of file test_support.h.

240 {
241 std::lock_guard<std::mutex> lock(mutex_);
242 fail_connections_ = fail;
243 }

References fail_connections_, and mutex_.

Member Data Documentation

◆ connection_attempts_

std::vector<std::pair<std::string, uint16_t> > kcenon::pacs::di::test::MockNetwork::connection_attempts_
private

◆ fail_connections_

bool kcenon::pacs::di::test::MockNetwork::fail_connections_ = false
private

◆ mutex_

std::mutex kcenon::pacs::di::test::MockNetwork::mutex_
mutableprivate

◆ server_configs_

std::vector<network::server_config> kcenon::pacs::di::test::MockNetwork::server_configs_
private

The documentation for this class was generated from the following file: