userstyles 0.1.4

API bindings for userstyles.org.
Documentation
#![allow(non_snake_case)]

extern crate userstyles;

use userstyles::response::{Style, User};
use userstyles::get_style;

#[test]
fn with_invalid_id__is_error() {
    let too_big_id = 999_999;

    let response = get_style(too_big_id);

    assert!(response.is_err());
    if let Err(e) = response {
        assert_eq!(
            e,
            "Error during API request. Expected status '200' but got '410'"
        );
    }
}

#[test]
fn with_simple_style__is_complete_struct() {
    let id = 2;

    let mut expected_user = User::default();
    expected_user.id = 1;
    expected_user.name = String::from("JasonBarnabe");
    expected_user.email = Some(String::from("jason.barnabe@gmail.com"));
    expected_user.license = Some(String::from("publicdomain"));
    let mut expected_style = Style::default();
    expected_style.id = 2;
    expected_style.name = String::from("Go/History menu removal");
    expected_style.description = String::from(
        "Takes out the Go menu in Firefox 1.5 and the \
         History menu from Firefox 2.0. Vote for bug 313299!",
    );
    expected_style.user = expected_user;
    expected_style.updated = String::from("2006-02-10T20:57:16.000Z");
    expected_style.total_install_count = 717;
    expected_style.created = String::from("2006-02-10T20:57:16.000Z");
    expected_style.category = String::from("app");
    expected_style.subcategory = Some(String::from("browser"));
    expected_style.css = String::from(
        "@namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);\
         \r\n#go-menu { display: none;}",
    );

    let response = get_style(id);

    assert!(response.is_ok());
    assert_eq!(response.unwrap(), expected_style);
}