rust_eureka/response/
application_response.rs1use 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 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}