pgs-files 0.0.7

Rust Library for handling /etc/{passwd,group,shadow} files
Documentation
extern crate pgs_files;

use std::path::Path;
use pgs_files::passwd;
use pgs_files::passwd::PasswdEntry;


#[test]
fn get_entry_by_uid_test() {
    let entry = passwd::get_entry_by_uid_from_path(&Path::new("testdata/passwd"), 0);
    assert!(entry.unwrap() == PasswdEntry {
        name: "root".to_string(),
        passwd: "x".to_string(),
        uid: 0,
        gid: 0,
        gecos: "root".to_string(),
        dir: "/root".to_string(),
        shell: "/bin/bash".to_string(),
     });

    let entry = passwd::get_entry_by_uid_from_path(&Path::new("testdata/passwd"), 1000);
    assert!(entry.unwrap() == PasswdEntry {
        name: "gary".to_string(),
        passwd: "x".to_string(),
        uid: 1000,
        gid: 1000,
        gecos: "Gary Josack,,,".to_string(),
        dir: "/home/gary".to_string(),
        shell: "/bin/bash".to_string(),
     });

    let entry = passwd::get_entry_by_uid_from_path(&Path::new("testdata/passwd"), 666);
    assert!(entry == None);

}


#[test]
fn get_entry_by_name_test() {
    let entry = passwd::get_entry_by_name_from_path(&Path::new("testdata/passwd"), "root");
    assert!(entry.unwrap() == PasswdEntry {
        name: "root".to_string(),
        passwd: "x".to_string(),
        uid: 0,
        gid: 0,
        gecos: "root".to_string(),
        dir: "/root".to_string(),
        shell: "/bin/bash".to_string(),
    });

    let entry = passwd::get_entry_by_name_from_path(&Path::new("testdata/passwd"), "gary");
    assert!(entry.unwrap() == PasswdEntry {
        name: "gary".to_string(),
        passwd: "x".to_string(),
        uid: 1000,
        gid: 1000,
        gecos: "Gary Josack,,,".to_string(),
        dir: "/home/gary".to_string(),
        shell: "/bin/bash".to_string(),
    });

    let entry = passwd::get_entry_by_name_from_path(&Path::new("testdata/passwd"), "zay");
    assert!(entry == None);

}


#[test]
fn get_all_entries_test() {
    let entries = passwd::get_all_entries_from_path(&Path::new("testdata/passwd"));
    let expected = vec![
        PasswdEntry {
            name: "root".to_string(),
            passwd: "x".to_string(),
            uid: 0,
            gid: 0,
            gecos: "root".to_string(),
            dir: "/root".to_string(),
            shell: "/bin/bash".to_string(),
        },
        PasswdEntry {
            name: "gary".to_string(),
            passwd: "x".to_string(),
            uid: 1000,
            gid: 1000,
            gecos: "Gary Josack,,,".to_string(),
            dir: "/home/gary".to_string(),
            shell: "/bin/bash".to_string(),
        },
    ];

    assert!(entries == expected);

}