#[cfg(test)]
mod create_delivery_tests {
use reqwest::StatusCode;
use uber_api::models::create_delivery::convert_status_to_message_create;
use super::*;
#[test]
fn test_convert_status_to_message_create_success() {
let result = convert_status_to_message_create(StatusCode::OK);
assert_eq!(result, "Success!");
}
#[test]
fn test_convert_status_to_message_create_duplicate_delivery() {
let result = convert_status_to_message_create(StatusCode::BAD_REQUEST);
assert!(result.contains("An active delivery like this already exists. A pointer to the other delivery is provided."));
}
#[test]
fn test_convert_status_to_message_create_invalid_params() {
let result = convert_status_to_message_create(StatusCode::BAD_REQUEST);
assert!(result.contains("The parameters of your request were invalid."));
}
#[test]
fn test_convert_status_to_message_create_unknown_location() {
let result = convert_status_to_message_create(StatusCode::BAD_REQUEST);
assert!(result.contains("The specified location was not understood."));
}
#[test]
fn test_convert_status_to_message_create_address_undeliverable() {
let result = convert_status_to_message_create(StatusCode::BAD_REQUEST);
assert!(result.contains("The specified location is not in a deliverable area."));
}
#[test]
fn test_convert_status_to_message_create_expired_quote() {
let result = convert_status_to_message_create(StatusCode::BAD_REQUEST);
assert!(result.contains("The price quote specified has expired."));
}
#[test]
fn test_convert_status_to_message_create_used_quote() {
let result = convert_status_to_message_create(StatusCode::BAD_REQUEST);
assert!(result.contains("The price quote specified has already been used."));
}
#[test]
fn test_convert_status_to_message_create_mismatched_price_quote() {
let result = convert_status_to_message_create(StatusCode::BAD_REQUEST);
assert!(result.contains("The price quote specified doesn’t match the delivery."));
}
#[test]
fn test_convert_status_to_message_create_missing_payment() {
let result = convert_status_to_message_create(StatusCode::BAD_REQUEST);
assert!(result.contains("Your account’s payment information has not been provided."));
}
#[test]
fn test_convert_status_to_message_create_pickup_ready_time_not_specified() {
let result = convert_status_to_message_create(StatusCode::BAD_REQUEST);
assert!(result.contains("Pickup ready time must be specified when passing in pickup/dropoff windows."));
}
#[test]
fn test_convert_status_to_message_create_pickup_window_too_small() {
let result = convert_status_to_message_create(StatusCode::BAD_REQUEST);
assert!(result.contains("The pickup window needs to be at least 10 minutes long."));
}
#[test]
fn test_convert_status_to_message_create_dropoff_deadline_too_early() {
let result = convert_status_to_message_create(StatusCode::BAD_REQUEST);
assert!(result.contains("The dropoff deadline needs to be at least 20 minutes after the dropoff ready time."));
}
#[test]
fn test_convert_status_to_message_create_dropoff_deadline_before_pickup_deadline() {
let result = convert_status_to_message_create(StatusCode::BAD_REQUEST);
assert!(result.contains("The dropoff deadline needs to be after the pickup deadline."));
}
#[test]
fn test_convert_status_to_message_create_dropoff_ready_after_pickup_deadline() {
let result = convert_status_to_message_create(StatusCode::BAD_REQUEST);
assert!(result.contains("The dropoff ready time needs to be at or before the pickup deadline."));
}
#[test]
fn test_bad_request_pickup_ready_too_early() {
let status = StatusCode::BAD_REQUEST;
status.set_canonical_reason(Some("pickup_ready_too_early"));
assert_eq!(convert_status_to_message_create(status), "The pickup ready time cannot be in the past.");
}
#[test]
fn test_bad_request_pickup_deadline_too_early() {
let status = StatusCode::BAD_REQUEST;
status.set_canonical_reason(Some("pickup_deadline_too_early"));
assert_eq!(convert_status_to_message_create(status), "The pickup deadline time needs to be at least 20 minutes from now.");
}
#[test]
fn test_bad_request_pickup_ready_too_late() {
let status = StatusCode::BAD_REQUEST;
status.set_canonical_reason(Some("pickup_ready_too_late"));
assert_eq!(convert_status_to_message_create(status), "The pickup ready time needs to be within the next 30 days.");
}
#[test]
fn test_payment_required_customer_suspended() {
let status = StatusCode::PAYMENT_REQUIRED;
status.set_canonical_reason(Some("customer_suspended"));
assert_eq!(convert_status_to_message_create(status), "Your account is passed due. Payment is required.");
}
#[test]
fn test_forbidden_customer_blocked() {
let status = StatusCode::FORBIDDEN;
status.set_canonical_reason(Some("customer_blocked"));
assert_eq!(convert_status_to_message_create(status), "Your account is not allowed to create deliveries.");
}
#[test]
fn test_unprocessable_entity_address_undeliverable_limited_couriers() {
let status = StatusCode::UNPROCESSABLE_ENTITY;
status.set_canonical_reason(Some("address_undeliverable_limited_couriers"));
assert_eq!(convert_status_to_message_create(status), "The specified location is not in a deliverable area at this time because all couriers are currently busy.");
}
#[test]
fn test_too_many_requests_customer_limited() {
let status = StatusCode::TOO_MANY_REQUESTS;
status.set_canonical_reason(Some("customer_limited"));
assert_eq!(convert_status_to_message_create(status), "Your account's limits have been exceeded.");
}
#[test]
fn test_internal_server_error_unknown_error() {
let status = StatusCode::INTERNAL_SERVER_ERROR;
status.set_canonical_reason(Some("unknown_error"));
assert_eq!(convert_status_to_message_create(status), "An unknown error happened.");
}
#[test]
fn test_unknown_status_code() {
let status = StatusCode::NOT_FOUND;
assert_eq!(convert_status_to_message_create(status), "Unknown status code.");
}
}