use maptiler_cloud::errors::ArgumentError;
use maptiler_cloud::{Maptiler, TileRequest, TileSet};
use std::env;
#[tokio::test]
async fn get_tile() {
let api_key = env::var("MAPTILER_KEY").expect("Environment variable MAPTILER_KEY not set");
let maptiler = Maptiler::new(api_key).unwrap();
let tile_request = TileRequest::new(TileSet::Satellite, 0, 0, 0).unwrap();
let constructed = maptiler.create_request(tile_request);
let tile = constructed.execute().await.unwrap();
assert_eq!(&tile[0..3], &[0xFF, 0xD8, 0xFF]);
}
#[test]
fn zoom_low() {
let request_err =
TileRequest::new(TileSet::Outdoor, 0, 0, 2).expect_err("Invalid request succeeded");
assert_eq!(
request_err,
ArgumentError::ZoomTooSmall(2, TileSet::Outdoor, 5)
);
}
#[test]
fn zoom_high() {
let request_err =
TileRequest::new(TileSet::Satellite, 0, 0, 21).expect_err("Invalid request succeeded");
assert_eq!(
request_err,
ArgumentError::ZoomTooLarge(21, TileSet::Satellite, 20)
);
}
#[test]
fn x_high() {
let request_err =
TileRequest::new(TileSet::Satellite, 5, 0, 2).expect_err("Invalid request succeeded");
assert_eq!(request_err, ArgumentError::XTooLarge(5, 2, 4));
}
#[test]
fn y_high() {
let request_err =
TileRequest::new(TileSet::Satellite, 5, 10, 3).expect_err("Invalid request succeeded");
assert_eq!(request_err, ArgumentError::YTooLarge(10, 3, 8));
}