Skip to content

Commit

Permalink
add test
Browse files Browse the repository at this point in the history
  • Loading branch information
MikailBag committed Aug 28, 2022
1 parent 7abcc1a commit d130d56
Showing 1 changed file with 47 additions and 0 deletions.
47 changes: 47 additions & 0 deletions kube-core/src/conversion.rs
Original file line number Diff line number Diff line change
Expand Up @@ -85,3 +85,50 @@ pub trait Converter {
desired_api_version: &str,
) -> Result<serde_json::Value, String>;
}

#[cfg(test)]
mod tests {
use crate::conversion::low_level::ConversionStatus;

use super::{Converter, low_level::{ConversionReview, META_API_VERSION_V1, META_KIND, ConversionRequest}, ConversionHandler};

struct NoopConverter;
impl Converter for NoopConverter {
fn convert(
&self,
object: serde_json::Value,
_desired_api_version: &str,
) -> Result<serde_json::Value, String> {
Ok(object)
}
}

#[test]
fn test_conversion_handler_upholds_contract() {
let obj1 = serde_json::json!({
"foo": true
});
let obj2 = serde_json::json!({
"bar": 6
});
let handler = ConversionHandler::new(NoopConverter);

let input = ConversionReview {
types: crate::TypeMeta { api_version: META_API_VERSION_V1.to_string(), kind: META_KIND.to_string() },
request: Some(ConversionRequest {
uid: "some-uid".to_string(),
desired_api_version: "doesnotmatter".to_string(),
objects: vec![obj1.clone(), obj2.clone()]
}),
response: None
};

let output = handler.handle(input);
assert_eq!(output.types.api_version, META_API_VERSION_V1);
assert_eq!(output.types.kind, META_KIND);
let resp = output.response.unwrap();
assert!(matches!(resp.result.status, Some(ConversionStatus::Success)));
assert!(resp.result.message.is_none());
assert_eq!(resp.converted_objects, Some(vec![obj1, obj2]));
}
}

0 comments on commit d130d56

Please sign in to comment.