001: /*
002: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
003: *
004: * Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
005: *
006: * The contents of this file are subject to the terms of either the GNU
007: * General Public License Version 2 only ("GPL") or the Common
008: * Development and Distribution License("CDDL") (collectively, the
009: * "License"). You may not use this file except in compliance with the
010: * License. You can obtain a copy of the License at
011: * http://www.netbeans.org/cddl-gplv2.html
012: * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
013: * specific language governing permissions and limitations under the
014: * License. When distributing the software, include this License Header
015: * Notice in each file and include the License file at
016: * nbbuild/licenses/CDDL-GPL-2-CP. Sun designates this
017: * particular file as subject to the "Classpath" exception as provided
018: * by Sun in the GPL Version 2 section of the License file that
019: * accompanied this code. If applicable, add the following below the
020: * License Header, with the fields enclosed by brackets [] replaced by
021: * your own identifying information:
022: * "Portions Copyrighted [year] [name of copyright owner]"
023: *
024: * Contributor(s):
025: *
026: * The Original Software is NetBeans. The Initial Developer of the Original
027: * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
028: * Microsystems, Inc. All Rights Reserved.
029: *
030: * If you wish your version of this file to be governed by only the CDDL
031: * or only the GPL Version 2, indicate your decision by adding
032: * "[Contributor] elects to include this software in this distribution
033: * under the [CDDL or GPL Version 2] license." If you do not indicate a
034: * single choice of license, a recipient has the option to distribute
035: * your version of this file under either the CDDL, the GPL Version 2 or
036: * to extend the choice of license to its licensees as provided above.
037: * However, if you add GPL Version 2 code and therefore, elected the GPL
038: * Version 2 license, then the option applies only if the new code is
039: * made subject to such option by the copyright holder.
040: */
041:
042: package org.netbeans.modules.projectimport.jbuilder.parsing;
043:
044: import java.io.File;
045: import java.io.FileOutputStream;
046: import java.io.InputStream;
047: import java.io.OutputStream;
048: import org.netbeans.junit.NbTestCase;
049: import org.openide.filesystems.FileUtil;
050: import org.netbeans.modules.projectimport.j2seimport.AbstractProject;
051:
052: /**
053: *
054: * @author Radek Matous
055: */
056: public class UserLibrarySupportTest extends NbTestCase {
057: private static final String[] reachable_libs = {
058: "MainTest.library", "RegularDepsTest.library" };
059: private static final String[] un_reachable_libs = {
060: "RegularDepsTest2.library", "CyclicDepsTest.library" };
061: File libDir;
062:
063: static {
064: System.setProperty("projectimport.logging.level", "WARNING");
065: }
066:
067: public UserLibrarySupportTest(String testName) {
068: super (testName);
069: }
070:
071: protected void setUp() throws Exception {
072: super .setUp();
073: clearWorkDir();
074: UserLibrarySupport.setInstallDirLib(null);
075: UserLibrarySupport.setUserHomeLib(null);
076: libDir = new File(getWorkDir(), getName());
077: FileUtil.createFolder(libDir);
078: assertTrue(libDir.exists());
079:
080: for (int i = 0; i < reachable_libs.length; i++) {
081: File f = new File(getWorkDir(), reachable_libs[i]);
082: InputStream is = getClass().getResourceAsStream(
083: reachable_libs[i]);
084: OutputStream os = new FileOutputStream(f);
085: FileUtil.copy(is, os);
086: is.close();
087: os.close();
088: assertTrue(f.exists());
089: }
090:
091: for (int i = 0; i < un_reachable_libs.length; i++) {
092: File f = new File(libDir, un_reachable_libs[i]);
093: InputStream is = getClass().getResourceAsStream(
094: un_reachable_libs[i]);
095: OutputStream os = new FileOutputStream(f);
096: FileUtil.copy(is, os);
097: is.close();
098: os.close();
099: assertTrue(f.exists());
100: }
101: }
102:
103: public void testInstallLibs() throws Exception {
104: libDirs(true);
105: }
106:
107: public void testHomeLibs() throws Exception {
108: libDirs(false);
109: }
110:
111: public void libDirs(boolean install) throws Exception {
112: AbstractProject.UserLibrary ul = UserLibrarySupport
113: .getInstance("MainTest", getWorkDir());
114: assertNotNull(ul);
115: assertEquals(1, ul.getDependencies().size());
116: if (install) {
117: UserLibrarySupport.setInstallDirLib(libDir);
118: } else {
119: UserLibrarySupport.setUserHomeLib(libDir);
120: }
121: ul = UserLibrarySupport.getInstance("MainTest", getWorkDir());
122: assertNotNull(ul);
123: assertEquals(3, ul.getDependencies().size());
124: }
125: }
|