blob: 76dcac100beb0e3662f8b8381aa0613fd9d82944 [file] [log] [blame]
/*=============================================================================#
# Copyright (c) 2019 Stephan Wahlbrink <sw@wahlbrink.eu> and others.
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License 2.0 which is available at
# https://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
# which is available at https://www.apache.org/licenses/LICENSE-2.0.
#
# SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
#
# Contributors:
# Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
#=============================================================================*/
package org.eclipse.statet.rj.server.util;
import static org.junit.Assert.assertEquals;
import org.junit.Assume;
import org.junit.Test;
import org.eclipse.statet.jcommons.lang.NonNullByDefault;
import org.eclipse.statet.rj.server.util.PathEntryProvider.DevBinPathEntryProvider;
import org.eclipse.statet.rj.server.util.PathEntryProvider.JarFilePathEntryProvider;
@NonNullByDefault
public class PathEntryProviderTest {
public PathEntryProviderTest() {
}
@Test
public void detectLibPaths_DevFolder() throws Exception { // in IDE
final PathEntryProvider provider= PathEntryProvider.detectLibPaths(
"file:/../org.eclipse.statet-rj/core/org.eclipse.statet.rj.server/target/classes/",
null );
assertEquals(DevBinPathEntryProvider.class, provider.getClass());
}
@Test
public void detectLibPaths_SimpleServerJar() throws Exception { // e.g. console server
final PathEntryProvider provider= PathEntryProvider.detectLibPaths(
"jar:file:/../rserver/org.eclipse.statet.rj.server.jar!/",
null );
assertEquals(JarFilePathEntryProvider.class, provider.getClass());
final JarFilePathEntryProvider jarProvider= (JarFilePathEntryProvider) provider;
assertEquals("org.eclipse.statet.rj.server",
jarProvider.getBundleId("org.eclipse.statet.rj.server.jar") );
}
@Test
public void detectLibPaths_TargetJar_Snapshot() throws Exception {
final PathEntryProvider provider= PathEntryProvider.detectLibPaths(
"jar:file:/../org.eclipse.statet-rj/core/org.eclipse.statet.rj.server/target/org.eclipse.statet.rj.server-4.0.0-SNAPSHOT.jar!/",
null );
assertEquals(JarFilePathEntryProvider.class, provider.getClass());
final JarFilePathEntryProvider jarProvider= (JarFilePathEntryProvider) provider;
assertEquals("org.eclipse.statet.rj.server",
jarProvider.getBundleId("org.eclipse.statet.rj.server-4.0.0-SNAPSHOT.jar") );
}
@Test
public void detectLibPaths_TargetJar_Release() throws Exception {
final PathEntryProvider provider= PathEntryProvider.detectLibPaths(
"jar:file:/../org.eclipse.statet-rj/core/org.eclipse.statet.rj.server/target/org.eclipse.statet.rj.server-4.0.0.201906060800-r.jar!/",
null );
assertEquals(JarFilePathEntryProvider.class, provider.getClass());
final JarFilePathEntryProvider jarProvider= (JarFilePathEntryProvider) provider;
assertEquals("org.eclipse.statet.rj.server",
jarProvider.getBundleId("org.eclipse.statet.rj.server-4.0.0.201906060800-r.jar") );
}
@Test
public void detectLibPaths_NexusJar() throws Exception {
final PathEntryProvider provider= PathEntryProvider.detectLibPaths(
"jar:file:/../WEB-INF/lib/org.eclipse.statet.rj.server-4.0.0-20190529.154707-7.jar!/",
null );
assertEquals(JarFilePathEntryProvider.class, provider.getClass());
final JarFilePathEntryProvider jarProvider= (JarFilePathEntryProvider) provider;
assertEquals("org.eclipse.statet.rj.server",
jarProvider.getBundleId("org.eclipse.statet.rj.server-4.0.0-20190529.154707-7.jar") );
}
@Test
public void detectLibPaths_NestedJar_Snapshot() throws Exception { // e.g. R help server
final String folder= System.getenv("STATET_TEST_FILES");
Assume.assumeTrue(folder != null);
final PathEntryProvider provider= PathEntryProvider.detectLibPaths(
"jar:file:/" + folder.replace('\\', '/') + "/org.eclipse.statet.rhelp.server.jar!/BOOT-INF/lib/org.eclipse.statet.rj.server-4.0.0-SNAPSHOT.jar!/",
null );
assertEquals(JarFilePathEntryProvider.class, provider.getClass());
final JarFilePathEntryProvider jarProvider= (JarFilePathEntryProvider) provider;
assertEquals("org.eclipse.statet.rj.server",
jarProvider.getBundleId("org.eclipse.statet.rj.server-4.0.0-SNAPSHOT.jar") );
}
@Test
public void detectLibPaths_NestedJar_Nexus() throws Exception { // e.g. R help server
final String folder= System.getenv("STATET_TEST_FILES");
Assume.assumeTrue(folder != null);
final PathEntryProvider provider= PathEntryProvider.detectLibPaths(
"jar:file:/" + folder.replace('\\', '/') + "/rhelp.server-4.0.0-SNAPSHOT.jar!/BOOT-INF/lib/org.eclipse.statet.rj.server-4.0.0-20190529.154707-7.jar!/",
null );
assertEquals(JarFilePathEntryProvider.class, provider.getClass());
final JarFilePathEntryProvider jarProvider= (JarFilePathEntryProvider) provider;
assertEquals("org.eclipse.statet.rj.server",
jarProvider.getBundleId("org.eclipse.statet.rj.server-4.0.0-20190529.154707-7.jar") );
}
@Test
public void detectLibPaths_NestedJar_Release() throws Exception { // e.g. R help server
final String folder= System.getenv("STATET_TEST_FILES");
Assume.assumeTrue(folder != null);
final PathEntryProvider provider= PathEntryProvider.detectLibPaths(
"jar:file:/" + folder.replace('\\', '/') + "/org.eclipse.statet.rhelp.server.jar!/BOOT-INF/lib/org.eclipse.statet.rj.server-4.0.0.201906060800-r.jar!/",
null );
assertEquals(JarFilePathEntryProvider.class, provider.getClass());
final JarFilePathEntryProvider jarProvider= (JarFilePathEntryProvider) provider;
assertEquals("org.eclipse.statet.rj.server",
jarProvider.getBundleId("org.eclipse.statet.rj.server-4.0.0.201906060800-r.jar") );
}
}