bitbucket_server_rs/api/
build_status.rs1use serde::{Deserialize, Serialize};
7
8#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
13pub enum BuildStatusState {
14 #[default]
16 #[serde(rename = "UNKNOWN")]
17 Unknown,
18
19 #[serde(rename = "SUCCESSFUL")]
21 Successful,
22
23 #[serde(rename = "FAILED")]
25 Failed,
26
27 #[serde(rename = "INPROGRESS")]
29 InProgress,
30
31 #[serde(rename = "CANCELLED")]
33 Cancelled,
34}
35
36impl From<String> for BuildStatusState {
37 fn from(value: String) -> Self {
47 match value.as_str() {
48 "UNKNOWN" => BuildStatusState::Unknown,
49 "SUCCESSFUL" => BuildStatusState::Successful,
50 "FAILED" => BuildStatusState::Failed,
51 "INPROGRESS" => BuildStatusState::InProgress,
52 "CANCELLED" => BuildStatusState::Cancelled,
53 _ => BuildStatusState::Unknown,
54 }
55 }
56}
57
58#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
62pub struct TestResults {
63 pub failed: u32,
65
66 pub successful: u32,
68
69 pub skipped: u32,
71}
72
73#[cfg(test)]
74mod tests {
75 use super::*;
76
77 #[test]
78 fn it_can_convert_string_to_state() {
79 let state = BuildStatusState::from("SUCCESSFUL".to_string());
80 assert_eq!(state, BuildStatusState::Successful);
81
82 let state = BuildStatusState::from("FAILED".to_string());
83 assert_eq!(state, BuildStatusState::Failed);
84
85 let state = BuildStatusState::from("INPROGRESS".to_string());
86 assert_eq!(state, BuildStatusState::InProgress);
87
88 let state = BuildStatusState::from("CANCELLED".to_string());
89 assert_eq!(state, BuildStatusState::Cancelled);
90
91 let state = BuildStatusState::from("UNKNOWN".to_string());
92 assert_eq!(state, BuildStatusState::Unknown);
93
94 let state = BuildStatusState::from("InVaLiD".to_string());
95 assert_eq!(state, BuildStatusState::Unknown);
96 } }