plex-api 0.0.2

Work in progress, not ready for any use. See github for details. Library for communication with Plex server.
Documentation
use crate::media_container::UsersMediaContainer;
use quick_xml::de::from_str;

#[test]
fn decode_users() {
    let s = r##"
<?xml version="1.0" encoding="UTF-8"?>
<MediaContainer friendlyName="myPlex" identifier="com.plexapp.plugins.myplex" machineIdentifier="19A4B805E9021" totalSize="2" size="2">
    <User id="8676063" title="18A0A7BD14ECC" thumb="https://plex.tv/users/0d9d14488439289a/avatar?c=1536695183" protected="0" home="1" allowSync="0" allowCameraUpload="0" allowChannels="0" allowTuners="0" allowSubtitleAdmin="0" filterAll="" filterMovies="contentRating=G" filterMusic="" filterPhotos="" filterTelevision="contentRating=TV-14" restricted="1">
        <Server id="5558593" serverId="8035121" machineIdentifier="271663AA23AC6" name="LED-Kremen-286" lastSeenAt="1547660334" numLibraries="2" allLibraries="1" owned="1" pending="0"/>
    </User>
    <User id="7393808" title="2CD87DC316A42" thumb="https://plex.tv/users/80dab310d314a591/avatar?c=1536616777" protected="0" home="1" allowSync="0" allowCameraUpload="0" allowChannels="0" allowTuners="0" allowSubtitleAdmin="0" filterAll="" filterMovies="" filterMusic="" filterPhotos="" filterTelevision="" restricted="1">
        <Server id="717069" serverId="7142016" machineIdentifier="2A61C4586017F" name="plex-test-docker-e1491b81-445d-47c5-af76-4e0dcaf518dc" lastSeenAt="1547068479" numLibraries="4" allLibraries="1" owned="1" pending="0"/>
    </User>
    <User id="3609362" title="15FDD85D4BED2" thumb="https://plex.tv/users/80bab310d314a595/avatar?c=1536616777" protected="0" home="1" allowSync="0" allowCameraUpload="0" allowChannels="0" allowTuners="0" allowSubtitleAdmin="0" filterAll="" filterMovies="" filterMusic="" filterPhotos="" filterTelevision="" restricted="1">
    </User>
</MediaContainer>
    "##;

    let mc = from_str::<UsersMediaContainer>(s);
    assert!(mc.is_ok(), "Unable to deserialize users: {:?}", mc.err());
}

#[cfg(feature = "test_connect_authenticated")]
#[tokio::test]
async fn decode_users_online() {
    use crate::MyPlexAccount;
    use std::env;
    let acc: Result<MyPlexAccount, _> = {
        let auth_token = env::var("PLEX_API_AUTH_TOKEN").expect("Auth token not specified");
        MyPlexAccount::by_token(&auth_token).await
    };
    assert!(acc.is_ok(), "Unable to authenticate");
    let users = acc.unwrap().get_users().await;
    assert!(users.is_ok(), "Unable to get users: {:?}", users.err());
}