aboutsummaryrefslogtreecommitdiff
path: root/argparse/src/test_const.rs
blob: b12e3d80f139753a31fefa175f767bd038f4fe2c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
use parser::ArgumentParser;
use super::{PushConst};
use test_parser::{check_ok};


fn push_const(args: &[&str]) -> Vec<u32> {
    let mut res = vec!();
    {
        let mut ap = ArgumentParser::new();
        ap.refer(&mut res)
          .add_option(&["-o", "--one"], PushConst(1),
            "Add one to the list")
          .add_option(&["-t", "--two"], PushConst(2),
            "Add two to the list")
          .add_option(&["-3", "--three"], PushConst(3),
            "Add three to the list");
        check_ok(&ap,  args);
    }
    return res;
}

#[test]
fn test_push() {
    assert_eq!(push_const(&["./argparse_test"]), vec!());
    assert_eq!(push_const(&["./argparse_test", "--one"]), vec!(1));
    assert_eq!(push_const(&["./argparse_test", "-3"]), vec!(3));
    assert_eq!(push_const(&["./argparse_test", "-oo3tt"]), vec!(1, 1, 3, 2, 2));
}