/****************************************************************************** * Copyright (c) 2006, 2010 VMware Inc. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * and Apache License v2.0 which accompanies this distribution. * The Eclipse Public License is available at * http://www.eclipse.org/legal/epl-v10.html and the Apache License v2.0 * is available at http://www.opensource.org/licenses/apache2.0.php. * You may elect to redistribute this code under either of these licenses. * * Contributors: * VMware Inc. *****************************************************************************/ package org.eclipse.gemini.blueprint.io.internal; import java.net.URL; import junit.framework.TestCase; import org.eclipse.gemini.blueprint.mock.ArrayEnumerator; import org.springframework.core.io.Resource; import org.springframework.core.io.UrlResource; import org.springframework.util.ResourceUtils; /** * * @author Costin Leau */ public class OsgiResourceUtilsTest extends TestCase { public void testNullGetPrefix() throws Exception { assertNotNull(OsgiResourceUtils.getPrefix(null)); assertEquals(OsgiResourceUtils.EMPTY_PREFIX, OsgiResourceUtils.getPrefix(null)); } public void testGetPrefix() { String prefix = "foo" + OsgiResourceUtils.PREFIX_DELIMITER; String suffix = "bar"; String path = prefix + suffix; assertEquals(prefix, OsgiResourceUtils.getPrefix(path)); } public void testDoublePrefix() throws Exception { String path = "noSuffix"; assertEquals(OsgiResourceUtils.EMPTY_PREFIX, OsgiResourceUtils.getPrefix(path)); } public void testGetSearchTypeUnknown() { assertEquals(OsgiResourceUtils.PREFIX_TYPE_UNKNOWN, OsgiResourceUtils.getSearchType("xxx:path")); } public void testGetSearchTypeUnspecified() { assertEquals(OsgiResourceUtils.PREFIX_TYPE_NOT_SPECIFIED, OsgiResourceUtils.getSearchType("path")); } public void testGetSearchTypeBundleSpace() { assertEquals(OsgiResourceUtils.PREFIX_TYPE_BUNDLE_SPACE, OsgiResourceUtils.getSearchType("osgibundle:path")); } public void testGetSearchTypeBundleJar() { assertEquals(OsgiResourceUtils.PREFIX_TYPE_BUNDLE_JAR, OsgiResourceUtils.getSearchType("osgibundlejar:path")); } public void testGetSearchTypeBundleClassSpace() { assertEquals(OsgiResourceUtils.PREFIX_TYPE_CLASS_SPACE, OsgiResourceUtils.getSearchType(ResourceUtils.CLASSPATH_URL_PREFIX + "path")); } public void testGetSearchTypeBundleClassAllSpace() { assertEquals(OsgiResourceUtils.PREFIX_TYPE_CLASS_ALL_SPACE, OsgiResourceUtils.getSearchType("classpath*:path")); } public void testIsClassPathType() { assertTrue(OsgiResourceUtils.isClassPathType(OsgiResourceUtils.PREFIX_TYPE_CLASS_ALL_SPACE)); assertTrue(OsgiResourceUtils.isClassPathType(OsgiResourceUtils.PREFIX_TYPE_CLASS_SPACE)); assertFalse(OsgiResourceUtils.isClassPathType(OsgiResourceUtils.PREFIX_TYPE_BUNDLE_JAR)); assertFalse(OsgiResourceUtils.isClassPathType(OsgiResourceUtils.PREFIX_TYPE_BUNDLE_SPACE)); assertFalse(OsgiResourceUtils.isClassPathType(OsgiResourceUtils.PREFIX_TYPE_NOT_SPECIFIED)); assertFalse(OsgiResourceUtils.isClassPathType(OsgiResourceUtils.PREFIX_TYPE_UNKNOWN)); } public void testStripPrefixWithNoPrefix() { String path = "path"; assertEquals(path, OsgiResourceUtils.stripPrefix(path)); } public void testStripPrefix() throws Exception { String prefix = "xxx:"; String path = "path"; assertEquals(path, OsgiResourceUtils.stripPrefix(prefix + path)); } public void testConvertURLArraytoResourceArray() throws Exception { URL[] urls = new URL[] { new URL("file:///"), getClass().getResource("/" + getClass().getName().replace('.', '/') + ".class") }; Resource[] resources = OsgiResourceUtils.convertURLArraytoResourceArray(urls); assertNotNull(resources); assertEquals(2, resources.length); for (int i = 0; i < resources.length; i++) { assertTrue(resources[i] instanceof UrlResource); assertEquals(urls[i], resources[i].getURL()); } } public void testConvertNullURLArraytoResourceArray() { assertNotNull(OsgiResourceUtils.convertURLArraytoResourceArray(null)); assertEquals(0, OsgiResourceUtils.convertURLArraytoResourceArray(null).length); } public void testConvertURLEnumerationToResourceArray() throws Exception { URL[] urls = new URL[] { new URL("file:///"), getClass().getResource("/" + getClass().getName().replace('.', '/') + ".class") }; ArrayEnumerator enm = new ArrayEnumerator(urls); Resource[] resources = OsgiResourceUtils.convertURLEnumerationToResourceArray(enm); assertNotNull(resources); assertEquals(2, resources.length); for (int i = 0; i < resources.length; i++) { assertTrue(resources[i] instanceof UrlResource); assertEquals(urls[i], resources[i].getURL()); } } public void testConvertNullURLEnumerationToResourceArray() { assertNotNull(OsgiResourceUtils.convertURLEnumerationToResourceArray(null)); assertEquals(0, OsgiResourceUtils.convertURLEnumerationToResourceArray(null).length); } public void testFindUpperFolderWOAFolder() throws Exception { String path = "path"; assertEquals(path, OsgiResourceUtils.findUpperFolder(path)); } public void testFindUpperFolderWOAProperString() throws Exception { String path = "p"; assertEquals(path, OsgiResourceUtils.findUpperFolder(path)); } public void testFindUpperFolderWRootFolder() throws Exception { String path = "/"; assertEquals(path, OsgiResourceUtils.findUpperFolder(path)); } public void testFindUpperFolderWDoubleFolders() throws Exception { String path = "/path1/path2/"; assertEquals("/path1/", OsgiResourceUtils.findUpperFolder(path)); } public void testFindUpperFolderWFileInsideFolder() throws Exception { String path = "/path/file"; assertEquals("/path/", OsgiResourceUtils.findUpperFolder(path)); } public void testFindUpperFolderWRelativePath() throws Exception { String path = "path/file"; assertEquals("path/", OsgiResourceUtils.findUpperFolder(path)); } }