blob: a80c39c44cd39b93a1cfe1f74ce7059338bcc274 [file] [log] [blame]
/*
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
https://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.commons.cli;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.Arrays;
import java.util.List;
import org.junit.jupiter.api.Test;
class SolrCreateToolTest {
private List<Option> getOptions() {
// @formatter:off
return Arrays.asList(
SolrCliTest.OPTION_ZKHOST,
SolrCliTest.OPTION_SOLRURL,
SolrCliTest.OPTION_ZKHOST_DEPRECATED,
SolrCliTest.OPTION_SOLRURL,
Option.builder("c")
.longOpt("name")
.argName("NAME")
.hasArg()
.required(true)
.desc("Name of collection or core to create.")
.get(),
Option.builder("s")
.longOpt("shards")
.argName("#")
.hasArg()
.required(false)
.desc("Number of shards; default is 1.")
.get(),
Option.builder("rf")
.longOpt("replication-factor")
.argName("#")
.hasArg()
.required(false)
.desc("Number of copies of each document across the collection (replicas per shard); default is 1.")
.get(),
Option.builder("d")
.longOpt("confdir")
.argName("NAME")
.hasArg()
.required(false)
.desc("Configuration directory to copy when creating the new collection; default is "
+ SolrCliTest.DEFAULT_CONFIG_SET
+ '.')
.get(),
Option.builder("n")
.longOpt("confname")
.argName("NAME")
.hasArg()
.required(false)
.desc("Configuration name; default is the collection name.")
.get(),
SolrCliTest.OPTION_CREDENTIALS);
// @formatter:on
}
private String printHelp(final HelpFormatter formatter) {
final Options options = new Options();
getOptions().forEach(options::addOption);
final String cmdLineSyntax = getClass().getName();
final StringWriter out = new StringWriter();
final PrintWriter pw = new PrintWriter(out);
formatter.printHelp(pw, formatter.getWidth(), cmdLineSyntax, null, options, formatter.getLeftPadding(), formatter.getDescPadding(), null, false);
pw.flush();
final String actual = out.toString();
assertTrue(actual.contains("-z,--zk-host <HOST> Zookeeper connection string; unnecessary"));
return actual;
}
@Test
void testHelpFormatter() {
final HelpFormatter formatter = new HelpFormatter();
final String actual = printHelp(formatter);
assertFalse(actual.contains("Deprecated"));
}
@Test
void testHelpFormatterDeprecated() {
final HelpFormatter formatter = HelpFormatter.builder().setShowDeprecated(true).get();
final String actual = printHelp(formatter);
assertTrue(actual.contains("-zkHost,--zkHost <HOST> [Deprecated] Zookeeper connection"));
}
}