You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by fs...@apache.org on 2017/02/20 20:53:27 UTC
svn commit: r1783797 -
/jmeter/trunk/test/src/org/apache/jorphan/reflect/TestClassFinder.java
Author: fschumacher
Date: Mon Feb 20 20:53:27 2017
New Revision: 1783797
URL: http://svn.apache.org/viewvc?rev=1783797&view=rev
Log:
More tests and make used directories/files absolute, so that they match the classpath entries.
Modified:
jmeter/trunk/test/src/org/apache/jorphan/reflect/TestClassFinder.java
Modified: jmeter/trunk/test/src/org/apache/jorphan/reflect/TestClassFinder.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/test/src/org/apache/jorphan/reflect/TestClassFinder.java?rev=1783797&r1=1783796&r2=1783797&view=diff
==============================================================================
--- jmeter/trunk/test/src/org/apache/jorphan/reflect/TestClassFinder.java (original)
+++ jmeter/trunk/test/src/org/apache/jorphan/reflect/TestClassFinder.java Mon Feb 20 20:53:27 2017
@@ -18,7 +18,11 @@
package org.apache.jorphan.reflect;
+import java.io.FileNotFoundException;
import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
import java.util.List;
import java.util.stream.Collectors;
@@ -26,28 +30,38 @@ import org.apache.jmeter.util.JMeterUtil
import org.apache.logging.log4j.LoggingException;
import org.hamcrest.CoreMatchers;
import org.junit.Assert;
+import org.junit.Before;
import org.junit.Test;
public class TestClassFinder {
- private static final String[] LIB_DIRS = new String[] { getJMeterHome() };
+ private String[] libDirs;
- private static String getJMeterHome() {
+ private String getJMeterHome() throws Exception {
+ String path;
if (JMeterUtils.getJMeterHome() == null) {
- return "./lib";
+ path = "lib";
+ } else {
+ path = JMeterUtils.getJMeterHome() + "/lib";
}
- return JMeterUtils.getJMeterHome() + "/lib";
+ return Paths.get(path).toRealPath().toString();
}
+
+ @Before
+ public void setUp() throws Exception {
+ libDirs = new String[] { getJMeterHome() };
+ }
+
@Test
public void testFindClassesThatExtendStringArrayClassOfQArray() throws IOException {
- List<String> findClassesThatExtend = ClassFinder.findClassesThatExtend(LIB_DIRS,
+ List<String> findClassesThatExtend = ClassFinder.findClassesThatExtend(libDirs,
new Class<?>[] { Exception.class });
Assert.assertThat(findClassesThatExtend, CoreMatchers.hasItem(LoggingException.class.getName()));
}
@Test
public void testFindClassesThatExtendStringArrayClassOfQArrayTrue() throws Exception {
- List<String> findClassesThatExtend = ClassFinder.findClassesThatExtend(LIB_DIRS,
+ List<String> findClassesThatExtend = ClassFinder.findClassesThatExtend(libDirs,
new Class<?>[] { Object.class }, true);
Assert.assertFalse(
findClassesThatExtend.stream().filter(s -> s.contains("$")).collect(Collectors.toList()).isEmpty());
@@ -55,7 +69,7 @@ public class TestClassFinder {
@Test
public void testFindClassesThatExtendStringArrayClassOfQArrayFalse() throws Exception {
- List<String> findClassesThatExtend = ClassFinder.findClassesThatExtend(LIB_DIRS,
+ List<String> findClassesThatExtend = ClassFinder.findClassesThatExtend(libDirs,
new Class<?>[] { Exception.class }, false);
Assert.assertTrue(
findClassesThatExtend.stream().filter(s -> s.contains("$")).collect(Collectors.toList()).isEmpty());
@@ -64,7 +78,7 @@ public class TestClassFinder {
@Test
public void testFindClassesThatExtendStringArrayClassOfQArrayBooleanStringString() throws Exception {
- List<String> findClassesThatExtend = ClassFinder.findClassesThatExtend(LIB_DIRS,
+ List<String> findClassesThatExtend = ClassFinder.findClassesThatExtend(libDirs,
new Class<?>[] { Exception.class }, false, "org.apache.log", "core");
Assert.assertTrue(
findClassesThatExtend.stream().filter(s -> s.contains("core")).collect(Collectors.toList()).isEmpty());
@@ -72,13 +86,46 @@ public class TestClassFinder {
}
@Test
+ public void testFindClassesThatExtendStringArrayClassOfQArrayBooleanStringStringTrue() throws Exception {
+ List<String> annotatedClasses = ClassFinder.findClassesThatExtend(libDirs,
+ new Class<?>[] { java.beans.Transient.class }, false, null, null, true);
+ Assert.assertFalse(annotatedClasses.isEmpty());
+ }
+
+ @Test
+ public void testFindAnnotatedClasses() throws Exception {
+ @SuppressWarnings("unchecked")
+ List<String> annotatedClasses = ClassFinder.findAnnotatedClasses(libDirs,
+ new Class[] { java.beans.Transient.class});
+ Assert.assertFalse(annotatedClasses.isEmpty());
+ }
+
+ @Test
+ public void testFindAllClassesInJar() throws Exception {
+ Path jarPath = Files.find(Paths.get(libDirs[0]), 1, (p, a) -> a.isRegularFile()).findFirst()
+ .orElseThrow(() -> new FileNotFoundException("no jars found")).toRealPath();
+ List<String> annotatedClasses = ClassFinder.findClasses(new String[] { jarPath.toString() },
+ c -> true);
+ Assert.assertFalse(annotatedClasses.isEmpty());
+ }
+
+ @Test
+ public void testFindAnnotatedInnerClasses() throws Exception {
+ @SuppressWarnings("unchecked")
+ List<String> annotatedClasses = ClassFinder.findAnnotatedClasses(libDirs,
+ new Class[] { java.lang.Deprecated.class}, true);
+ Assert.assertTrue(annotatedClasses.stream().filter(s->s.contains("$")).findAny().isPresent());
+ Assert.assertFalse(annotatedClasses.isEmpty());
+ }
+
+ @Test
public void testFindClasses() throws IOException {
- Assert.assertFalse(ClassFinder.findClasses(LIB_DIRS, className -> true).isEmpty());
+ Assert.assertFalse(ClassFinder.findClasses(libDirs, className -> true).isEmpty());
}
@Test
public void testFindClassesNone() throws IOException {
- Assert.assertTrue(ClassFinder.findClasses(LIB_DIRS, className -> false).isEmpty());
+ Assert.assertTrue(ClassFinder.findClasses(libDirs, className -> false).isEmpty());
}
}