This commit is contained in:
Roman Shevchenko
2013-01-31 15:41:47 +04:00
parent 725bca9764
commit 7280bdce2c
@@ -1,5 +1,5 @@
/*
* Copyright 2000-2011 JetBrains s.r.o.
* Copyright 2000-2013 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.
@@ -17,139 +17,122 @@ package com.intellij.openapi.execution;
import com.intellij.execution.configurations.ParametersList;
import com.intellij.execution.configurations.ParamsGroup;
import com.intellij.testFramework.UsefulTestCase;
import org.junit.Test;
import java.util.Arrays;
import java.util.Collections;
import static java.util.Arrays.asList;
import static org.junit.Assert.*;
/**
* @author dyoma
*/
public class ParametersListTest extends UsefulTestCase {
public void testParamsGroup_Empty() {
public class ParametersListTest {
@Test
public void paramsGroupEmpty() {
ParametersList params = new ParametersList();
assertEquals(0, params.getParamsGroupsCount());
assertTrue(params.getParamsGroups().isEmpty());
}
public void testParamsGroup_Add() {
@Test
public void paramsGroupAdd() {
ParametersList params = new ParametersList();
final ParamsGroup group1 = params.addParamsGroup("id1");
ParamsGroup group1 = params.addParamsGroup("id1");
assertEquals("id1", group1.getId());
assertEquals(1, params.getParamsGroupsCount());
assertSameElements(Collections.singletonList(group1), params.getParamsGroups());
assertEquals(asList(group1), params.getParamsGroups());
final ParamsGroup group2 = params.addParamsGroup("id2");
ParamsGroup group2 = params.addParamsGroup("id2");
assertEquals("id2", group2.getId());
assertEquals(2, params.getParamsGroupsCount());
assertOrderedEquals(params.getParamsGroups(), group1, group2);
assertEquals(asList(group1, group2), params.getParamsGroups());
}
public void testParamsGroup_AddAt() {
@Test
public void paramsGroupAddAt() {
ParametersList params = new ParametersList();
final ParamsGroup group1 = params.addParamsGroup("id1");
final ParamsGroup group2 = params.addParamsGroup("id2");
final ParamsGroup group12 = params.addParamsGroupAt(1, "id12");
final ParamsGroup group01 = params.addParamsGroupAt(0, "id01");
assertOrderedEquals(params.getParamsGroups(), group01, group1, group12, group2);
ParamsGroup group1 = params.addParamsGroup("id1");
ParamsGroup group2 = params.addParamsGroup("id2");
ParamsGroup group12 = params.addParamsGroupAt(1, "id12");
ParamsGroup group01 = params.addParamsGroupAt(0, "id01");
assertEquals(asList(group01, group1, group12, group2), params.getParamsGroups());
}
public void testParamsGroup_Remove() {
@Test
public void paramsGroupRemove() {
ParametersList params = new ParametersList();
params.addParamsGroup("id1");
final ParamsGroup group2 = params.addParamsGroup("id2");
final ParamsGroup group3 = params.addParamsGroup("id3");
final ParamsGroup group4 = params.addParamsGroup("id4");
ParamsGroup group2 = params.addParamsGroup("id2");
ParamsGroup group3 = params.addParamsGroup("id3");
ParamsGroup group4 = params.addParamsGroup("id4");
params.removeParamsGroup(0);
assertOrderedEquals(params.getParamsGroups(), group2, group3, group4);
assertEquals(asList(group2, group3, group4), params.getParamsGroups());
params.removeParamsGroup(1);
assertOrderedEquals(params.getParamsGroups(), group2, group4);
assertEquals(asList(group2, group4), params.getParamsGroups());
}
public void testParamsGroup_GroupParams() {
@Test
public void paramsGroupGroupParams() {
ParametersList params = new ParametersList();
params.add("param1");
final ParamsGroup group1 = params.addParamsGroup("id1");
ParamsGroup group1 = params.addParamsGroup("id1");
group1.addParameter("group1_param1");
params.add("param2");
group1.addParameter("group1_param2");
final ParamsGroup group2 = params.addParamsGroup("id2");
ParamsGroup group2 = params.addParamsGroup("id2");
group2.addParameter("group2_param1");
params.add("param3");
assertOrderedEquals(params.getParameters(), "param1", "param2", "param3");
assertOrderedEquals(params.getList(), "param1", "param2", "param3", "group1_param1", "group1_param2", "group2_param1");
assertOrderedEquals(params.getArray(), "param1", "param2", "param3", "group1_param1", "group1_param2", "group2_param1");
assertEquals(asList("param1", "param2", "param3"), params.getParameters());
assertEquals(asList("param1", "param2", "param3", "group1_param1", "group1_param2", "group2_param1"), params.getList());
assertArrayEquals(new String[]{"param1", "param2", "param3", "group1_param1", "group1_param2", "group2_param1"}, params.getArray());
assertEquals("param1 param2 param3 group1_param1 group1_param2 group2_param1", params.getParametersString().trim());
final ParametersList group1_params = group1.getParametersList();
assertOrderedEquals(group1_params.getParameters(), "group1_param1", "group1_param2");
assertOrderedEquals(group1_params.getList(), "group1_param1", "group1_param2");
assertOrderedEquals(group1_params.getArray(), "group1_param1", "group1_param2");
ParametersList group1_params = group1.getParametersList();
assertEquals(asList("group1_param1", "group1_param2"), group1_params.getParameters());
assertEquals(asList("group1_param1", "group1_param2"), group1_params.getList());
assertArrayEquals(new String[]{"group1_param1", "group1_param2"}, group1_params.getArray());
assertEquals("group1_param1 group1_param2", group1_params.getParametersString().trim());
final ParametersList group2_params = group2.getParametersList();
assertOrderedEquals(group2_params.getParameters(), "group2_param1");
assertOrderedEquals(group2_params.getList(), "group2_param1");
assertOrderedEquals(group2_params.getArray(), "group2_param1");
ParametersList group2_params = group2.getParametersList();
assertEquals(asList("group2_param1"), group2_params.getParameters());
assertEquals(asList("group2_param1"), group2_params.getList());
assertArrayEquals(new String[]{"group2_param1"}, group2_params.getArray());
assertEquals("group2_param1", group2_params.getParametersString().trim());
}
public void testParamsGroup_SubGroups() {
@Test
public void paramsGroupSubGroups() {
ParametersList params = new ParametersList();
final ParamsGroup group1 = params.addParamsGroup("id1");
ParamsGroup group1 = params.addParamsGroup("id1");
group1.addParameter("group1_param1");
group1.addParameter("group1_param2");
final ParamsGroup group2 = params.addParamsGroup("id2");
ParamsGroup group2 = params.addParamsGroup("id2");
group2.addParameter("group2_param1");
final ParamsGroup group1_1 = group1.getParametersList().addParamsGroup("id1_1");
ParamsGroup group1_1 = group1.getParametersList().addParamsGroup("id1_1");
group1_1.addParameter("group1_1_param1");
final ParamsGroup group1_2 = group1.getParametersList().addParamsGroup("id1_2");
ParamsGroup group1_2 = group1.getParametersList().addParamsGroup("id1_2");
group1_2.addParameter("group1_2_param1");
assertOrderedEquals(params.getList(), "group1_param1", "group1_param2", "group1_1_param1", "group1_2_param1", "group2_param1");
assertOrderedEquals(params.getList(), "group1_param1", "group1_param2", "group1_1_param1", "group1_2_param1", "group2_param1");
assertEquals(asList("group1_param1", "group1_param2", "group1_1_param1", "group1_2_param1", "group2_param1"), params.getList());
assertEquals(asList("group1_param1", "group1_param2", "group1_1_param1", "group1_2_param1", "group2_param1"), params.getList());
assertEquals("group1_param1 group1_param2 group1_1_param1 group1_2_param1 group2_param1", params.getParametersString().trim());
}
public void testParamsGroup_Clone() {
@Test
public void paramsGroupClone() {
ParametersList params = new ParametersList();
final ParamsGroup group1 = params.addParamsGroup("id1");
ParamsGroup group1 = params.addParamsGroup("id1");
group1.addParameter("group1_param1");
final ParamsGroup group2 = params.addParamsGroup("id2");
ParamsGroup group2 = params.addParamsGroup("id2");
group2.addParameter("group2_param1");
final ParamsGroup group3 = params.addParamsGroup("id3");
ParamsGroup group3 = params.addParamsGroup("id3");
group3.addParameter("group3_param1");
final ParametersList params_clone = params.clone();
// let's change original params group
ParametersList params_clone = params.clone();
params.removeParamsGroup(0);
group2.addParameter("group2_param2");
assertEquals("group2_param1 group2_param2 group3_param1", params.getParametersString().trim());
assertEquals("group1_param1 group2_param1 group3_param1", params_clone.getParametersString().trim());
}
public void testAddParametersString() {
@Test
public void addParametersString() {
checkTokenizer("a b c",
"a", "b", "c");
checkTokenizer("a \"b\"",
@@ -164,7 +147,8 @@ public class ParametersListTest extends UsefulTestCase {
"a", "\"", "b");
}
public void testParamsWithSpacesAndQuotes() {
@Test
public void paramsWithSpacesAndQuotes() {
checkTokenizer("a b=\"some text\" c",
"a", "b=some text", "c");
checkTokenizer("a b=\"some text with spaces\" c",
@@ -185,33 +169,33 @@ public class ParametersListTest extends UsefulTestCase {
"aSome text with spaces more", "nextText moreTextEnd", "c");
checkTokenizer("\"\"C:\\phing.bat\"",
"C:\\phing.bat");
checkTokenizer("-Dprop.1=\"some text\" -Dprop.2=\\\"value\\\"",
"-Dprop.1=some text", "-Dprop.2=\"value\"");
checkTokenizer("-Dp.1=\"some text\" -Dp.2=\\\"value\\\"",
"-Dp.1=some text", "-Dp.2=\"value\"");
checkTokenizer("-Dp.1=value\n\"-Dp.2=-\"\n-Dp.3=value",
"-Dp.1=value", "-Dp.2=-", "-Dp.3=value");
}
public void testJoiningParams() throws Exception {
final String[] parameters = {"simpleParam", "param with spaces", "withQuote=\"", "param=\"complex quoted\""};
final ParametersList parametersList = new ParametersList();
@Test
public void joiningParams() throws Exception {
String[] parameters = {"simpleParam", "param with spaces", "withQuote=\"", "param=\"complex quoted\""};
ParametersList parametersList = new ParametersList();
parametersList.addAll(parameters);
final String joined = parametersList.getParametersString();
assertEquals("simpleParam \"param with spaces\" withQuote=\\\" \"param=\\\"complex quoted\\\"\"",
joined);
String joined = parametersList.getParametersString();
assertEquals("simpleParam \"param with spaces\" withQuote=\\\" \"param=\\\"complex quoted\\\"\"", joined);
checkTokenizer(joined, parameters);
}
public void testProperties() throws Exception {
@Test
public void properties() throws Exception {
ParametersList params = new ParametersList();
params.addProperty("foo.foo", "\"bar bar\" bar");
assertEquals(1, params.getProperties().size());
assertEquals("\"bar bar\" bar", params.getProperties().get("foo.foo"));
}
private static void checkTokenizer(final String paramString, final String... expected) {
final ParametersList params = new ParametersList();
ParametersList params = new ParametersList();
params.addParametersString(paramString);
assertEquals(Arrays.asList(expected), params.getList());
assertEquals(asList(expected), params.getList());
}
}