TheMovieDB 0.1.0

A robust and idiomatic Rust API wrapper for The Movie Database (TMDb) v3 API.
Documentation
mod utils;
use TheMovieDB::base::TMDB;
use std::collections::HashMap;

#[test]
fn test_new() {
    let tmdb = TMDB::new();
    assert_eq!(tmdb.base_uri, "https://api.themoviedb.org/3");
    assert!(tmdb.session.is_none());
    assert!(tmdb.timeout.is_none());
    assert_eq!(tmdb.headers.get("Content-Type").unwrap(), "application/json");
    assert_eq!(tmdb.headers.get("Accept").unwrap(), "application/json");
    assert_eq!(tmdb.headers.get("Connection").unwrap(), "close");
    assert_eq!(tmdb.base_path, "");
    assert!(tmdb.urls.is_empty());
}

#[test]
fn test_get_path() {
    let mut tmdb = TMDB::new();
    tmdb.base_path = "movie".to_string();
    tmdb.urls.insert("info".to_string(), "/{id}".to_string());
    assert_eq!(tmdb._get_path("info"), "movie/{id}");
}

#[test]
fn test_get_complete_url() {
    let tmdb = TMDB::new();
    assert_eq!(tmdb._get_complete_url("movie/123"), "https://api.themoviedb.org/3/movie/123");
}

#[test]
fn test_get_params() {
    // Test case 1: API key is set
    unsafe { std::env::set_var("TMDB_API_KEY", "dummy_api_key"); }
    let tmdb = TMDB::new();
    let mut params = HashMap::new();
    let result = tmdb._get_params(&mut params);
    assert!(result.is_ok());
    assert_eq!(params.get("api_key").unwrap(), "dummy_api_key");
    unsafe { std::env::remove_var("TMDB_API_KEY"); } // Clean up

    // Test case 2: API key is not set
    let tmdb = TMDB::new();
    let mut params = HashMap::new();
    let result = tmdb._get_params(&mut params);
    assert!(result.is_err());
}