/**
* Copyright (c) 2013-2016, The SeedStack authors <http://seedstack.org>
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
package org.seedstack.seed.cli;
import java.util.Map;
import static org.assertj.core.api.Assertions.assertThat;
@CliCommand("test")
public class SampleCommandLineHandler implements CommandLineHandler {
static boolean called = false;
@CliOption(name = "a")
private Boolean hasA;
@CliOption(name = "b", valueCount = 1)
private String b;
@CliOption(name = "P", valueCount = -1, valueSeparator = '=')
private Map<String, String> P1;
@CliOption(name = "P", valueCount = -1, valueSeparator = '=')
private String[] P2;
@CliOption(name = "A", valueCount = -1, mandatory = true, defaultValues = "2")
private String[] A1;
@CliOption(name = "A", valueCount = -1, mandatory = true, defaultValues = "2")
private String A2;
@CliOption(name = "B", valueCount = 2, mandatoryValue = true, defaultValues = {"2", "3"})
private String[] B;
@CliOption(name = "C", valueCount = 5)
private String[] C;
@CliOption(name = "D", valueCount = 5)
private String D;
@CliArgs(mandatoryCount = 1)
private String[] args;
@Override
public Integer call() throws Exception {
assertThat(hasA).isNotNull();
assertThat(hasA).isTrue();
assertThat(b).isNotNull();
assertThat(b).isEqualTo("babar");
assertThat(args).isNotNull();
assertThat(args).containsExactly("zob");
assertThat(P1).isNotNull();
assertThat(P1.get("key1")).isEqualTo("value1");
assertThat(P1.get("key2")).isEqualTo("value2");
assertThat(P2).isNotNull();
assertThat(P2).containsExactly("key1", "value1", "key2", "value2");
assertThat(A1).isNotNull();
assertThat(A1).containsExactly("5", "6", "7", "8", "5", "4", "5", "6");
assertThat(A2).isNotNull();
assertThat(A2).isEqualTo("5");
assertThat(B).isNotNull();
assertThat(B).containsExactly("2", "3");
assertThat(C).isNull();
assertThat(D).isNull();
called = true;
return 0;
}
}