steam-webapi-rust-sdk 0.0.9

Rust SDK for the Steam Web API: player profiles, owned games, stats/achievements, app catalog and news, and Dota 2 data, with built-in response caching
Documentation
use crate::{get_app_list, isteam_apps, util};

#[cfg(test)]

#[test]
fn test_make_api_call() {
    let response = isteam_apps::get_app_list::make_api_call();
    assert!(response.len()>0);
}

#[test]
fn test_parse_api_call_result() {
    let response = isteam_apps::get_app_list::make_api_call();
    let boxed_steam_app_list = isteam_apps::get_app_list::parse_api_call_result(response);
    assert!(boxed_steam_app_list.is_ok());

    let steam_app_list = boxed_steam_app_list.unwrap();

    assert!(steam_app_list.len()>0);
    let steam_app = steam_app_list.get(0).unwrap();
    assert!(steam_app.appid > 0);

    assert!(steam_app.name.len() > 0);

}

#[test]
fn test_get() {
    let mut cache_timestamp = 0;
    let boxed_metadata = std::fs::metadata(isteam_apps::get_app_list::get_resource_filepath());
    if boxed_metadata.is_ok() {
        let system_time = boxed_metadata.unwrap().modified().unwrap();
        cache_timestamp = util::as_unix_timestamp(system_time);
    }

    let boxed_steam_app_list = get_app_list();
    assert!(boxed_steam_app_list.is_ok());

    let steam_app_list = boxed_steam_app_list.unwrap();
    assert!(steam_app_list.len()>0);
    let steam_app = steam_app_list.get(0).unwrap();
    assert!(steam_app.appid > 0);

    assert!(steam_app.name.len() > 0);

    let mut latest_cache_timestamp = 0;
    let boxed_metadata = std::fs::metadata(isteam_apps::get_app_list::get_resource_filepath());
    if boxed_metadata.is_ok() {
        let system_time = boxed_metadata.unwrap().modified().unwrap();
        latest_cache_timestamp = util::as_unix_timestamp(system_time);
    }

    let cache_is_updated = latest_cache_timestamp > cache_timestamp;
    assert!(cache_is_updated);
}

#[test]
fn test_get_cached() {
    let steam_app_list = isteam_apps::get_app_list::get_cached().unwrap();

    assert!(steam_app_list.len()>0);
    let steam_app = steam_app_list.get(0).unwrap();
    assert!(steam_app.appid > 0);

    assert!(steam_app.name.len() > 0);
}

#[test]
fn test_method_name() {
    let method_name = isteam_apps::get_app_list::get_method_name();

    assert_eq!(method_name, "GetAppList".to_string());
}

#[test]
fn test_get_resource_filepath() {
    let resource_filepath = isteam_apps::get_app_list::get_resource_filepath();

    assert_eq!(resource_filepath, "steam-webapi-cache/ISteamApps-GetAppList-v2.json".to_string());
}

#[test]
fn test_get_api_url() {
    let api_url = isteam_apps::get_app_list::get_api_url();

    let steam_web_api_key = util::get_steam_web_api_key();
    let expected_api_url = ["https://api.steampowered.com/ISteamApps/GetAppList/v2?key=".to_string(), steam_web_api_key].join("");

    assert_eq!(api_url, expected_api_url.to_string());
}