You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by kl...@apache.org on 2017/05/01 23:06:29 UTC
[02/54] [abbrv] geode git commit: GEODE-1597: use Spring shell's
parser and delete our own parsing code
http://git-wip-us.apache.org/repos/asf/geode/blob/1fc0f0ca/geode-core/src/test/java/org/apache/geode/management/internal/cli/JoptOptionParserTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/JoptOptionParserTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/JoptOptionParserTest.java
deleted file mode 100644
index 9815a9c..0000000
--- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/JoptOptionParserTest.java
+++ /dev/null
@@ -1,527 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
- * agreements. See the NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the License. You may obtain a
- * copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- */
-package org.apache.geode.management.internal.cli;
-
-import static org.assertj.core.api.Assertions.*;
-import static org.mockito.Mockito.*;
-
-import java.util.ArrayList;
-import java.util.LinkedList;
-import java.util.List;
-
-import junitparams.JUnitParamsRunner;
-import junitparams.Parameters;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-import org.junit.runner.RunWith;
-
-import org.apache.geode.management.internal.cli.exceptions.CliCommandOptionException;
-import org.apache.geode.management.internal.cli.exceptions.CliCommandOptionMissingException;
-import org.apache.geode.management.internal.cli.exceptions.CliCommandOptionNotApplicableException;
-import org.apache.geode.management.internal.cli.parser.Argument;
-import org.apache.geode.management.internal.cli.parser.Option;
-import org.apache.geode.management.internal.cli.parser.OptionSet;
-import org.apache.geode.management.internal.cli.parser.jopt.JoptOptionParser;
-import org.apache.geode.test.junit.categories.UnitTest;
-
-@Category(UnitTest.class)
-@RunWith(JUnitParamsRunner.class)
-public class JoptOptionParserTest {
-
- private JoptOptionParser emptyOptionParser;
- private OptionSet emptyOptionSet;
-
- private Argument requiredArgument;
- private Argument optionalArgument;
-
- private Option requiredOption;
- private Option optionalOption;
-
- private JoptOptionParser simpleOptionParser;
- private JoptOptionParser exampleOptionParser;
-
- @Before
- public void setUp() throws Exception {
- this.emptyOptionParser = new JoptOptionParser();
- this.emptyOptionSet = new OptionSet();
- defineSimpleOptionParser();
- defineExampleOptionParser();
- }
-
- @Test
- public void getArgumentsIsEmptyByDefault() throws Exception {
- assertThat(this.emptyOptionParser.getArguments()).isEmpty();
- }
-
- @Test
- public void getOptionsIsNullByDefault() throws Exception {
- assertThat(this.emptyOptionParser.getOptions()).isNull();
- }
-
- @Test
- public void parseNullReturnsDefaultOptionSet() throws Exception {
- OptionSet optionSet = this.emptyOptionParser.parse(null);
- assertThat(optionSet.areArgumentsPresent()).isEqualTo(emptyOptionSet.areArgumentsPresent());
- assertThat(optionSet.areOptionsPresent()).isEqualTo(emptyOptionSet.areOptionsPresent());
- assertThat(optionSet.getNoOfSpacesRemoved()).isEqualTo(emptyOptionSet.getNoOfSpacesRemoved());
- assertThat(optionSet.getSplit()).isEqualTo(emptyOptionSet.getSplit());
- assertThat(optionSet.getNoOfSpacesRemoved()).isEqualTo(emptyOptionSet.getNoOfSpacesRemoved());
- assertThat(optionSet.getUserInput()).isEqualTo(""); // emptyOptionSet.getUserInput());
- assertThat(optionSet.getValue((Argument) null))
- .isEqualTo(emptyOptionSet.getValue((Argument) null));
- assertThat(optionSet.getValue((Option) null)).isEqualTo(emptyOptionSet.getValue((Option) null));
- }
-
- @Test
- public void parseEmptyThrowsNullPointerException() throws Exception {
- assertThatThrownBy(() -> this.emptyOptionParser.parse(""))
- .isInstanceOf(NullPointerException.class);
- }
-
- @Test
- public void setArgumentsShouldCreateCopy() throws Exception {
- Argument argument = mock(Argument.class);
- when(argument.isRequired()).thenReturn(true);
-
- LinkedList<Argument> arguments = new LinkedList<>();
- arguments.add(argument);
-
- this.emptyOptionParser.setArguments(arguments);
-
- assertThat(this.emptyOptionParser.getArguments()).isNotSameAs(arguments);
- assertThat(this.emptyOptionParser.getArguments()).hasSize(1);
-
- arguments.clear();
-
- assertThat(arguments).hasSize(0);
- assertThat(this.emptyOptionParser.getArguments()).hasSize(1);
- }
-
- @Test
- public void setArgumentsShouldKeepRequiredBeforeOptional() throws Exception {
- Argument requiredArgument1 = mock(Argument.class);
- when(requiredArgument1.isRequired()).thenReturn(true);
- Argument optionalArgument1 = mock(Argument.class);
- when(optionalArgument1.isRequired()).thenReturn(false);
-
- LinkedList<Argument> arguments = new LinkedList<>();
- arguments.add(requiredArgument1);
- arguments.add(optionalArgument1);
-
- this.emptyOptionParser.setArguments(arguments);
-
- LinkedList<Argument> argumentsReturned = this.emptyOptionParser.getArguments();
-
- assertThat(argumentsReturned).hasSize(2);
- assertThat(argumentsReturned.getFirst()).isSameAs(requiredArgument1);
- assertThat(argumentsReturned.getLast()).isSameAs(optionalArgument1);
- }
-
- @Test
- public void setArgumentsShouldMoveRequiredBeforeOptional() throws Exception {
- Argument requiredArgument1 = mock(Argument.class);
- when(requiredArgument1.isRequired()).thenReturn(true);
- Argument optionalArgument1 = mock(Argument.class);
- when(optionalArgument1.isRequired()).thenReturn(false);
-
- LinkedList<Argument> arguments = new LinkedList<>();
- arguments.add(optionalArgument1);
- arguments.add(requiredArgument1);
-
- this.emptyOptionParser.setArguments(arguments);
-
- LinkedList<Argument> argumentsReturned = this.emptyOptionParser.getArguments();
-
- assertThat(argumentsReturned).hasSize(2);
- assertThat(argumentsReturned.getFirst()).isSameAs(requiredArgument1);
- assertThat(argumentsReturned.getLast()).isSameAs(optionalArgument1);
- }
-
- @Test
- public void setOptionsShouldKeepSameInstance() throws Exception {
- Option option = mock(Option.class);
- ArrayList aggregate = new ArrayList<String>();
- aggregate.add("option");
- when(option.getAggregate()).thenReturn(aggregate);
- when(option.getHelp()).thenReturn("help text");
-
- LinkedList<Option> options = new LinkedList<>();
- options.add(option);
-
- this.emptyOptionParser.setOptions(options);
-
- assertThat(this.emptyOptionParser.getOptions()).isSameAs(options);
- assertThat(this.emptyOptionParser.getOptions()).hasSize(1);
-
- options.clear();
-
- assertThat(options).hasSize(0);
- assertThat(this.emptyOptionParser.getOptions()).hasSize(0);
- }
-
- @Test
- public void parseInputWithDefinedArgumentShouldWork() throws Exception {
- LinkedList<Argument> arguments = new LinkedList<>();
- LinkedList<Option> options = new LinkedList<>();
-
- arguments.add(this.requiredArgument);
-
- JoptOptionParser optionParser = new JoptOptionParser();
- optionParser.setArguments(arguments);
- optionParser.setOptions(options);
-
- OptionSet optionSet = optionParser.parse("command1 argument1_value");
- assertThat(optionSet.areArgumentsPresent()).isTrue();
- assertThat(optionSet.hasArgument(this.requiredArgument)).isTrue();
- }
-
- @Test
- public void parseInputWithOneArgumentShouldFindJustOneArgument() throws Exception {
- LinkedList<Argument> arguments = new LinkedList<>();
- LinkedList<Option> options = new LinkedList<>();
-
- arguments.add(this.requiredArgument);
-
- JoptOptionParser optionParser = new JoptOptionParser();
- optionParser.setArguments(arguments);
- optionParser.setOptions(options);
-
- OptionSet optionSet = optionParser.parse("command1 argument1_value");
- assertThat(optionSet.areArgumentsPresent()).isTrue();
- assertThat(optionSet.hasArgument(this.requiredArgument)).isTrue();
- assertThat(optionSet.hasArgument(this.optionalArgument)).isFalse();
- }
-
- @Test
- public void parseInputWithTwoArgumentsShouldFindTwoArguments() throws Exception {
- LinkedList<Argument> arguments = new LinkedList<>();
- LinkedList<Option> options = new LinkedList<>();
-
- arguments.add(this.requiredArgument);
- arguments.add(this.optionalArgument);
-
- JoptOptionParser optionParser = new JoptOptionParser();
- optionParser.setArguments(arguments);
- optionParser.setOptions(options);
-
- OptionSet optionSet = optionParser.parse("command1 argument1_value? argument2_value");
- assertThat(optionSet.areArgumentsPresent()).isTrue();
- assertThat(optionSet.hasArgument(this.requiredArgument)).isTrue();
- assertThat(optionSet.hasArgument(this.optionalArgument)).isTrue();
- }
-
- @Test
- public void parseInputWithUndefinedArgumentShouldNotThrow() throws Exception {
- LinkedList<Argument> arguments = new LinkedList<>();
- LinkedList<Option> options = new LinkedList<>();
-
- arguments.add(this.requiredArgument);
-
- JoptOptionParser optionParser = new JoptOptionParser();
- optionParser.setArguments(arguments);
- optionParser.setOptions(options);
-
- OptionSet optionSet = optionParser.parse("command1 argument1_value? argument2_value");
- assertThat(optionSet.getUserInput()).isEqualTo("command1 argument1_value? argument2_value");
- }
-
- @Test
- public void parseInputShouldIgnoreUndefinedOption() throws Exception {
- // one fix for GEODE-1598 has a side effect of preventing our detection of undefined options
- OptionSet optionSet =
- this.simpleOptionParser.parse("command1 argument1_value argument2_value --undefinedOption");
- assertThat(optionSet.areOptionsPresent()).isFalse();
- assertThat(optionSet.hasOption(this.requiredOption)).isFalse();
- assertThat(optionSet.hasOption(this.optionalOption)).isFalse();
- }
-
- @Test
- public void parseInputWithOneOptionShouldFindOneOption() throws Exception {
- OptionSet optionSet = this.simpleOptionParser.parse("command1 argument1_value --option1");
- assertThat(optionSet.areOptionsPresent()).isTrue();
- assertThat(optionSet.hasOption(this.requiredOption)).isTrue();
- assertThat(optionSet.hasOption(this.optionalOption)).isFalse();
- }
-
- @Test
- public void parseInputWithTwoOptionsShouldFindTwoOptions() throws Exception {
- OptionSet optionSet =
- this.simpleOptionParser.parse("command1 argument1_value --option1 --option2");
- assertThat(optionSet.areOptionsPresent()).isTrue();
- assertThat(optionSet.hasOption(this.requiredOption)).isTrue();
- assertThat(optionSet.hasOption(this.optionalOption)).isTrue();
- }
-
- @Test
- public void parseInputWithOptionWithValueShouldFindOption() throws Exception {
- OptionSet optionSet = this.simpleOptionParser.parse("command1 argument1_value --option1=value");
- assertThat(optionSet.areOptionsPresent()).isTrue();
- assertThat(optionSet.hasOption(this.requiredOption)).isTrue();
- }
-
- @Test
- public void parseInputWithOptionWithoutValueShouldFindOption() throws Exception {
- OptionSet optionSet = this.simpleOptionParser.parse("command1 argument1_value --option1");
- assertThat(optionSet.areOptionsPresent()).isTrue();
- assertThat(optionSet.hasOption(this.requiredOption)).isTrue();
- }
-
- @Test
- public void parseInputWithoutOptionShouldNotFindOptions() throws Exception {
- LinkedList<Argument> arguments = new LinkedList<>();
- LinkedList<Option> options = new LinkedList<>();
-
- arguments.add(this.requiredArgument);
-
- JoptOptionParser optionParser = new JoptOptionParser();
- optionParser.setArguments(arguments);
- optionParser.setOptions(options);
-
- OptionSet optionSet = optionParser.parse("command1 argument1_value");
- assertThat(optionSet.areOptionsPresent()).isFalse();
- assertThat(optionSet.hasOption(this.requiredOption)).isFalse();
- }
-
- @Test
- @Parameters(method = "exampleInputParameters")
- public void parseInputWithExampleInputParametesr(String command, boolean expectException,
- boolean hasArguments, boolean hasOptions) throws Exception {
- if (expectException) {
- assertThatThrownBy(() -> this.exampleOptionParser.parse(command))
- .isExactlyInstanceOf(CliCommandOptionMissingException.class);
- return;
- }
-
- OptionSet options = this.exampleOptionParser.parse(command);
- assertThat(options).isNotNull();
- assertThat(options.areArgumentsPresent()).isEqualTo(hasArguments);
- assertThat(options.areOptionsPresent()).isEqualTo(hasOptions);
- }
-
- private static Object[] exampleInputParameters() {
- return new Object[] {
- // 0
- new Object[] {" ARGUMENT1_VALUE —option1=somevalue", false, true, false},
- // 1
- new Object[] {" ARGUMENT1_VALUE? ARGUMENT2_VALUE -- ----------", false, true, false},
- // 2
- new Object[] {" --option1=value", false, false, true},
- // 3
- new Object[] {
- " ARGUMENT1_VALUE? ARGUMENT2_VALUE --option1=option1value --option2",
- false, true, true},
- // 4
- new Object[] {
- " ARGUMENT1_VALUE? ARGUMENT2_VALUE --option1=option1value --option2=option2value --option3=option3value",
- false, true, true},
- // 5
- new Object[] {
- " --string=string1 --stringArray=1,2 --stringArray=3,4 --stringList=11,12,13 --integer=10 --stringArray=5 --stringList=14,15",
- false, false, true},
- // 6
- new Object[] {" --stringArray=1,2 --stringArray='3,4'", false, false, true},
- // 7
- new Object[] {
- " --string=\"1\" --colonArray=2:3:4 --stringArray=5,\"6,7\",8 --stringList=\"9,10,11,12\"",
- false, false, true},
- // 8
- new Object[] {" --string=string1 --stringArray=1,2 --string=string2", false, false, true},
- // 9
- new Object[] {" this is just one argument?this is a second argument", false, true, false}};
- }
-
- private void defineSimpleOptionParser() {
- LinkedList<Argument> arguments = new LinkedList<Argument>();
- LinkedList<Option> options = new LinkedList<Option>();
-
- this.requiredArgument = mock(Argument.class);
- when(this.requiredArgument.getArgumentName()).thenReturn("argument1");
- when(this.requiredArgument.getContext()).thenReturn("context for argument1");
- when(this.requiredArgument.getHelp()).thenReturn("help for argument1");
- when(this.requiredArgument.isRequired()).thenReturn(true);
- arguments.add(this.requiredArgument);
-
- this.optionalArgument = mock(Argument.class);
- when(this.optionalArgument.getArgumentName()).thenReturn("argument2");
- when(this.optionalArgument.getContext()).thenReturn("context for argument2");
- when(this.optionalArgument.getHelp()).thenReturn("help for argument2");
- when(this.optionalArgument.isRequired()).thenReturn(false);
- when(this.optionalArgument.getUnspecifiedDefaultValue())
- .thenReturn("{unspecified default value for argument2}");
- when(this.optionalArgument.isSystemProvided()).thenReturn(false);
- arguments.add(this.optionalArgument);
-
- this.requiredOption = mock(Option.class);
- when(this.requiredOption.getLongOption()).thenReturn("--option1");
- List<String> aggregate = new ArrayList<>();
- aggregate.add("option1");
- when(this.requiredOption.getAggregate()).thenReturn(aggregate);
- when(this.requiredOption.getLongOption()).thenReturn("option1");
- when(this.requiredOption.getHelp()).thenReturn("help for option1");
- when(this.requiredOption.getValueSeparator()).thenReturn("=");
- when(this.requiredOption.isRequired()).thenReturn(true);
- assertThat(this.requiredOption.getAggregate()).isNotEmpty();
- options.add(this.requiredOption);
-
- this.optionalOption = mock(Option.class);
- when(this.optionalOption.getLongOption()).thenReturn("--option2");
- aggregate = new ArrayList<>();
- aggregate.add("option2");
- when(this.optionalOption.getAggregate()).thenReturn(aggregate);
- when(this.optionalOption.getLongOption()).thenReturn("option2");
- when(this.optionalOption.getHelp()).thenReturn("help for option2");
- when(this.optionalOption.getValueSeparator()).thenReturn("=");
- when(this.optionalOption.isRequired()).thenReturn(false);
- assertThat(this.optionalOption.getAggregate()).isNotEmpty();
- options.add(this.optionalOption);
-
- this.simpleOptionParser = new JoptOptionParser();
- this.simpleOptionParser.setArguments(arguments);
- this.simpleOptionParser.setOptions(options);
- }
-
- private void defineExampleOptionParser() {
- LinkedList<Argument> arguments = new LinkedList<Argument>();
- LinkedList<Option> options = new LinkedList<Option>();
-
- Argument argument1 = mock(Argument.class);
- when(argument1.getArgumentName()).thenReturn("argument1");
- when(argument1.getContext()).thenReturn("context for argument1");
- when(argument1.getHelp()).thenReturn("help for argument1");
- when(argument1.isRequired()).thenReturn(true);
- arguments.add(argument1);
-
- Argument argument2 = mock(Argument.class);
- when(argument2.getArgumentName()).thenReturn("argument2");
- when(argument2.getContext()).thenReturn("context for argument2");
- when(argument2.getHelp()).thenReturn("help for argument2");
- when(argument2.isRequired()).thenReturn(false);
- when(argument2.getUnspecifiedDefaultValue())
- .thenReturn("{unspecified default value for argument2}");
- when(argument2.isSystemProvided()).thenReturn(false);
- arguments.add(argument2);
-
- Argument argument3 = mock(Argument.class);
- when(argument3.getArgumentName()).thenReturn("argument3");
- when(argument3.getContext()).thenReturn("context for argument3");
- when(argument3.getHelp()).thenReturn("help for argument3");
- when(argument3.isRequired()).thenReturn(false);
- when(argument3.getUnspecifiedDefaultValue())
- .thenReturn("{unspecified default value for argument3}");
- when(argument2.isSystemProvided()).thenReturn(false);
- arguments.add(argument3);
-
- Option option1 = mock(Option.class);
- when(option1.getLongOption()).thenReturn("--option1");
- List<String> aggregate1 = new ArrayList<>();
- aggregate1.add("option1");
- when(option1.getAggregate()).thenReturn(aggregate1);
- when(option1.getLongOption()).thenReturn("option1");
- when(option1.getHelp()).thenReturn("help for option1");
- when(option1.getValueSeparator()).thenReturn("=");
- when(option1.isRequired()).thenReturn(false);
- assertThat(option1.getAggregate()).isNotEmpty();
- options.add(option1);
-
- Option option2 = mock(Option.class);
- when(option2.getLongOption()).thenReturn("--option2");
- List<String> aggregate2 = new ArrayList<>();
- aggregate2.add("option2");
- when(option2.getAggregate()).thenReturn(aggregate2);
- when(option2.getLongOption()).thenReturn("option2");
- when(option2.getHelp()).thenReturn("help for option2");
- when(option2.getValueSeparator()).thenReturn("=");
- when(option2.isRequired()).thenReturn(false);
- assertThat(option2.getAggregate()).isNotEmpty();
- options.add(option2);
-
- Option option3 = mock(Option.class);
- when(option3.getLongOption()).thenReturn("--option3");
- List<String> aggregate3 = new ArrayList<>();
- aggregate3.add("option3");
- when(option3.getAggregate()).thenReturn(aggregate3);
- when(option3.getLongOption()).thenReturn("option3");
- when(option3.getHelp()).thenReturn("help for option3");
- when(option3.getValueSeparator()).thenReturn("=");
- when(option3.isRequired()).thenReturn(false);
- assertThat(option3.getAggregate()).isNotEmpty();
- options.add(option3);
-
- Option stringOption = mock(Option.class);
- when(stringOption.getLongOption()).thenReturn("--string");
- List<String> aggregateStringOption = new ArrayList<>();
- aggregateStringOption.add("string");
- when(stringOption.getAggregate()).thenReturn(aggregateStringOption);
- when(stringOption.getLongOption()).thenReturn("string");
- when(stringOption.getHelp()).thenReturn("help for string");
- when(stringOption.getValueSeparator()).thenReturn("=");
- when(stringOption.isRequired()).thenReturn(false);
- assertThat(stringOption.getAggregate()).isNotEmpty();
- options.add(stringOption);
-
- Option stringArrayOption = mock(Option.class);
- when(stringArrayOption.getLongOption()).thenReturn("--stringArray");
- List<String> aggregateStringArrayOption = new ArrayList<>();
- aggregateStringArrayOption.add("stringArray");
- when(stringArrayOption.getAggregate()).thenReturn(aggregateStringArrayOption);
- when(stringArrayOption.getLongOption()).thenReturn("stringArray");
- when(stringArrayOption.getHelp()).thenReturn("help for stringArray");
- when(stringArrayOption.getValueSeparator()).thenReturn("=");
- when(stringArrayOption.isRequired()).thenReturn(false);
- assertThat(stringArrayOption.getAggregate()).isNotEmpty();
- options.add(stringArrayOption);
-
- Option stringListOption = mock(Option.class);
- when(stringListOption.getLongOption()).thenReturn("--stringList");
- List<String> aggregateStringListOption = new ArrayList<>();
- aggregateStringListOption.add("stringList");
- when(stringListOption.getAggregate()).thenReturn(aggregateStringListOption);
- when(stringListOption.getLongOption()).thenReturn("stringList");
- when(stringListOption.getHelp()).thenReturn("help for stringList");
- when(stringListOption.getValueSeparator()).thenReturn("=");
- when(stringListOption.isRequired()).thenReturn(false);
- assertThat(stringListOption.getAggregate()).isNotEmpty();
- options.add(stringListOption);
-
- Option integerOption = mock(Option.class);
- when(integerOption.getLongOption()).thenReturn("--integer");
- List<String> aggregateIntegerOption = new ArrayList<>();
- aggregateIntegerOption.add("integer");
- when(integerOption.getAggregate()).thenReturn(aggregateIntegerOption);
- when(integerOption.getLongOption()).thenReturn("integer");
- when(integerOption.getHelp()).thenReturn("help for integer");
- when(integerOption.getValueSeparator()).thenReturn("=");
- when(integerOption.isRequired()).thenReturn(false);
- assertThat(integerOption.getAggregate()).isNotEmpty();
- options.add(integerOption);
-
- Option colonArrayOption = mock(Option.class);
- when(colonArrayOption.getLongOption()).thenReturn("--colonArray");
- List<String> aggregateColonArrayOption = new ArrayList<>();
- aggregateColonArrayOption.add("colonArray");
- when(colonArrayOption.getAggregate()).thenReturn(aggregateColonArrayOption);
- when(colonArrayOption.getLongOption()).thenReturn("colonArray");
- when(colonArrayOption.getHelp()).thenReturn("help for colonArray");
- when(colonArrayOption.getValueSeparator()).thenReturn("=");
- when(colonArrayOption.isRequired()).thenReturn(false);
- assertThat(colonArrayOption.getAggregate()).isNotEmpty();
- options.add(colonArrayOption);
-
- this.exampleOptionParser = new JoptOptionParser();
- this.exampleOptionParser.setArguments(arguments);
- this.exampleOptionParser.setOptions(options);
- }
-}
http://git-wip-us.apache.org/repos/asf/geode/blob/1fc0f0ca/geode-core/src/test/java/org/apache/geode/management/internal/cli/annotations/CliArgumentJUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/annotations/CliArgumentJUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/annotations/CliArgumentJUnitTest.java
deleted file mode 100644
index 161f7c6..0000000
--- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/annotations/CliArgumentJUnitTest.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
- * agreements. See the NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the License. You may obtain a
- * copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- */
-package org.apache.geode.management.internal.cli.annotations;
-
-import static org.junit.Assert.*;
-
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import org.apache.geode.management.internal.cli.annotation.CliArgument;
-import org.apache.geode.test.junit.categories.UnitTest;
-
-/**
- * Includes tests for checking assignment of {@link CliArgument}
- */
-@Category(UnitTest.class)
-public class CliArgumentJUnitTest {
-
- private static final String ARGUMENT_NAME = "ARGUMENT_NAME";
- private static final String ARGUMENT_HELP = "ARGUMENT_HELP";
- private static final boolean ARGUMENT_MANDATORY = true;
- private static final String ARGUMENT_CONTEXT = "ARGUMENT_CONTEXT";
- private static final boolean SYSTEM_PROVIDED = true;
- private static final String ARGUMENT_UNSPECIFIED_DEFAULT_VALUE =
- "ARGUMENT_UNSPECIFIED_DEFAULT_VALUE";
- private static final String MESSAGE_FOR_DEFAULT_ARGUMENT = "Testing for argument with defaults";
- private static final String MESSAGE_FOR_ARGUMENT = "Testing for argument without defaults";
-
- /**
- * Test for {@link CliArgument#name()}
- */
- @Test
- public void testName() throws Exception {
- String name = ((CliArgument) (ArgumentTestingClass.class
- .getMethod("defaultArgumentTestingMethod", String.class).getParameterAnnotations()[0][0]))
- .name();
- assertNotNull(name);
- assertEquals(MESSAGE_FOR_DEFAULT_ARGUMENT, name, ARGUMENT_NAME);
- name = ((CliArgument) (ArgumentTestingClass.class
- .getMethod("argumentTestingMethod", String.class).getParameterAnnotations()[0][0])).name();
- assertNotNull(name);
- assertEquals(MESSAGE_FOR_ARGUMENT, name, ARGUMENT_NAME);
- }
-
- /**
- * Test for {@link CliArgument#help()}
- */
- @Test
- public void testHelp() throws Exception {
- String help = ((CliArgument) (ArgumentTestingClass.class
- .getMethod("defaultArgumentTestingMethod", String.class).getParameterAnnotations()[0][0]))
- .help();
- assertNotNull(help);
- assertEquals(MESSAGE_FOR_DEFAULT_ARGUMENT, help, "");
- help = ((CliArgument) (ArgumentTestingClass.class
- .getMethod("argumentTestingMethod", String.class).getParameterAnnotations()[0][0])).help();
- assertNotNull(help);
- assertEquals(MESSAGE_FOR_ARGUMENT, help, ARGUMENT_HELP);
- }
-
- /**
- * Test for {@link CliArgument#mandatory()}
- */
- @Test
- public void testMandatory() throws Exception {
- boolean mandatory = ((CliArgument) (ArgumentTestingClass.class
- .getMethod("defaultArgumentTestingMethod", String.class).getParameterAnnotations()[0][0]))
- .mandatory();
- assertEquals(MESSAGE_FOR_DEFAULT_ARGUMENT, mandatory, false);
- mandatory =
- ((CliArgument) (ArgumentTestingClass.class.getMethod("argumentTestingMethod", String.class)
- .getParameterAnnotations()[0][0])).mandatory();
- assertEquals(MESSAGE_FOR_ARGUMENT, mandatory, ARGUMENT_MANDATORY);
- }
-
- /**
- * Test for {@link CliArgument#argumentContext()}
- */
- @Test
- public void testArgumentContext() throws Exception {
- String argumentContext = ((CliArgument) (ArgumentTestingClass.class
- .getMethod("defaultArgumentTestingMethod", String.class).getParameterAnnotations()[0][0]))
- .argumentContext();
- assertNotNull(argumentContext);
- assertEquals(MESSAGE_FOR_DEFAULT_ARGUMENT, argumentContext, "");
- argumentContext =
- ((CliArgument) (ArgumentTestingClass.class.getMethod("argumentTestingMethod", String.class)
- .getParameterAnnotations()[0][0])).argumentContext();
- assertNotNull(argumentContext);
- assertEquals(MESSAGE_FOR_ARGUMENT, argumentContext, ARGUMENT_CONTEXT);
- }
-
- /**
- * Test for {@link CliArgument#systemProvided()}
- */
- @Test
- public void testSystemProvided() throws Exception {
- boolean systemProvided = ((CliArgument) (ArgumentTestingClass.class
- .getMethod("defaultArgumentTestingMethod", String.class).getParameterAnnotations()[0][0]))
- .systemProvided();
- assertEquals(MESSAGE_FOR_DEFAULT_ARGUMENT, systemProvided, false);
- systemProvided =
- ((CliArgument) (ArgumentTestingClass.class.getMethod("argumentTestingMethod", String.class)
- .getParameterAnnotations()[0][0])).systemProvided();
- assertEquals(MESSAGE_FOR_ARGUMENT, systemProvided, SYSTEM_PROVIDED);
- }
-
- /**
- * Test for {@link CliArgument#unspecifiedDefaultValue()}
- */
- @Test
- public void testUnspecifiedDefaultValue() throws Exception {
- String unspecifiedDefaultValue = ((CliArgument) (ArgumentTestingClass.class
- .getMethod("defaultArgumentTestingMethod", String.class).getParameterAnnotations()[0][0]))
- .unspecifiedDefaultValue();
- assertEquals(MESSAGE_FOR_DEFAULT_ARGUMENT, unspecifiedDefaultValue, "__NULL__");
- unspecifiedDefaultValue =
- ((CliArgument) (ArgumentTestingClass.class.getMethod("argumentTestingMethod", String.class)
- .getParameterAnnotations()[0][0])).unspecifiedDefaultValue();
- assertEquals(MESSAGE_FOR_ARGUMENT, unspecifiedDefaultValue, ARGUMENT_UNSPECIFIED_DEFAULT_VALUE);
- }
-
- /**
- * Class used by the tests
- */
- private static class ArgumentTestingClass {
-
- @SuppressWarnings("unused")
- public static Object defaultArgumentTestingMethod(
- @CliArgument(name = ARGUMENT_NAME) String defaultArgument) {
- return null;
- }
-
- @SuppressWarnings("unused")
- public static Object argumentTestingMethod(
- @CliArgument(name = ARGUMENT_NAME, help = ARGUMENT_HELP, mandatory = ARGUMENT_MANDATORY,
- argumentContext = ARGUMENT_CONTEXT, systemProvided = SYSTEM_PROVIDED,
- unspecifiedDefaultValue = ARGUMENT_UNSPECIFIED_DEFAULT_VALUE) String argument) {
- return null;
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/geode/blob/1fc0f0ca/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CliCommandTestBase.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CliCommandTestBase.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CliCommandTestBase.java
index 165f664..afdb706 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CliCommandTestBase.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CliCommandTestBase.java
@@ -32,7 +32,6 @@ import org.apache.geode.management.ManagementService;
import org.apache.geode.management.internal.cli.CommandManager;
import org.apache.geode.management.internal.cli.HeadlessGfsh;
import org.apache.geode.management.internal.cli.i18n.CliStrings;
-import org.apache.geode.management.internal.cli.parser.CommandTarget;
import org.apache.geode.management.internal.cli.result.CommandResult;
import org.apache.geode.management.internal.cli.shell.Gfsh;
import org.apache.geode.management.internal.cli.util.CommandStringBuilder;
@@ -43,42 +42,61 @@ import org.apache.geode.test.dunit.cache.internal.JUnit4CacheTestCase;
import org.apache.geode.test.dunit.rules.DistributedRestoreSystemProperties;
import org.junit.Rule;
import org.junit.rules.TemporaryFolder;
+import org.springframework.shell.core.CommandMarker;
import java.io.IOException;
import java.io.PrintStream;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Map;
+import java.util.List;
import java.util.Properties;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* Base class for all the CLI/gfsh command dunit tests.
- *
+ *
* @deprecated use LocatorServerStartupRule and GfshShellConnectorRule instead.
*/
public abstract class CliCommandTestBase extends JUnit4CacheTestCase {
public static final String USE_HTTP_SYSTEM_PROPERTY = "useHTTP";
-
- private boolean useHttpOnConnect = Boolean.getBoolean(USE_HTTP_SYSTEM_PROPERTY);
-
- private ManagementService managementService;
-
- private transient HeadlessGfsh shell;
-
+ @Rule
+ public transient DistributedRestoreSystemProperties restoreSystemProperties =
+ new DistributedRestoreSystemProperties();
+ @Rule
+ public transient TemporaryFolder temporaryFolder = new TemporaryFolder();
protected transient int httpPort;
protected transient int jmxPort;
protected transient String jmxHost;
protected transient String gfshDir;
+ private boolean useHttpOnConnect = Boolean.getBoolean(USE_HTTP_SYSTEM_PROPERTY);
+ private ManagementService managementService;
+ private transient HeadlessGfsh shell;
- @Rule
- public transient DistributedRestoreSystemProperties restoreSystemProperties =
- new DistributedRestoreSystemProperties();
+ public static boolean checkIfCommandsAreLoadedOrNot() {
+ CommandManager manager = new CommandManager();
+ List<CommandMarker> commands = manager.getCommandMarkers();
+ return commands.size() >= 1;
- @Rule
- public transient TemporaryFolder temporaryFolder = new TemporaryFolder();
+ }
+
+ protected static String commandResultToString(final CommandResult commandResult) {
+ assertNotNull(commandResult);
+
+ commandResult.resetToFirstLine();
+
+ StringBuilder buffer = new StringBuilder(commandResult.getHeader());
+
+ while (commandResult.hasNextLine()) {
+ buffer.append(commandResult.nextLine());
+ }
+
+ buffer.append(commandResult.getFooter());
+
+ return buffer.toString();
+ }
@Override
public final void postSetUp() throws Exception {
@@ -204,20 +222,6 @@ public abstract class CliCommandTestBase extends JUnit4CacheTestCase {
assertTrue(checkIfCommandsAreLoadedOrNot());
}
- public static boolean checkIfCommandsAreLoadedOrNot() {
- CommandManager manager;
- try {
- manager = CommandManager.getInstance();
- Map<String, CommandTarget> commands = manager.getCommands();
- if (commands.size() < 1) {
- return false;
- }
- return true;
- } catch (ClassNotFoundException | IOException e) {
- throw new RuntimeException("Could not load commands", e);
- }
- }
-
/**
* Stop the default management service.
*/
@@ -353,15 +357,6 @@ public abstract class CliCommandTestBase extends JUnit4CacheTestCase {
protected CommandResult executeCommandWithoutClear(HeadlessGfsh shell, String command) {
assert (shell != null);
assert (command != null);
-
- try {
- info("Executing command " + command + " with command Mgr " + CommandManager.getInstance());
- } catch (ClassNotFoundException cnfex) {
- throw new AssertionError(cnfex);
- } catch (IOException ioex) {
- throw new AssertionError(ioex);
- }
-
shell.executeCommand(command);
if (shell.hasError()) {
error("executeCommand completed with error : " + shell.getError());
@@ -396,22 +391,6 @@ public abstract class CliCommandTestBase extends JUnit4CacheTestCase {
printStream.print(commandResultToString(commandResult));
}
- protected static String commandResultToString(final CommandResult commandResult) {
- assertNotNull(commandResult);
-
- commandResult.resetToFirstLine();
-
- StringBuilder buffer = new StringBuilder(commandResult.getHeader());
-
- while (commandResult.hasNextLine()) {
- buffer.append(commandResult.nextLine());
- }
-
- buffer.append(commandResult.getFooter());
-
- return buffer.toString();
- }
-
/**
* Utility method for finding the CommandResult object in the Map of CommandOutput objects.
*
http://git-wip-us.apache.org/repos/asf/geode/blob/1fc0f0ca/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CreateAlterDestroyRegionCommandsDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CreateAlterDestroyRegionCommandsDUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CreateAlterDestroyRegionCommandsDUnitTest.java
index 5f885e1..791e02b 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CreateAlterDestroyRegionCommandsDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CreateAlterDestroyRegionCommandsDUnitTest.java
@@ -906,11 +906,7 @@ public class CreateAlterDestroyRegionCommandsDUnitTest extends CliCommandTestBas
CommandStringBuilder commandStringBuilder = new CommandStringBuilder(CliStrings.ALTER_REGION);
commandStringBuilder.addOption(CliStrings.ALTER_REGION__REGION, "/" + this.alterRegionName);
commandStringBuilder.addOption(CliStrings.ALTER_REGION__CACHELISTENER,
- "com.cadrdunit.RegionAlterCacheListenerA");
- commandStringBuilder.addOption(CliStrings.ALTER_REGION__CACHELISTENER,
- "com.cadrdunit.RegionAlterCacheListenerB");
- commandStringBuilder.addOption(CliStrings.ALTER_REGION__CACHELISTENER,
- "com.cadrdunit.RegionAlterCacheListenerC");
+ "com.cadrdunit.RegionAlterCacheListenerA,com.cadrdunit.RegionAlterCacheListenerB,com.cadrdunit.RegionAlterCacheListenerC");
cmdResult = executeCommand(commandStringBuilder.toString());
assertEquals(Result.Status.OK, cmdResult.getStatus());
http://git-wip-us.apache.org/repos/asf/geode/blob/1fc0f0ca/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/DeployCommandsDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/DeployCommandsDUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/DeployCommandsDUnitTest.java
index 9ed5bed..3a88faa 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/DeployCommandsDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/DeployCommandsDUnitTest.java
@@ -18,16 +18,13 @@ import static org.apache.geode.distributed.ConfigurationProperties.GROUPS;
import static org.apache.geode.test.dunit.Host.getHost;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
-import static org.junit.Assert.assertNotNull;
import org.apache.geode.internal.ClassBuilder;
import org.apache.geode.internal.ClassPathLoader;
import org.apache.geode.management.internal.cli.result.CommandResult;
import org.apache.geode.test.dunit.rules.GfshShellConnectionRule;
-import org.apache.geode.test.dunit.rules.Locator;
import org.apache.geode.test.dunit.rules.LocatorServerStartupRule;
import org.apache.geode.test.dunit.rules.MemberVM;
-import org.apache.geode.test.dunit.rules.Server;
import org.apache.geode.test.junit.categories.DistributedTest;
import org.junit.Before;
import org.junit.Rule;
@@ -213,7 +210,7 @@ public class DeployCommandsDUnitTest implements Serializable {
});
gfshConnector
- .executeAndVerifyCommand("undeploy --jars=" + jar3.getName() + "," + jar4.getName());
+ .executeAndVerifyCommand("undeploy --jar=" + jar3.getName() + "," + jar4.getName());
server1.invoke(() -> {
assertThatCannotLoad(jarName3, class3);
assertThatCannotLoad(jarName4, class4);
@@ -239,10 +236,10 @@ public class DeployCommandsDUnitTest implements Serializable {
@Test
public void testListDeployed() throws Exception {
// Deploy a couple of JAR files which can be listed
- gfshConnector.executeAndVerifyCommand(
- "deploy jar --group=" + GROUP1 + " --jar=" + jar1.getCanonicalPath());
- gfshConnector.executeAndVerifyCommand(
- "deploy jar --group=" + GROUP2 + " --jar=" + jar2.getCanonicalPath());
+ gfshConnector
+ .executeAndVerifyCommand("deploy --group=" + GROUP1 + " --jar=" + jar1.getCanonicalPath());
+ gfshConnector
+ .executeAndVerifyCommand("deploy --group=" + GROUP2 + " --jar=" + jar2.getCanonicalPath());
// List for all members
gfshConnector.executeAndVerifyCommand("list deployed");
http://git-wip-us.apache.org/repos/asf/geode/blob/1fc0f0ca/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/DiskStoreCommandsDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/DiskStoreCommandsDUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/DiskStoreCommandsDUnitTest.java
index 5b07f28..e9c61c5 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/DiskStoreCommandsDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/DiskStoreCommandsDUnitTest.java
@@ -1190,9 +1190,7 @@ public class DiskStoreCommandsDUnitTest extends CliCommandTestBase {
commandStringBuilder.addOption(CliStrings.CREATE_DISK_STORE__TIME_INTERVAL, "2023");
commandStringBuilder.addOption(CliStrings.CREATE_DISK_STORE__WRITE_BUFFER_SIZE, "3110");
commandStringBuilder.addOption(CliStrings.CREATE_DISK_STORE__DIRECTORY_AND_SIZE,
- diskStore1Dir1.getAbsolutePath() + "#1452637463");
- commandStringBuilder.addOption(CliStrings.CREATE_DISK_STORE__DIRECTORY_AND_SIZE,
- diskStore1Dir2.getAbsolutePath());
+ diskStore1Dir1.getAbsolutePath() + "#1452637463," + diskStore1Dir2.getAbsolutePath());
cmdResult = executeCommand(commandStringBuilder.toString());
assertEquals(Result.Status.OK, cmdResult.getStatus());
String stringResult = commandResultToString(cmdResult);
http://git-wip-us.apache.org/repos/asf/geode/blob/1fc0f0ca/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/GemfireDataCommandsDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/GemfireDataCommandsDUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/GemfireDataCommandsDUnitTest.java
index e99a7fb..0e2a41e 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/GemfireDataCommandsDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/GemfireDataCommandsDUnitTest.java
@@ -14,34 +14,23 @@
*/
package org.apache.geode.management.internal.cli.commands;
-import static org.apache.geode.distributed.ConfigurationProperties.*;
-import static org.apache.geode.test.dunit.Assert.*;
-import static org.apache.geode.test.dunit.IgnoredException.*;
-import static org.apache.geode.test.dunit.LogWriterUtils.*;
-import static org.apache.geode.test.dunit.Wait.*;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Random;
-import java.util.Set;
-import java.util.concurrent.atomic.AtomicInteger;
-
-import org.apache.geode.cache.CacheListener;
-import org.apache.geode.cache.EntryEvent;
-import org.apache.geode.cache.util.CacheListenerAdapter;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
+import static org.apache.geode.distributed.ConfigurationProperties.NAME;
+import static org.apache.geode.test.dunit.Assert.assertEquals;
+import static org.apache.geode.test.dunit.Assert.assertFalse;
+import static org.apache.geode.test.dunit.Assert.assertNotEquals;
+import static org.apache.geode.test.dunit.Assert.assertNotNull;
+import static org.apache.geode.test.dunit.Assert.assertNotSame;
+import static org.apache.geode.test.dunit.Assert.assertTrue;
+import static org.apache.geode.test.dunit.Assert.fail;
+import static org.apache.geode.test.dunit.IgnoredException.addIgnoredException;
+import static org.apache.geode.test.dunit.LogWriterUtils.getLogWriter;
+import static org.apache.geode.test.dunit.Wait.waitForCriterion;
import org.apache.geode.cache.Cache;
import org.apache.geode.cache.CacheFactory;
+import org.apache.geode.cache.CacheListener;
import org.apache.geode.cache.DataPolicy;
+import org.apache.geode.cache.EntryEvent;
import org.apache.geode.cache.PartitionAttributes;
import org.apache.geode.cache.PartitionAttributesFactory;
import org.apache.geode.cache.Region;
@@ -51,6 +40,7 @@ import org.apache.geode.cache.query.QueryInvalidException;
import org.apache.geode.cache.query.data.Portfolio;
import org.apache.geode.cache.query.internal.CompiledValue;
import org.apache.geode.cache.query.internal.QCompiler;
+import org.apache.geode.cache.util.CacheListenerAdapter;
import org.apache.geode.distributed.DistributedMember;
import org.apache.geode.internal.cache.GemFireCacheImpl;
import org.apache.geode.internal.lang.StringUtils;
@@ -84,6 +74,21 @@ import org.apache.geode.test.dunit.VM;
import org.apache.geode.test.dunit.WaitCriterion;
import org.apache.geode.test.junit.categories.DistributedTest;
import org.apache.geode.test.junit.categories.FlakyTest;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Random;
+import java.util.Set;
+import java.util.concurrent.atomic.AtomicInteger;
/**
* Dunit class for testing gemfire data commands : get, put, remove, select, rebalance
@@ -790,7 +795,7 @@ public class GemfireDataCommandsDUnitTest extends CliCommandTestBase {
// Remove empty key entry using gfsh remove command
String command = "remove ";
- command = command + " " + "--key=\"'" + key + "'\" --region=" + DATA_REGION_NAME_PATH;
+ command = command + " " + "--key=\"" + key + "\" --region=" + DATA_REGION_NAME_PATH;
CommandResult cmdResult = executeCommand(command);
printCommandOutput(cmdResult);
http://git-wip-us.apache.org/repos/asf/geode/blob/1fc0f0ca/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/HelpCommandsIntegrationTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/HelpCommandsIntegrationTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/HelpCommandsIntegrationTest.java
deleted file mode 100644
index b91a1f3..0000000
--- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/HelpCommandsIntegrationTest.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
- * agreements. See the NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the License. You may obtain a
- * copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- */
-package org.apache.geode.management.internal.cli.commands;
-
-import org.apache.geode.cache.CacheFactory;
-import org.apache.geode.distributed.internal.InternalDistributedSystem;
-import org.apache.geode.internal.AvailablePortHelper;
-import org.apache.geode.management.internal.cli.CommandManager;
-import org.apache.geode.management.internal.cli.parser.CommandTarget;
-import org.apache.geode.management.internal.cli.result.CommandResult;
-import org.apache.geode.management.internal.cli.shell.Gfsh;
-import org.apache.geode.management.internal.cli.shell.GfshConfig;
-import org.apache.geode.test.junit.categories.IntegrationTest;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.ClassRule;
-import org.junit.Test;
-import org.junit.contrib.java.lang.system.ProvideSystemProperty;
-import org.junit.experimental.categories.Category;
-
-import java.util.Map;
-import java.util.Properties;
-
-import static org.apache.geode.distributed.ConfigurationProperties.*;
-import static org.apache.geode.management.internal.cli.commands.CliCommandTestBase.commandResultToString;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-@Category(IntegrationTest.class)
-public class HelpCommandsIntegrationTest {
-
- private int jmxPort;
-
- private Gfsh gfsh;
-
- @ClassRule
- public static final ProvideSystemProperty isGfsh = new ProvideSystemProperty("gfsh", "true");
-
- @Before
- public void setup() throws Exception {
- jmxPort = AvailablePortHelper.getRandomAvailableTCPPort();
-
- Properties localProps = new Properties();
- localProps.setProperty(LOCATORS, "");
- localProps.setProperty(MCAST_PORT, "0");
- localProps.setProperty(JMX_MANAGER, "true");
- localProps.setProperty(JMX_MANAGER_START, "true");
- localProps.setProperty(JMX_MANAGER_PORT, String.valueOf(jmxPort));
-
- new CacheFactory(localProps).create();
-
- gfsh = Gfsh.getInstance(false, new String[0], new GfshConfig());
- }
-
- @After
- public void teardown() {
- InternalDistributedSystem ids = InternalDistributedSystem.getConnectedInstance();
- if (ids != null) {
- ids.disconnect();
- }
- }
-
- /**
- * TODO:GEODE-1466: update golden file to geode.properties
- */
- @Test
- public void testOfflineHelp() throws Exception {
- Properties helpProps = new Properties();
- helpProps.load(
- HelpCommandsIntegrationTest.class.getResourceAsStream("golden-help-offline.properties"));
-
- CommandManager cm = CommandManager.getInstance();
- for (Map.Entry<String, CommandTarget> e : cm.getCommands().entrySet()) {
- // Mock commands may have been produced in the VM by other tests
- // 'quit' is an alias for 'exit' and doesn't produce help
- if (e.getKey().contains("mock") || e.getKey().contains("quit")) {
- continue;
- }
-
- CommandResult cr = (CommandResult) gfsh.executeCommand("help " + e.getKey()).getResult();
- String gfshResult = commandResultToString(cr);
-
- String goldParam = e.getKey().replace(" ", "-") + ".help";
- String goldResult = helpProps.getProperty(goldParam);
- assertNotNull("No golden text for: " + goldParam, goldResult);
- assertEquals(goldResult.trim(), gfshResult.trim());
-
- helpProps.remove(goldParam);
- }
-
- // No help should remain unchecked
- assertEquals(0, helpProps.size());
- }
-
- @Test
- public void testOnlineHelp() throws Exception {
- Properties helpProps = new Properties();
- helpProps.load(
- HelpCommandsIntegrationTest.class.getResourceAsStream("golden-help-online.properties"));
-
- gfsh.executeCommand("connect --jmx-manager=localhost[" + jmxPort + "]");
-
- CommandManager cm = CommandManager.getInstance();
- for (Map.Entry<String, CommandTarget> e : cm.getCommands().entrySet()) {
- // Mock commands may have been produced in the VM by other tests
- // 'quit' is an alias for 'exit' and doesn't produce help
- if (e.getKey().contains("mock") || e.getKey().contains("quit")) {
- continue;
- }
-
- CommandResult cr = (CommandResult) gfsh.executeCommand("help " + e.getKey()).getResult();
- String gfshResult = commandResultToString(cr);
-
- String goldParam = e.getKey().replace(" ", "-") + ".help";
- String goldResult = helpProps.getProperty(goldParam);
- assertNotNull("No golden text for: " + goldParam, goldResult);
-
- String[] lines = gfshResult.split("\n");
- gfshResult = String.join("\n", lines[0], lines[1], lines[2], lines[3]);
-
- assertEquals(goldResult.trim(), gfshResult.trim());
-
- helpProps.remove(goldParam);
- }
-
- // No help should remain unchecked
- assertEquals(0, helpProps.size());
- }
-}
http://git-wip-us.apache.org/repos/asf/geode/blob/1fc0f0ca/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/QueueCommandsDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/QueueCommandsDUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/QueueCommandsDUnitTest.java
index 42a0624..04a8c13 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/QueueCommandsDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/QueueCommandsDUnitTest.java
@@ -193,9 +193,7 @@ public class QueueCommandsDUnitTest extends CliCommandTestBase {
commandStringBuilder.addOption(CliStrings.CREATE_ASYNC_EVENT_QUEUE__LISTENER,
"com.qcdunit.QueueCommandsDUnitTestHelper");
commandStringBuilder.addOption(CliStrings.CREATE_ASYNC_EVENT_QUEUE__LISTENER_PARAM_AND_VALUE,
- "param1");
- commandStringBuilder.addOption(CliStrings.CREATE_ASYNC_EVENT_QUEUE__LISTENER_PARAM_AND_VALUE,
- "param2#value2");
+ "param1,param2#value2");
cmdResult = executeCommand(commandStringBuilder.toString());
assertEquals(Result.Status.OK, cmdResult.getStatus());
stringResult = commandResultToString(cmdResult);
http://git-wip-us.apache.org/repos/asf/geode/blob/1fc0f0ca/geode-core/src/test/java/org/apache/geode/management/internal/cli/help/HelpBlockUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/help/HelpBlockUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/help/HelpBlockUnitTest.java
new file mode 100644
index 0000000..4eb4abf
--- /dev/null
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/help/HelpBlockUnitTest.java
@@ -0,0 +1,76 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
+ * agreements. See the NOTICE file distributed with this work for additional information regarding
+ * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License. You may obtain a
+ * copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package org.apache.geode.management.internal.cli.help;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+import org.apache.geode.test.junit.categories.UnitTest;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+@Category(UnitTest.class)
+public class HelpBlockUnitTest {
+ private HelpBlock firstBlock, secondBlock, thirdBlock;
+
+ @Before
+ public void before() {
+ firstBlock = new HelpBlock("First Line");
+ secondBlock = new HelpBlock("Second Line");
+ thirdBlock = new HelpBlock("Third Line");
+ assertThat(firstBlock.getLevel()).isEqualTo(0);
+ assertThat(secondBlock.getLevel()).isEqualTo(0);
+ assertThat(thirdBlock.getLevel()).isEqualTo(0);
+ }
+
+ @Test
+ public void testChildLevel() {
+ HelpBlock block = new HelpBlock();
+ assertThat(block.getLevel()).isEqualTo(-1);
+
+ firstBlock.addChild(secondBlock);
+ assertThat(firstBlock.getLevel()).isEqualTo(0);
+ assertThat(secondBlock.getLevel()).isEqualTo(1);
+
+ secondBlock.addChild(thirdBlock);
+ assertThat(firstBlock.getLevel()).isEqualTo(0);
+ assertThat(secondBlock.getLevel()).isEqualTo(1);
+ assertThat(thirdBlock.getLevel()).isEqualTo(2);
+
+ assertThat(firstBlock.getChildren()).contains(secondBlock);
+ assertThat(firstBlock.getChildren().size()).isEqualTo(1);
+ assertThat(secondBlock.getChildren()).contains(thirdBlock);
+ assertThat(secondBlock.getChildren().size()).isEqualTo(1);
+
+ // after manually set the level of the first block
+ firstBlock.setLevel(10);
+ assertThat(firstBlock.getLevel()).isEqualTo(10);
+ assertThat(firstBlock.getData()).isEqualTo("First Line");
+ assertThat(secondBlock.getLevel()).isEqualTo(11);
+ assertThat(secondBlock.getData()).isEqualTo("Second Line");
+ assertThat(thirdBlock.getLevel()).isEqualTo(12);
+ assertThat(thirdBlock.getData()).isEqualTo("Third Line");
+ }
+
+ @Test
+ public void testToString() {
+ firstBlock.addChild(secondBlock);
+ secondBlock.addChild(thirdBlock);
+
+ String result = firstBlock.toString(-1);
+ assertThat(result).isEqualTo("First Line\nSecond Line\nThird Line\n");
+ }
+}
http://git-wip-us.apache.org/repos/asf/geode/blob/1fc0f0ca/geode-core/src/test/java/org/apache/geode/management/internal/cli/help/HelperUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/help/HelperUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/help/HelperUnitTest.java
new file mode 100644
index 0000000..82d8d71
--- /dev/null
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/help/HelperUnitTest.java
@@ -0,0 +1,171 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
+ * agreements. See the NOTICE file distributed with this work for additional information regarding
+ * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License. You may obtain a
+ * copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package org.apache.geode.management.internal.cli.help;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import org.apache.geode.test.junit.categories.UnitTest;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+import org.springframework.shell.core.CommandMarker;
+import org.springframework.shell.core.annotation.CliAvailabilityIndicator;
+import org.springframework.shell.core.annotation.CliCommand;
+import org.springframework.shell.core.annotation.CliOption;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Method;
+
+@Category(UnitTest.class)
+public class HelperUnitTest {
+ private Helper helper;
+ private CliCommand cliCommand;
+ private Method method;
+ private CliAvailabilityIndicator availabilityIndicator;
+ private CommandMarker commandMarker;
+
+ private Annotation[][] annotations;
+ private CliOption cliOption;
+
+ private Class<?>[] parameterType;
+ private HelpBlock optionBlock;
+
+ @Before
+ public void before() throws Exception {
+ helper = new Helper();
+ cliCommand = mock(CliCommand.class);
+ when(cliCommand.value()).thenReturn("test,test-synonym".split(","));
+ when(cliCommand.help()).thenReturn("This is a test description");
+
+ // the tests will test with one parameter and one annotation at a time.
+ cliOption = mock(CliOption.class);
+ when(cliOption.key()).thenReturn("option".split(","));
+ when(cliOption.help()).thenReturn("help of option");
+ when(cliOption.mandatory()).thenReturn(true);
+
+ annotations = new Annotation[1][1];
+ annotations[0][0] = cliOption;
+
+ parameterType = new Class[1];
+ parameterType[0] = String.class;
+
+ availabilityIndicator = mock(CliAvailabilityIndicator.class);
+
+ }
+
+ @Test
+ public void testGetHelp() {
+ HelpBlock helpBlock = helper.getHelp(cliCommand, annotations, parameterType);
+ String[] helpLines = helpBlock.toString().split("\n");
+ assertThat(helpLines.length).isEqualTo(14);
+ assertThat(helpLines[0]).isEqualTo(Helper.NAME_NAME);
+ assertThat(helpLines[2]).isEqualTo(Helper.IS_AVAILABLE_NAME);
+ assertThat(helpLines[4]).isEqualTo(Helper.SYNONYMS_NAME);
+ assertThat(helpLines[6]).isEqualTo(Helper.SYNOPSIS_NAME);
+ assertThat(helpLines[8]).isEqualTo(Helper.SYNTAX_NAME);
+ assertThat(helpLines[10]).isEqualTo(Helper.OPTIONS_NAME);
+ }
+
+ @Test
+ public void testGetSyntaxStringWithMandatory() {
+ String syntax = helper.getSyntaxString("test", annotations, parameterType);
+ assertThat(syntax).isEqualTo("test --option=value");
+ optionBlock = helper.getOptionDetail(cliOption);
+ assertThat(optionBlock.toString())
+ .isEqualTo("option\n" + "help of option\n" + "Required: true\n");
+ }
+
+ @Test
+ public void testGetSyntaxStringWithOutMandatory() {
+ when(cliOption.mandatory()).thenReturn(false);
+ String syntax = helper.getSyntaxString("test", annotations, parameterType);
+ assertThat(syntax).isEqualTo("test [--option=value]");
+ optionBlock = helper.getOptionDetail(cliOption);
+ assertThat(optionBlock.toString())
+ .isEqualTo("option\n" + "help of option\n" + "Required: false\n");
+ }
+
+ @Test
+ public void testGetSyntaxStringWithSecondaryOptionNameIgnored() {
+ when(cliOption.key()).thenReturn("option,option2".split(","));
+ String syntax = helper.getSyntaxString("test", annotations, parameterType);
+ assertThat(syntax).isEqualTo("test --option=value");
+ optionBlock = helper.getOptionDetail(cliOption);
+ assertThat(optionBlock.toString())
+ .isEqualTo("option\n" + "help of option\n" + "Synonyms: option2\n" + "Required: true\n");
+ }
+
+ @Test
+ public void testGetSyntaxStringWithSecondaryOptionName() {
+ when(cliOption.key()).thenReturn(",option2".split(","));
+ when(cliOption.mandatory()).thenReturn(true);
+ String syntax = helper.getSyntaxString("test", annotations, parameterType);
+ assertThat(syntax).isEqualTo("test option2");
+ optionBlock = helper.getOptionDetail(cliOption);
+ assertThat(optionBlock.toString())
+ .isEqualTo("option2\n" + "help of option\n" + "Required: true\n");
+ }
+
+ @Test
+ public void testGetSyntaxStringWithOptionalSecondaryOptionName() {
+ when(cliOption.key()).thenReturn(",option2".split(","));
+ when(cliOption.mandatory()).thenReturn(false);
+ String syntax = helper.getSyntaxString("test", annotations, parameterType);
+ assertThat(syntax).isEqualTo("test [option2]");
+ optionBlock = helper.getOptionDetail(cliOption);
+ assertThat(optionBlock.toString())
+ .isEqualTo("option2\n" + "help of option\n" + "Required: false\n");
+ }
+
+ @Test
+ public void testGetSyntaxStringWithStringArray() {
+ parameterType[0] = String[].class;
+ String syntax = helper.getSyntaxString("test", annotations, parameterType);
+ assertThat(syntax).isEqualTo("test --option=value(,value)*");
+ optionBlock = helper.getOptionDetail(cliOption);
+ assertThat(optionBlock.toString())
+ .isEqualTo("option\n" + "help of option\n" + "Required: true\n");
+ }
+
+ @Test
+ public void testGetSyntaxStringWithSpecifiedDefault() {
+ when(cliOption.specifiedDefaultValue()).thenReturn("true");
+ String syntax = helper.getSyntaxString("test", annotations, parameterType);
+ assertThat(syntax).isEqualTo("test --option(=value)?");
+
+ optionBlock = helper.getOptionDetail(cliOption);
+ assertThat(optionBlock.toString()).isEqualTo("option\n" + "help of option\n"
+ + "Required: true\n" + "Default (if the parameter is specified without value): true\n");
+
+ }
+
+ @Test
+ public void testGetSyntaxStringWithDefaultAndStringArray() {
+ parameterType[0] = String[].class;
+ when(cliOption.specifiedDefaultValue()).thenReturn("value1,value2");
+ String syntax = helper.getSyntaxString("test", annotations, parameterType);
+ assertThat(syntax).isEqualTo("test --option(=value)?(,value)*");
+
+ optionBlock = helper.getOptionDetail(cliOption);
+ assertThat(optionBlock.toString())
+ .isEqualTo("option\n" + "help of option\n" + "Required: true\n"
+ + "Default (if the parameter is specified without value): value1,value2\n");
+
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/geode/blob/1fc0f0ca/geode-core/src/test/java/org/apache/geode/management/internal/cli/parser/ParserUtilsJUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/parser/ParserUtilsJUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/parser/ParserUtilsJUnitTest.java
deleted file mode 100644
index 9b22e64..0000000
--- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/parser/ParserUtilsJUnitTest.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
- * agreements. See the NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the License. You may obtain a
- * copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- */
-package org.apache.geode.management.internal.cli.parser;
-
-import static org.junit.Assert.*;
-
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import org.apache.geode.test.junit.categories.UnitTest;
-
-/**
- * Includes tests for all utility methods in {@link ParserUtils}
- */
-@Category(UnitTest.class)
-public class ParserUtilsJUnitTest {
-
- /**
- * Test for {@link ParserUtils#split(String, String)}
- */
- @Test
- public void testSplit() {
- String input = "something::{::}::nothing";
- String[] split = ParserUtils.split(input, "::");
- assertEquals("Size of the split", 3, split.length);
- assertEquals("First string", "something", split[0]);
- assertEquals("Second string", "{::}", split[1]);
- assertEquals("Third string", "nothing", split[2]);
- }
-
- /**
- * Test for {@link ParserUtils#splitValues(String, String)}
- */
- @Test
- public void testSplitValues() {
- String input = "something::{::}::nothing::";
- String[] split = ParserUtils.splitValues(input, "::");
- assertEquals("Size of the split", 4, split.length);
- assertEquals("First string", "something", split[0]);
- assertEquals("Second string", "{::}", split[1]);
- assertEquals("Third string", "nothing", split[2]);
- assertEquals("Fourth string", "", split[3]);
- }
-
- /**
- * Test for {@link ParserUtils#contains(String, String)}
- */
- @Test
- public void testContains() {
- String input = "something::{::}::nothing::";
- assertTrue("Check Boolean", ParserUtils.contains(input, "::"));
- input = "{something::{::}::nothing::}";
- assertFalse("Check Boolean", ParserUtils.contains(input, "::"));
- }
-
- /**
- * Test for {@link ParserUtils#lastIndexOf(String, String)}
- */
- @Test
- public void testLastIndexOf() {
- String input = "something::{::}::nothing::";
- assertEquals("lastIndex", 24, ParserUtils.lastIndexOf(input, "::"));
- input = "something::{::}::\"nothing::\"";
- assertEquals("lastIndex", 15, ParserUtils.lastIndexOf(input, "::"));
- input = "{something::{::}::\"nothing::\"}";
- assertEquals("lastIndex", -1, ParserUtils.lastIndexOf(input, "::"));
- }
-
-}
http://git-wip-us.apache.org/repos/asf/geode/blob/1fc0f0ca/geode-core/src/test/java/org/apache/geode/management/internal/cli/parser/preprocessor/PreprocessorJUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/parser/preprocessor/PreprocessorJUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/parser/preprocessor/PreprocessorJUnitTest.java
deleted file mode 100644
index 97325cb..0000000
--- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/parser/preprocessor/PreprocessorJUnitTest.java
+++ /dev/null
@@ -1,296 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
- * agreements. See the NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the License. You may obtain a
- * copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- */
-package org.apache.geode.management.internal.cli.parser.preprocessor;
-
-import static org.junit.Assert.*;
-
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import org.apache.geode.test.junit.categories.UnitTest;
-
-/**
- * Test for Preprocessor
- */
-@Category(UnitTest.class)
-public class PreprocessorJUnitTest {
-
- @Test
- public void test1Arg() {
- String input = "arg1";
- String[] split = Preprocessor.split(input);
- assertEquals("Size of the split", 1, split.length);
- assertEquals("First string", "arg1", split[0]);
- }
-
- @Test
- public void test2Args() {
- String input = "arg1?arg2";
- String[] split = Preprocessor.split(input);
- assertEquals("Size of the split", 2, split.length);
- assertEquals("First string", "arg1", split[0]);
- assertEquals("Second string", "arg2", split[1]);
- }
-
- @Test
- public void test1SpacedArg() {
- String input = "arg1-1 arg1-2 ";
- String[] split = Preprocessor.split(input);
- assertEquals("Size of the split", 1, split.length);
- assertEquals("First string", "arg1-1 arg1-2", split[0]);
- }
-
- @Test
- public void test1SpacedArg1Option() {
- String input = "arg1-1 arg1-2 --option1=value1";
- String[] split = Preprocessor.split(input);
- assertEquals("Size of the split", 3, split.length);
- assertEquals("First string", "arg1-1 arg1-2", split[0]);
- assertEquals("Second string", "--option1", split[1]);
- assertEquals("Third string", "value1", split[2]);
- }
-
- @Test
- public void test1OptionNoValue() {
- String input = "--option1";
- String[] split = Preprocessor.split(input);
- assertEquals("Size of the split", 1, split.length);
- assertEquals("First string", "--option1", split[0]);
- }
-
- @Test
- public void test2OptionsNoValue() {
- String input = "--option1 --option2";
- String[] split = Preprocessor.split(input);
- assertEquals("Size of the split", 2, split.length);
- assertEquals("First string", "--option1", split[0]);
- assertEquals("Second string", "--option2", split[1]);
- }
-
- @Test
- public void test2Options1Value() {
- String input = "--option1=value1 --option2";
- String[] split = Preprocessor.split(input);
- assertEquals("Size of the split", 3, split.length);
- assertEquals("First string", "--option1", split[0]);
- assertEquals("Second string", "value1", split[1]);
- assertEquals("Third string", "--option2", split[2]);
- }
-
- @Test
- public void test1OptionHasValue() {
- String input = "--option1=value1";
- String[] split = Preprocessor.split(input);
- assertEquals("Size of the split", 2, split.length);
- assertEquals("First string", "--option1", split[0]);
- assertEquals("Second string", "value1", split[1]);
- }
-
- @Test
- public void test1Arg1OptionHasValue() {
- String input = "arg1 --option1=value1";
- String[] split = Preprocessor.split(input);
- assertEquals("Size of the split", 3, split.length);
- assertEquals("First string", "arg1", split[0]);
- assertEquals("Second string", "--option1", split[1]);
- assertEquals("Third string", "value1", split[2]);
- }
-
- @Test
- public void test1OptionMissingValue() {
- String input = "--option1=";
- String[] split = Preprocessor.split(input);
- assertEquals("Size of the split", 2, split.length);
- assertEquals("First string", "--option1", split[0]);
- assertEquals("Second string", "__NULL__", split[1]);
- }
-
- @Test
- public void test2OptionsMissingFirstValue() {
- String input = "--option1= --option2=value2";
- String[] split = Preprocessor.split(input);
- assertEquals("Size of the split", 4, split.length);
- assertEquals("First string", "--option1", split[0]);
- assertEquals("Second string", "__NULL__", split[1]);
- assertEquals("Third string", "--option2", split[2]);
- assertEquals("Fourth string", "value2", split[3]);
- }
-
- @Test
- public void testSingleQuotedArg() {
- String input = "\'arg1-1= arg1-2\'?arg2";
- String[] split = Preprocessor.split(input);
- assertEquals("Size of the split", 2, split.length);
- assertEquals("First string", "\'arg1-1= arg1-2\'", split[0]);
- assertEquals("Second string", "arg2", split[1]);
- }
-
- @Test
- public void testDoubleQuotedArg() {
- String input = "\" \'arg1-1 =arg1-2 \"?arg2";
- String[] split = Preprocessor.split(input);
- assertEquals("Size of the split", 2, split.length);
- assertEquals("First string", "\" \'arg1-1 =arg1-2 \"", split[0]);
- assertEquals("Second string", "arg2", split[1]);
- }
-
- @Test
- public void testSingleQuotedOption() {
- String input = "--option1=\'value1-1 =value1-2\"\' --option2";
- String[] split = Preprocessor.split(input);
- assertEquals("Size of the split", 3, split.length);
- assertEquals("First string", "--option1", split[0]);
- assertEquals("Second string", "\'value1-1 =value1-2\"\'", split[1]);
- assertEquals("Third string", "--option2", split[2]);
- }
-
- @Test
- public void testDoubleQuotedOption() {
- String input = "--option1= --option2=\"value2\"";
- String[] split = Preprocessor.split(input);
- assertEquals("Size of the split", 4, split.length);
- assertEquals("First string", "--option1", split[0]);
- assertEquals("Second string", "__NULL__", split[1]);
- assertEquals("Third string", "--option2", split[2]);
- assertEquals("Fourth string", "\"value2\"", split[3]);
- }
-
- @Test
- public void testSingleQuoteInsideDoubleQuote() {
- String input = "--option1=\" \' value1 \' \"";
- String[] split = Preprocessor.split(input);
- assertEquals("Size of the split", 2, split.length);
- assertEquals("First string", "--option1", split[0]);
- assertEquals("Second string", "\" \' value1 \' \"", split[1]);
- }
-
- @Test
- public void testQuotedStringWithAdditonalData() {
- String input = "--option1=\" \' value1 \' \",moreData,\" even more data\"";
- String[] split = Preprocessor.split(input);
- assertEquals("Size of the split", 2, split.length);
- assertEquals("First string", "--option1", split[0]);
- assertEquals("Second string", "\" \' value1 \' \",moreData,\" even more data\"",
- split[1]);
- }
-
- @Test
- public void testBadOption() {
- String input = "--option1=value1 -option2=value2";
- String[] split = Preprocessor.split(input);
- assertEquals("Size of the split", 4, split.length);
- assertEquals("First string", "--option1", split[0]);
- assertEquals("Second string", "value1", split[1]);
- assertEquals("Third string", "-option2", split[2]);
- assertEquals("Third string", "value2", split[3]);
- }
-
- @Test
- public void testBadOptions() {
- String input = "--option1=value1 -option3 -option4";
- String[] split = Preprocessor.split(input);
- assertEquals("Size of the split", 4, split.length);
- assertEquals("First string", "--option1", split[0]);
- assertEquals("Second string", "value1", split[1]);
- assertEquals("Third string", "-option3", split[2]);
- assertEquals("Third string", "-option4", split[3]);
- }
-
- @Test
- public void testExtraArgSpaces() {
- String input = " arg1? arg2 ";
- String[] split = Preprocessor.split(input);
- assertEquals("Size of the split", 2, split.length);
- assertEquals("First string", "arg1", split[0]);
- assertEquals("Second string", "arg2", split[1]);
- }
-
- @Test
- public void testExtraOptionSpaces() {
- String input = " --option1=value1 --option2=value2 ";
- String[] split = Preprocessor.split(input);
- assertEquals("Size of the split", 4, split.length);
- assertEquals("First string", "--option1", split[0]);
- assertEquals("Second string", "value1", split[1]);
- assertEquals("Third string", "--option2", split[2]);
- assertEquals("Fourth string", "value2", split[3]);
- }
-
- @Test
- public void testExtraArgAndOptionSpaces() {
- String input = " arg1 --option1=value1 ";
- String[] split = Preprocessor.split(input);
- assertEquals("Size of the split", 3, split.length);
- assertEquals("First string", "arg1", split[0]);
- assertEquals("Second string", "--option1", split[1]);
- assertEquals("Third string", "value1", split[2]);
- }
-
- @Test
- public void testValueSpecifierAsPartOfValue() {
- String input = "--option1=-Dprop1=value1 --option2=-Dprop2=value2 --option3";
- String[] split = Preprocessor.split(input);
- assertEquals("Size of the split", 5, split.length);
- assertEquals("First string", "--option1", split[0]);
- assertEquals("Second string", "-Dprop1=value1", split[1]);
- assertEquals("Third string", "--option2", split[2]);
- assertEquals("Fourth string", "-Dprop2=value2", split[3]);
- assertEquals("Fifth string", "--option3", split[4]);
- }
-
- @Test
- public void testMissingOption() {
- String input = "--option1=value1 value2";
- String[] split = Preprocessor.split(input);
- assertEquals("Size of the split", 3, split.length);
- assertEquals("First string", "--option1", split[0]);
- assertEquals("Second string", "value1", split[1]);
- assertEquals("Third string", "value2", split[2]);
- }
-
- @Test
- public void testUnclosedQuoteArg() {
- String input = "\"arg1-1 arg1-2 --option1=value1 --option2=value2";
- String[] split = Preprocessor.split(input);
- assertEquals("Size of the split", 1, split.length);
- assertEquals("First string", "\"arg1-1 arg1-2 --option1=value1 --option2=value2", split[0]);
- }
-
- @Test
- public void testUnclosedQuoteOption() {
- String input = "--option1=\"value1 --option2=value2";
- String[] split = Preprocessor.split(input);
- assertEquals("Size of the split", 2, split.length);
- assertEquals("First string", "--option1", split[0]);
- assertEquals("Second string", "\"value1 --option2=value2", split[1]);
- }
-
- @Test
- public void testArgWithQuotedLongOptionSpec() {
- String input = "\"--arg=value\"";
- String[] split = Preprocessor.split(input);
- assertEquals("Size of the split", 1, split.length);
- assertEquals("First string", "\"--arg=value\"", split[0]);
- }
-
- @Test
- public void testOptionWithQuotedLongOptionSpec() {
- String input = "--option1=\"--arg=value\"";
- String[] split = Preprocessor.split(input);
- assertEquals("Size of the split", 2, split.length);
- assertEquals("First string", "--option1", split[0]);
- assertEquals("Second", "\"--arg=value\"", split[1]);
- }
-}
http://git-wip-us.apache.org/repos/asf/geode/blob/1fc0f0ca/geode-core/src/test/java/org/apache/geode/management/internal/cli/parser/preprocessor/PreprocessorUtilsJUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/parser/preprocessor/PreprocessorUtilsJUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/parser/preprocessor/PreprocessorUtilsJUnitTest.java
deleted file mode 100644
index b56cff2..0000000
--- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/parser/preprocessor/PreprocessorUtilsJUnitTest.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
- * agreements. See the NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the License. You may obtain a
- * copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- */
-package org.apache.geode.management.internal.cli.parser.preprocessor;
-
-import static org.junit.Assert.*;
-
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import org.apache.geode.internal.lang.SystemUtils;
-import org.apache.geode.test.junit.categories.UnitTest;
-
-/**
- * Includes tests for all utility methods in {@link PreprocessorUtils}
- */
-@Category(UnitTest.class)
-public class PreprocessorUtilsJUnitTest {
-
- /**
- * Test for {@link PreprocessorUtils#simpleTrim(String)}
- */
- @Test
- public void testSimpleTrim() {
- String input = " 1 2 3 ";
- TrimmedInput simpleTrim = PreprocessorUtils.simpleTrim(input);
- assertEquals("No of spaces removed", 1, simpleTrim.getNoOfSpacesRemoved());
- assertEquals("input after trimming", "1 2 3", simpleTrim.getString());
-
- input = " 1 2 3 ";
- simpleTrim = PreprocessorUtils.simpleTrim(input);
- assertEquals("No of spaces removed", 1, simpleTrim.getNoOfSpacesRemoved());
- assertEquals("input after trimming", "1 2 3", simpleTrim.getString());
- }
-
- /**
- * Test for {@link PreprocessorUtils#trim(String)}
- */
- @Test
- public void testTrim() {
- String input = " command argument1 argument2 ";
- TrimmedInput trim = PreprocessorUtils.trim(input);
- assertEquals("No of spaces removed", 1, trim.getNoOfSpacesRemoved());
- assertEquals("input after trimming", "command argument1 argument2", trim.getString());
-
- input = " command argument1 argument2 ";
- trim = PreprocessorUtils.trim(input);
- assertEquals("No of spaces removed", 7, trim.getNoOfSpacesRemoved());
- assertEquals("input after trimming", "command argument1 argument2", trim.getString());
-
- input = "command argument1 argument2 -- -- - - - -- -- -- -- -- --- --------- - - - --- --";
- trim = PreprocessorUtils.trim(input);
- assertEquals("No of spaces removed", 0, trim.getNoOfSpacesRemoved());
- assertEquals("input after trimming", "command argument1 argument2", trim.getString());
-
- input = "command argument1 argument2 --";
- trim = PreprocessorUtils.trim(input);
- assertEquals("No of spaces removed", 0, trim.getNoOfSpacesRemoved());
- assertEquals("input after trimming", "command argument1 argument2", trim.getString());
-
- input = "command argument1 argument2 -";
- trim = PreprocessorUtils.trim(input);
- assertEquals("No of spaces removed", 0, trim.getNoOfSpacesRemoved());
- assertEquals("input after trimming", "command argument1 argument2", trim.getString());
- }
-
- /**
- * Test for {@link PreprocessorUtils#removeWhiteSpaces(String)}
- */
- @Test
- public void testRemoveWhiteSpaces() {
- String input = "1 2 3 ";
- String output = PreprocessorUtils.removeWhiteSpaces(input);
- assertEquals("Output after removing white spaces", "123", output);
- }
-
- /**
- * Test for {@link PreprocessorUtils#isSyntaxValid(String)}
- */
- @Test
- public void testIsSyntaxValid() {
- assertTrue(PreprocessorUtils.isSyntaxValid("{}"));
- assertFalse(PreprocessorUtils.isSyntaxValid("{{]}"));
- assertTrue(PreprocessorUtils.isSyntaxValid("\"\""));
- assertTrue(PreprocessorUtils.isSyntaxValid("\"{\'[]\'}\""));
- assertFalse(PreprocessorUtils.isSyntaxValid("{\"}\""));
- }
-
- /**
- * Test for {@link PreprocessorUtils#containsOnlyWhiteSpaces(String)}
- */
- @Test
- public void testContainsOnlyWhiteSpaces() {
- assertTrue(PreprocessorUtils
- .containsOnlyWhiteSpaces(" "));
- assertFalse(PreprocessorUtils.containsOnlyWhiteSpaces(" d "));
- }
-
- /**
- * Test for {@link PreprocessorUtils#isWhitespace(char)}
- */
- @Test
- public void testIsWhitespace() {
- assertTrue(PreprocessorUtils.isWhitespace(' '));
- assertTrue(PreprocessorUtils.isWhitespace('\t'));
- assertTrue(PreprocessorUtils.isWhitespace('\n'));
- assertEquals(SystemUtils.isWindows(), PreprocessorUtils.isWhitespace('\r'));
- }
-
-}