rust_eureka/response/
application_response.rs

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