1   package com.lexicalscope.jewel.cli.examples;
2   
3   import static org.junit.Assert.*;
4   
5   import java.io.File;
6   
7   import org.junit.Test;
8   
9   import com.lexicalscope.jewel.UtilitiesForTesting;
10  import com.lexicalscope.jewel.cli.ArgumentValidationException;
11  import com.lexicalscope.jewel.cli.Cli;
12  import com.lexicalscope.jewel.cli.CliFactory;
13  
14  public class TestRmExample {
15      @Test public void testRmExample() throws ArgumentValidationException {
16          final RmExample result0 = CliFactory.parseArguments(RmExample.class, new String[] { "-vrf", "./" });
17          assertTrue(result0.isRecursive());
18          assertTrue(result0.isVerbose());
19          assertTrue(result0.isForce());
20          assertFalse(result0.isHelp());
21          assertFalse(result0.isVersion());
22          assertFalse(result0.isInteractive());
23  
24          assertEquals(1, result0.getFiles().size());
25          assertEquals(new File("./"), result0.getFiles().get(0));
26      }
27  
28      @Test public void testRmExampleHelp() throws ArgumentValidationException {
29          final Cli<RmExample> result0 = CliFactory.createCli(RmExample.class);
30          assertEquals(
31                  UtilitiesForTesting.joinLines(
32                          "Usage: rm [options] FILE...",
33                          "\t[--force -f] : ignore nonexistent files, never prompt",
34                          "\t[--help] : display this help and exit",
35                          "\t[--interactive -i] : prompt before any removal",
36                          "\t[--recursive -r -R] : remove the contents of directories recursively",
37                          "\t[--directory -d] : unlink FILE, even if it is a non-empty directory (super-user only)",
38                          "\t[--verbose -v] : explain what is being done",
39                          "\t[--version] : output version information and exit"), result0.getHelpMessage());
40      }
41  }