1 package com.lexicalscope.jewel.cli.examples;
2
3 import static com.lexicalscope.jewel.cli.CliFactory.createCli;
4 import static org.hamcrest.MatcherAssert.assertThat;
5 import static org.hamcrest.Matchers.containsString;
6
7 import org.junit.Test;
8
9 import com.lexicalscope.jewel.cli.CommandLineInterface;
10 import com.lexicalscope.jewel.cli.Option;
11 import com.lexicalscope.jewel.cli.OptionOrder;
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 public class TestHelpMessageOrder {
30 interface LexicographicOrder
31 {
32 @Option
33 int getB();
34
35 @Option
36 int getA();
37
38 @Option(helpRequest = true)
39 boolean getHelp();
40 }
41
42 @CommandLineInterface(order = OptionOrder.DEFINITION)
43 interface DefinitionOrder
44 {
45 @Option
46 int getB();
47
48 @Option
49 int getA();
50
51 @Option(helpRequest = true)
52 boolean getHelp();
53 }
54
55 @Test public void lexicographicOrderSupported()
56 {
57 assertThat(createCli(LexicographicOrder.class).getHelpMessage(), containsString(String.format("%s%n\t%s", "--a value", "--b value")));
58 }
59
60 @Test public void definitionOrderSupported()
61 {
62
63 assertThat(createCli(DefinitionOrder.class).getHelpMessage(), containsString("--a value"));
64 assertThat(createCli(DefinitionOrder.class).getHelpMessage(), containsString("--b value"));
65 }
66 }