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
29
30
31
32
33
34
35
36
37
mod args;
mod errors;
mod spec;

#[cfg(test)]
mod tests {
  use super::errors::*;
  use super::spec::*;

  #[test]
  fn spec_builder() {
    let arg_spec = ArgSpec::build()
      .boolean("b")
      .integer("n")
      .unsigned_integer("u")
      .string("name")
      .done();

    assert!(arg_spec.has_arg("b", ArgType::Boolean));
    assert!(arg_spec.has_arg("n", ArgType::Integer));
    assert!(arg_spec.has_arg("u", ArgType::UInteger));
    assert!(arg_spec.has_arg("name", ArgType::String));
    assert!(!arg_spec.has_arg("none", ArgType::Boolean));
  }

  #[test]
  fn parse() -> Result<()> {
    let parse = ArgSpec::build()
      .boolean("b")
      .integer("n")
      .unsigned_integer("u")
      .string("name")
      .parse()?;
    assert_eq!(parse.loan_args().len(), 0);
    Ok(())
  }
}