package com.xiongyingqi.util;
import java.io.Serializable;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.Collection;
@PackageScannerTest.PackageScannerTestAnnotation
public class PackageScannerTest implements Serializable, CharSequence {
@Override
public int length() {
return 0;
}
@Override
public char charAt(int index) {
return 0;
}
@Override
public CharSequence subSequence(int start, int end) {
return null;
}
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE})
@interface PackageScannerTestAnnotation {
}
@org.junit.Test
public void testScan() throws Exception {
Collection<Class<?>> scan = PackageScanner.newScanner()
.addPackage(PackageScanner.class.getPackage())
.scan();
org.junit.Assert.assertTrue(scan.size() > 0);
}
@org.junit.Test
public void testWithAnnotation() throws Exception {
Collection<Class<?>> scan = PackageScanner.newScanner()
.addPackage(PackageScanner.class.getPackage())
.orAnnotation(PackageScannerTestAnnotation.class)
.scan();
org.junit.Assert.assertEquals(scan.iterator().next(), getClass());
}
@org.junit.Test
public void testStartWithString() throws Exception {
Collection<Class<?>> scan = PackageScanner.newScanner()
.addPackage(PackageScanner.class.getPackage())
.orStartWithString("PackageScannerTest")
.scan();
org.junit.Assert.assertTrue(scan.contains(getClass()));
System.out.println(scan);
}
@org.junit.Test
public void testEndWithString() throws Exception {
Collection<Class<?>> scan = PackageScanner.newScanner()
.addPackage(PackageScanner.class.getPackage())
.orEndWithString("ScannerTest")
.scan();
org.junit.Assert.assertTrue(scan.contains(getClass()));
System.out.println(scan);
}
@org.junit.Test
public void testAndImplementsInterface() throws Exception {
Collection<Class<?>> scan = PackageScanner.newScanner()
.addPackage(PackageScanner.class.getPackage())
.andInterface(Serializable.class)
.andInterface(CharSequence.class)
.scan();
System.out.println(scan);
org.junit.Assert.assertTrue(scan.contains(getClass()));
}
@org.junit.Test
public void testOrImplementsInterface() throws Exception {
Collection<Class<?>> scan = PackageScanner.newScanner()
.addPackage(PackageScanner.class.getPackage())
.orInterface(Serializable.class)
.orInterface(CharSequence.class)
.scan();
System.out.println(scan);
org.junit.Assert.assertTrue(scan.contains(getClass()));
}
@org.junit.Test
public void testImplementsInterface() throws Exception {
Collection<Class<?>> scan = PackageScanner.newScanner()
.addPackage(getClass().getPackage())
.orInterface(TestInterface.class)
.scan();
System.out.println(scan);
Assert.notNull(scan);
// org.junit.Assert.assertTrue(scan.contains(getClass()));
}
}