mirror of
https://github.com/pcvolkmer/checkbar.git
synced 2025-04-19 11:06:50 +00:00
Add tests for http based checkers
This commit is contained in:
parent
8d312f86b5
commit
4684e482fa
1
Cargo.lock
generated
1
Cargo.lock
generated
@ -80,6 +80,7 @@ dependencies = [
|
|||||||
"async-trait",
|
"async-trait",
|
||||||
"chrono",
|
"chrono",
|
||||||
"dirs",
|
"dirs",
|
||||||
|
"hyper",
|
||||||
"regex",
|
"regex",
|
||||||
"reqwest",
|
"reqwest",
|
||||||
"serde",
|
"serde",
|
||||||
|
@ -17,6 +17,7 @@ tokio = { version = "1", features = ["macros", "rt-multi-thread"] }
|
|||||||
toml = "*"
|
toml = "*"
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
|
hyper = "*"
|
||||||
serde_derive = "1"
|
serde_derive = "1"
|
||||||
|
|
||||||
[profile.release]
|
[profile.release]
|
||||||
|
@ -36,3 +36,51 @@ impl HttpBasedChecker for Checker<'_> {
|
|||||||
self.check_config
|
self.check_config
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use crate::checker::actuator::Checker;
|
||||||
|
use crate::checker::{CheckState, HttpBasedChecker};
|
||||||
|
use hyper::Response as hyper_Response;
|
||||||
|
use reqwest::Response;
|
||||||
|
use serde_json::json;
|
||||||
|
|
||||||
|
#[tokio::test]
|
||||||
|
async fn test_should_return_up_state() {
|
||||||
|
let response = Response::from(
|
||||||
|
hyper_Response::builder()
|
||||||
|
.status(200)
|
||||||
|
.body(json!({"status":"UP"}).to_string())
|
||||||
|
.unwrap(),
|
||||||
|
);
|
||||||
|
let check_state = Checker::check_response(response).await;
|
||||||
|
|
||||||
|
assert_eq!(check_state, CheckState::Up)
|
||||||
|
}
|
||||||
|
|
||||||
|
#[tokio::test]
|
||||||
|
async fn test_should_return_warn_state_on_status_not_up() {
|
||||||
|
let response = Response::from(
|
||||||
|
hyper_Response::builder()
|
||||||
|
.status(200)
|
||||||
|
.body(json!({"status":"DOWN"}).to_string())
|
||||||
|
.unwrap(),
|
||||||
|
);
|
||||||
|
let check_state = Checker::check_response(response).await;
|
||||||
|
|
||||||
|
assert_eq!(check_state, CheckState::Warn)
|
||||||
|
}
|
||||||
|
|
||||||
|
#[tokio::test]
|
||||||
|
async fn test_should_return_warn_state_on_response_not_success() {
|
||||||
|
let response = Response::from(
|
||||||
|
hyper_Response::builder()
|
||||||
|
.status(404)
|
||||||
|
.body(String::from("Actuator Response Not Found"))
|
||||||
|
.unwrap(),
|
||||||
|
);
|
||||||
|
let check_state = Checker::check_response(response).await;
|
||||||
|
|
||||||
|
assert_eq!(check_state, CheckState::Warn)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -28,3 +28,37 @@ impl HttpBasedChecker for Checker<'_> {
|
|||||||
self.check_config
|
self.check_config
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use crate::checker::http::Checker;
|
||||||
|
use crate::checker::{CheckState, HttpBasedChecker};
|
||||||
|
use hyper::Response as hyper_Response;
|
||||||
|
use reqwest::Response;
|
||||||
|
|
||||||
|
#[tokio::test]
|
||||||
|
async fn test_should_return_up_state() {
|
||||||
|
let response = Response::from(
|
||||||
|
hyper_Response::builder()
|
||||||
|
.status(200)
|
||||||
|
.body("Any response")
|
||||||
|
.unwrap(),
|
||||||
|
);
|
||||||
|
let check_state = Checker::check_response(response).await;
|
||||||
|
|
||||||
|
assert_eq!(check_state, CheckState::Up)
|
||||||
|
}
|
||||||
|
|
||||||
|
#[tokio::test]
|
||||||
|
async fn test_should_return_warn_state_on_response_not_success() {
|
||||||
|
let response = Response::from(
|
||||||
|
hyper_Response::builder()
|
||||||
|
.status(404)
|
||||||
|
.body(String::from("Http Response Not Found"))
|
||||||
|
.unwrap(),
|
||||||
|
);
|
||||||
|
let check_state = Checker::check_response(response).await;
|
||||||
|
|
||||||
|
assert_eq!(check_state, CheckState::Warn)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -40,6 +40,7 @@ impl Display for CheckResult {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, PartialEq)]
|
||||||
pub enum CheckState {
|
pub enum CheckState {
|
||||||
Up,
|
Up,
|
||||||
Warn,
|
Warn,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user