Skip to main content

rust_eureka/response/
application_response.rs

1use super::Application;
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, PartialEq, Serialize, Deserialize)]
5pub struct ApplicationResponse {
6    pub application: Application,
7}
8
9impl ApplicationResponse {
10    pub fn new(application: Application) -> ApplicationResponse {
11        ApplicationResponse { application }
12    }
13}
14
15#[cfg(test)]
16mod tests {
17    use super::super::instance::tests::{build_test_instance, build_test_instance_json};
18    use super::*;
19    use serde_json;
20
21    #[test]
22    fn test_application_response_serialization() {
23        let json = build_application_response_json();
24        let instance = build_test_instance();
25        let application: Application = Application {
26            name: "test_app".to_owned(),
27            instance: vec![instance],
28        };
29        let ar = ApplicationResponse::new(application);
30        let result = serde_json::to_string(&ar).unwrap();
31
32        //                let combined = json.chars().zip(result.chars());
33        //                for (a, b) in combined {
34        //                    print!("{}", b);
35        //                    assert_eq!(a, b);
36        //                }
37        assert_eq!(json, result);
38    }
39
40    #[test]
41    fn test_application_response_deserialization() {
42        let json = build_application_response_json();
43        let instance = build_test_instance();
44        let application: Application = Application {
45            name: "test_app".to_owned(),
46            instance: vec![instance],
47        };
48        let ar = ApplicationResponse::new(application);
49        let result = serde_json::from_str(&json).unwrap();
50        assert_eq!(ar, result);
51    }
52
53    fn build_application_response_json() -> String {
54        format!(
55            "{{\"application\":{{\"name\":\"test_app\",\"instance\":[{}]}}}}",
56            build_test_instance_json()
57        )
58    }
59}