mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-22 07:32:21 +07:00
75 lines
2.8 KiB
Java
75 lines
2.8 KiB
Java
/*
|
|
* Copyright 2000-2015 JetBrains s.r.o.
|
|
*
|
|
* Licensed 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 com.jetbrains.commandInterface.commandLine;
|
|
|
|
import com.intellij.openapi.util.Pair;
|
|
import com.jetbrains.commandInterface.command.Argument;
|
|
import com.jetbrains.commandInterface.commandLine.psi.CommandLineFile;
|
|
import com.jetbrains.python.fixtures.PyTestCase;
|
|
import org.jetbrains.annotations.NotNull;
|
|
import org.junit.Assert;
|
|
|
|
|
|
/**
|
|
* Checks {@link ValidationResult#getNextArg()} functionality
|
|
*
|
|
* @author Ilya.Kazakevich
|
|
*/
|
|
public final class CommandLineArgsTest extends PyTestCase {
|
|
/**
|
|
* Ensures argument is returned if exists
|
|
*/
|
|
public void testArgsRequired() throws Exception {
|
|
CommandTestTools.initFileType();
|
|
validateNextArgument("command", "positional_argument");
|
|
}
|
|
|
|
/**
|
|
* Ensures option argument is returned if exists
|
|
*/
|
|
public void testOptionArgsRequired() throws Exception {
|
|
CommandTestTools.initFileType();
|
|
validateNextArgument("command positional_argument --available-option", "option argument");
|
|
}
|
|
|
|
/**
|
|
* Ensures argument is not returned if not required
|
|
*/
|
|
public void testNoMoreArgs() throws Exception {
|
|
CommandTestTools.initFileType();
|
|
final CommandLineFile file = CommandTestTools.createFileByText(myFixture, "command foo bar spam eggs");
|
|
final ValidationResult validationResult = file.getValidationResult();
|
|
assert validationResult != null : "validation failed";
|
|
Assert.assertNull("Argument returned while should not", validationResult.getNextArg());
|
|
}
|
|
|
|
|
|
/**
|
|
* Runs commands and checks argument is required after it
|
|
* @param commandText command text to run
|
|
* @param expectedArgumentText expected next argument help text
|
|
*/
|
|
private void validateNextArgument(@NotNull final String commandText, @NotNull final String expectedArgumentText) {
|
|
final CommandLineFile file = CommandTestTools.createFileByText(myFixture, commandText);
|
|
final ValidationResult validationResult = file.getValidationResult();
|
|
assert validationResult != null : "validation failed";
|
|
final Pair<Boolean, Argument> arg = validationResult.getNextArg();
|
|
Assert.assertNotNull("No argument returned, but should", arg);
|
|
Assert.assertTrue("Required argument is not marked as required", arg.first);
|
|
Assert.assertEquals("Wrong argument text", expectedArgumentText, arg.second.getHelp().getHelpString());
|
|
}
|
|
}
|