Monitoring System 0.1.0
System resource monitoring with pluggable collectors and alerting
Loading...
Searching...
No Matches
kcenon::monitoring::stub_http_transport Class Reference

Stub HTTP transport for testing. More...

#include <http_transport.h>

Inheritance diagram for kcenon::monitoring::stub_http_transport:
Inheritance graph
Collaboration diagram for kcenon::monitoring::stub_http_transport:
Collaboration graph

Public Member Functions

 stub_http_transport ()=default
 
void set_response_handler (std::function< http_response(const http_request &)> handler)
 Set custom response handler for testing.
 
void set_simulate_success (bool success)
 Set whether to simulate success or failure.
 
common::Result< http_responsesend (const http_request &request) override
 Send HTTP request and receive response.
 
bool is_available () const override
 Check if transport is available.
 
std::string name () const override
 Get transport name.
 
- Public Member Functions inherited from kcenon::monitoring::http_transport
virtual ~http_transport ()=default
 

Private Attributes

std::function< http_response(const http_request &)> response_handler_
 
bool simulate_success_ {true}
 

Detailed Description

Stub HTTP transport for testing.

This implementation simulates HTTP responses without actual network calls. Useful for unit testing and when network is unavailable.

Definition at line 85 of file http_transport.h.

Constructor & Destructor Documentation

◆ stub_http_transport()

kcenon::monitoring::stub_http_transport::stub_http_transport ( )
default

Member Function Documentation

◆ is_available()

bool kcenon::monitoring::stub_http_transport::is_available ( ) const
inlineoverridevirtual

Check if transport is available.

Implements kcenon::monitoring::http_transport.

Definition at line 125 of file http_transport.h.

125 {
126 return true;
127 }

◆ name()

std::string kcenon::monitoring::stub_http_transport::name ( ) const
inlineoverridevirtual

Get transport name.

Implements kcenon::monitoring::http_transport.

Definition at line 129 of file http_transport.h.

129 {
130 return "stub";
131 }

◆ send()

common::Result< http_response > kcenon::monitoring::stub_http_transport::send ( const http_request & request)
inlineoverridevirtual

Send HTTP request and receive response.

Implements kcenon::monitoring::http_transport.

Definition at line 107 of file http_transport.h.

107 {
108 if (response_handler_) {
109 return common::ok(response_handler_(request));
110 }
111
112 http_response response;
113 if (simulate_success_) {
114 response.status_code = 202; // Accepted
115 response.status_message = "Accepted";
116 } else {
117 response.status_code = 503; // Service Unavailable
118 response.status_message = "Service Unavailable";
119 }
120 response.elapsed = std::chrono::milliseconds(10);
121
122 return common::ok(response);
123 }
std::function< http_response(const http_request &)> response_handler_

References kcenon::monitoring::http_response::elapsed, response_handler_, simulate_success_, kcenon::monitoring::http_response::status_code, and kcenon::monitoring::http_response::status_message.

◆ set_response_handler()

void kcenon::monitoring::stub_http_transport::set_response_handler ( std::function< http_response(const http_request &)> handler)
inline

Set custom response handler for testing.

Definition at line 96 of file http_transport.h.

96 {
97 response_handler_ = std::move(handler);
98 }

References response_handler_.

◆ set_simulate_success()

void kcenon::monitoring::stub_http_transport::set_simulate_success ( bool success)
inline

Set whether to simulate success or failure.

Definition at line 103 of file http_transport.h.

References simulate_success_, and kcenon::monitoring::success.

Member Data Documentation

◆ response_handler_

std::function<http_response(const http_request&)> kcenon::monitoring::stub_http_transport::response_handler_
private

Definition at line 87 of file http_transport.h.

Referenced by send(), and set_response_handler().

◆ simulate_success_

bool kcenon::monitoring::stub_http_transport::simulate_success_ {true}
private

Definition at line 88 of file http_transport.h.

88{true};

Referenced by send(), and set_simulate_success().


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