blob: 67fb844f7a3cb2c88bd76eee6c3e2a67556155bd [file] [log] [blame]
/*
* Copyright 2000-2009 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.indices;
import java.util.List;
public class MavenProjectIndicesManagerTest extends MavenIndicesTestCase {
private MavenIndicesTestFixture myIndicesFixture;
@Override
protected void setUp() throws Exception {
super.setUp();
myIndicesFixture = new MavenIndicesTestFixture(myDir, myProject);
myIndicesFixture.setUp();
}
@Override
protected void tearDown() throws Exception {
myIndicesFixture.tearDown();
super.tearDown();
}
public void testAutomaticallyAddAndUpdateLocalRepository() throws Exception {
List<MavenIndex> indices = myIndicesFixture.getProjectIndicesManager().getIndices();
assertEquals(1, indices.size());
assertEquals(MavenIndex.Kind.LOCAL, indices.get(0).getKind());
assertTrue(indices.get(0).getRepositoryPathOrUrl().endsWith("local1"));
assertTrue(myIndicesFixture.getProjectIndicesManager().hasVersion("junit", "junit", "4.0"));
}
public void testAutomaticallyAddRemoteRepositoriesOnProjectUpdate() throws Exception {
importProject("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>");
List<MavenIndex> indices = myIndicesFixture.getProjectIndicesManager().getIndices();
assertEquals(2, indices.size());
assertTrue(indices.get(0).getRepositoryPathOrUrl().endsWith("local1"));
assertEquals("http://repo1.maven.org/maven2", indices.get(1).getRepositoryPathOrUrl());
}
public void testUpdatingIndicesOnResolution() throws Exception {
removeFromLocalRepository("junit/junit/4.0");
myIndicesFixture.getProjectIndicesManager().scheduleUpdate(myIndicesFixture.getProjectIndicesManager().getIndices());
assertUnorderedElementsAreEqual(myIndicesFixture.getProjectIndicesManager().getVersions("junit", "junit"), "3.8.1", "3.8.2");
importProject("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>" +
"<dependencies>" +
" <dependency>" +
" <groupId>junit</groupId>" +
" <artifactId>junit</artifactId>" +
" <version>4.0</version>" +
" </dependency>" +
"</dependencies>");
assertUnorderedElementsAreEqual(myIndicesFixture.getProjectIndicesManager().getVersions("junit", "junit"), "3.8.1", "3.8.2", "4.0");
}
public void testUpdatingIndexUsingMirrors() throws Exception {
myIndicesFixture.tearDown();
myIndicesFixture = new MavenIndicesTestFixture(myDir, myProject, "local2", "remote_mirror");
myIndicesFixture.setUp();
updateSettingsXmlFully("<settings>" +
" <mirrors>" +
" </mirrors>" +
"</settings>");
importProject("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>" +
"<repositories>" +
" <repository>" +
" <id>central</id>" +
" <url>xxx://does.not.matter</url>" +
" </repository>" +
"</repositories>");
myIndicesFixture.getProjectIndicesManager().scheduleUpdateAll();
assertUnorderedElementsAreEqual(myIndicesFixture.getProjectIndicesManager().getGroupIds(), "test", "jmock");
updateSettingsXmlFully("<settings>" +
" <mirrors>" +
" <mirror>" +
" <id>nexus</id>" +
" <mirrorOf>anotherRepoId</mirrorOf>" +
" <url>file:///" + myIndicesFixture.getRepositoryHelper().getTestDataPath("remote_mirror") + "</url>" +
" </mirror>" +
" </mirrors>" +
"</settings>");
myIndicesFixture.getProjectIndicesManager().scheduleUpdateAll();
assertUnorderedElementsAreEqual(myIndicesFixture.getProjectIndicesManager().getGroupIds(), "test", "jmock");
updateSettingsXmlFully("<settings>" +
" <mirrors>" +
" <mirror>" +
" <id>nexus</id>" +
" <mirrorOf>central</mirrorOf>" +
" <url>file:///" + myIndicesFixture.getRepositoryHelper().getTestDataPath("remote_mirror") + "</url>" +
" </mirror>" +
" </mirrors>" +
"</settings>");
myIndicesFixture.getProjectIndicesManager().scheduleUpdateAll();
assertUnorderedElementsAreEqual(myIndicesFixture.getProjectIndicesManager().getGroupIds(), "test", "jmock", "junit");
myIndicesFixture.tearDown();
myIndicesFixture = new MavenIndicesTestFixture(myDir, myProject, "local2", "remote_mirror");
myIndicesFixture.setUp();
updateSettingsXmlFully("<settings>" +
" <mirrors>" +
" <mirror>" +
" <id>nexus</id>" +
" <mirrorOf>*</mirrorOf>" +
" <url>file:///" + myIndicesFixture.getRepositoryHelper().getTestDataPath("remote_mirror") + "</url>" +
" </mirror>" +
" </mirrors>" +
"</settings>");
myIndicesFixture.getProjectIndicesManager().scheduleUpdateAll();
assertUnorderedElementsAreEqual(myIndicesFixture.getProjectIndicesManager().getGroupIds(), "test", "jmock", "junit");
}
public void testCheckingLocalRepositoryForAbsentIndices() throws Exception {
myIndicesFixture.tearDown();
myIndicesFixture = new MavenIndicesTestFixture(myDir, myProject, "local2");
myIndicesFixture.setUp();
myIndicesFixture.addToRepository("local1");
assertUnorderedElementsAreEqual(
myIndicesFixture.getProjectIndicesManager().getGroupIds(), "jmock");
assertTrue(myIndicesFixture.getProjectIndicesManager().hasGroupId("junit"));
assertFalse(myIndicesFixture.getProjectIndicesManager().hasGroupId("xxx"));
assertTrue(myIndicesFixture.getProjectIndicesManager().hasArtifactId("junit", "junit"));
assertFalse(myIndicesFixture.getProjectIndicesManager().hasArtifactId("junit", "xxx"));
assertFalse(myIndicesFixture.getProjectIndicesManager().hasArtifactId("xxx", "junit"));
assertTrue(myIndicesFixture.getProjectIndicesManager().hasVersion("junit", "junit", "4.0"));
assertFalse(myIndicesFixture.getProjectIndicesManager().hasVersion("junit", "junit", "xxx"));
assertFalse(myIndicesFixture.getProjectIndicesManager().hasVersion("junit", "xxx", "4.0"));
assertFalse(myIndicesFixture.getProjectIndicesManager().hasVersion("xxx", "junit", "4.0"));
//assertUnorderedElementsAreEqual(
// myIndicesFixture.getProjectIndicesManager().getGroupIds(), "junit", "jmock");
//assertUnorderedElementsAreEqual(
// myIndicesFixture.getProjectIndicesManager().getArtifactIds("junit"), "junit");
//assertUnorderedElementsAreEqual(
// myIndicesFixture.getProjectIndicesManager().getVersions("junit", "junit"), "4.0");
}
}