| /* |
| * Copyright 2000-2012 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.jps.model; |
| |
| import com.intellij.util.containers.ContainerUtilRt; |
| import org.jetbrains.jps.model.java.JpsJavaLibraryType; |
| import org.jetbrains.jps.model.java.JpsJavaSdkType; |
| import org.jetbrains.jps.model.library.*; |
| |
| /** |
| * @author nik |
| */ |
| public class JpsLibraryTest extends JpsModelTestCase { |
| public void testAddLibrary() { |
| JpsLibrary a = myProject.addLibrary("a", JpsJavaLibraryType.INSTANCE); |
| JpsLibraryCollection collection = myProject.getLibraryCollection(); |
| assertSameElements(collection.getLibraries(), a); |
| assertSameElements(ContainerUtilRt.newArrayList(collection.getLibraries(JpsJavaLibraryType.INSTANCE)), a); |
| assertEmpty(ContainerUtilRt.newArrayList(collection.getLibraries(JpsJavaSdkType.INSTANCE))); |
| } |
| |
| public void testAddRoot() { |
| final JpsLibrary library = myProject.addLibrary("a", JpsJavaLibraryType.INSTANCE); |
| library.addRoot("file://my-url", JpsOrderRootType.COMPILED); |
| assertEquals("file://my-url", assertOneElement(library.getRoots(JpsOrderRootType.COMPILED)).getUrl()); |
| } |
| |
| public void testModifiableCopy() { |
| myProject.addLibrary("a", JpsJavaLibraryType.INSTANCE); |
| |
| final JpsModel modifiableModel = myModel.createModifiableModel(new TestJpsEventDispatcher()); |
| final JpsLibrary modifiable = assertOneElement(modifiableModel.getProject().getLibraryCollection().getLibraries()); |
| modifiable.addRoot("file://my-url", JpsOrderRootType.COMPILED); |
| modifiableModel.commit(); |
| |
| final JpsLibrary library = assertOneElement(myProject.getLibraryCollection().getLibraries()); |
| assertEquals("file://my-url", assertOneElement(library.getRoots(JpsOrderRootType.COMPILED)).getUrl()); |
| assertEmpty(library.getRoots(JpsOrderRootType.SOURCES)); |
| } |
| |
| public void testCreateReferenceByLibrary() { |
| final JpsLibrary library = myProject.addLibrary("l", JpsJavaLibraryType.INSTANCE); |
| final JpsLibraryReference reference = library.createReference().asExternal(myModel); |
| assertEquals("l", reference.getLibraryName()); |
| assertSame(library, reference.resolve()); |
| } |
| |
| public void testCreateReferenceByName() { |
| JpsLibraryReference reference = JpsElementFactory.getInstance().createLibraryReference("l", myProject.createReference()).asExternal(myModel); |
| assertEquals("l", reference.getLibraryName()); |
| assertNull(reference.resolve()); |
| |
| final JpsLibrary library = myProject.addLibrary("l", JpsJavaLibraryType.INSTANCE); |
| assertSame(library, reference.resolve()); |
| } |
| } |