blob: 2b3b21fd53a9759d7e238132c5672e2337bc5fdc (
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
use crate::calendars;
use crate::KhResult;
use structopt::StructOpt;
#[derive(Debug, StructOpt)]
pub struct GetArgs {
/// Show information about this
#[structopt(name = "query", raw(possible_values = "&GetQueryArgs::variants()"))]
pub query: GetQueryArgs,
}
arg_enum! {
#[derive(Debug)]
pub enum GetQueryArgs{
calendars,
}
}
pub fn action_get(args: &GetArgs) -> KhResult<()> {
match args.query {
GetQueryArgs::calendars => action_get_calendars(),
}
}
pub fn action_get_calendars() -> KhResult<()> {
for calendar in calendars::calendar_list() {
khprintln!("{}", calendar);
}
Ok(())
}
#[cfg(test)]
mod integration {
use super::*;
use crate::testutils;
use crate::utils::stdioutils;
#[test]
fn test_get_calendars() {
let _testdir = testutils::prepare_testdir("testdir_two_cals");
let args = GetArgs { query: GetQueryArgs::calendars };
action_get(&args).unwrap();
assert_eq!("first\nsecond\nsecond/second_sub\n", stdioutils::test_stdout_clear());
}
}
|