blob: c934e6c5aa8f895af7ee4096127586b0a5631a90 [file] [log] [blame]
/*
* 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.
* 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.jetbrains.idea.maven.actions;
import com.intellij.codeInsight.intention.IntentionAction;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiManager;
import org.jetbrains.idea.maven.dom.MavenDomWithIndicesTestCase;
import org.jetbrains.idea.maven.indices.MavenArtifactSearchDialog;
import org.jetbrains.idea.maven.model.MavenId;
import java.io.IOException;
import java.util.Collections;
/**
* @author Sergey Evdokimov
*/
public class AddMavenDependencyQuickFixTest extends MavenDomWithIndicesTestCase {
private IntentionAction findAddMavenIntention() {
for (IntentionAction intention : myFixture.getAvailableIntentions()) {
if (intention.getText().contains("Add Maven")) {
return intention;
}
}
return null;
}
public void testAddDependency() throws IOException {
VirtualFile f = createProjectSubFile("src/main/java/A.java", "import org.apache.commons.io.IOUtils;\n" +
"\n" +
"public class Aaa {\n" +
"\n" +
" public void xxx() {\n" +
" IOUtil<caret>s u;\n" +
" }\n" +
"\n" +
"}");
importProject("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>");
myFixture.configureFromExistingVirtualFile(f);
IntentionAction intentionAction = findAddMavenIntention();
MavenArtifactSearchDialog.ourResultForTest = Collections.singletonList(new MavenId("commons-io", "commons-io", "2.4"));
intentionAction.invoke(myProject, myFixture.getEditor(), myFixture.getFile());
String pomText = PsiManager.getInstance(myProject).findFile(myProjectPom).getText();
assert pomText.matches(
"(?s).*<dependency>\\s*<groupId>commons-io</groupId>\\s*<artifactId>commons-io</artifactId>\\s*<version>2.4</version>\\s*</dependency>.*");
}
public void testAddDependencyInTest() throws IOException {
VirtualFile f = createProjectSubFile("src/test/java/A.java", "import org.apache.commons.io.IOUtils;\n" +
"\n" +
"public class Aaa {\n" +
"\n" +
" public void xxx() {\n" +
" IOUtil<caret>s u;\n" +
" }\n" +
"\n" +
"}");
importProject("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>");
myFixture.configureFromExistingVirtualFile(f);
IntentionAction intentionAction = findAddMavenIntention();
MavenArtifactSearchDialog.ourResultForTest = Collections.singletonList(new MavenId("commons-io", "commons-io", "2.4"));
intentionAction.invoke(myProject, myFixture.getEditor(), myFixture.getFile());
String pomText = PsiManager.getInstance(myProject).findFile(myProjectPom).getText();
assert pomText.matches(
"(?s).*<dependency>\\s*<groupId>commons-io</groupId>\\s*<artifactId>commons-io</artifactId>\\s*<version>2.4</version>\\s*<scope>test</scope>\\s*</dependency>.*");
}
// public void testAddDependencyStatic() throws IOException {
// VirtualFile f = createProjectSubFile("src/main/java/A.java", "import org.apache.commons.io.IOUtils;\n" +
// "\n" +
// "public class Aaa {\n" +
// "\n" +
// " public void xxx() {\n" +
// " IOUtil<caret>s.closeQuietly(null);\n" +
// " }\n" +
// "\n" +
// "}");
//
// importProject("<groupId>test</groupId>" +
// "<artifactId>project</artifactId>" +
// "<version>1</version>");
//
// myFixture.configureFromExistingVirtualFile(f);
//
// getIntentionAtCaret("Add Maven");
// }
}