#[cfg(test)]
use super::*;
#[derive(Deserialize, Serialize, Debug, Default, PartialEq, Eq)]
struct Player {
uuid: String
}
#[derive(Deserialize)]
struct OnePlayer {
player: Player
}
#[derive(Deserialize, Debug, Default, PartialEq, Eq)]
struct Players {
players: Vec<Player>
}
#[test]
fn req_create_complexe() {
let mut replace = HashMap::new();
replace.insert(
"_uuid".to_string(),
"8603f518-c2f1-407d-b019-90aa022e22bf".to_string(),
);
let ql_req: OnePlayer = Request::new("{ player(uuid: \"_uuid\") { uuid } }")
.prepare(replace)
.unwrap()
.send("https://api.utopia-server.com/")
.expect("WORKING ERROR");
assert_eq!(
Player {
uuid: "8603f518-c2f1-407d-b019-90aa022e22bf".to_string()
},
ql_req.player
)
}
#[test]
fn req_create_from_file() {
let ql_req: Players = Request::from_path("ql/request_player.query")
.unwrap()
.send("https://api.utopia-server.com/")
.expect("WORKING ERROR");
assert_eq!(
Players {
players: vec![
Player {
uuid: "d28e5f13-4b84-44ce-9d32-51f1b569adda".to_string()
},
Player {
uuid: "ddd122ed-232f-4d72-a8a7-2a722193de84".to_string()
},
Player {
uuid: "8603f518-c2f1-407d-b019-90aa022e22bf".to_string()
}
]
},
ql_req
);
}
#[test]
fn req_prepare_simple() {
let ql_req = Request::new("{ players { uuid } }")
.send::<Players>("https://api.utopia-server.com/")
.expect("WORKING ERROR");
assert_eq!(
Players {
players: vec![
Player {
uuid: "d28e5f13-4b84-44ce-9d32-51f1b569adda".to_string()
},
Player {
uuid: "ddd122ed-232f-4d72-a8a7-2a722193de84".to_string()
},
Player {
uuid: "8603f518-c2f1-407d-b019-90aa022e22bf".to_string()
}
]
},
ql_req
);
}
#[test]
fn req_simple_no_prepare() {
let ql_req: Players = Request::new("{ players { uuid }}")
.send("https://api.utopia-server.com/")
.expect("WORKING ERROR");
assert_eq!(
Player {
uuid: "d28e5f13-4b84-44ce-9d32-51f1b569adda".to_string()
},
ql_req.players[0]
);
}
#[test]
fn get_test() {
let ql_req = Request::new("{ players { uuid } }")
.get()
.ql_type(QlType::Mutation);
assert_eq!(Request {
ql_type: QlType::Mutation,
data: "{ players { uuid } }".to_string(),
prepared: false,
method: "GET".to_string()
}, ql_req);
}
#[test]
fn get_then_post_again() {
let ql_req = Request::new("{ players { uuid } }")
.get()
.post()
.ql_type(QlType::Subscribe);
assert_eq!(Request {
ql_type: QlType::Subscribe,
data: "{ players { uuid } }".to_string(),
prepared: false,
method: "POST".to_string()
}, ql_req);
}