package org.esmerilprogramming.overtown.scanner; import java.io.IOException; import java.net.URISyntaxException; import java.net.URL; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import org.junit.Before; import org.junit.Ignore; import org.junit.Test; import static org.mockito.Mockito.*; import static org.junit.Assert.*; public class ClassFileVisitorTest { private ClassFileVisitor fileVisitor; private ClassLoader classLoader; @Before public void setUp() { classLoader = mock(ClassLoader.class); fileVisitor = new ClassFileVisitor(classLoader); } @Test @Ignore public void t() throws IOException, URISyntaxException { ClassLoader classLoader = this.getClass().getClassLoader(); ClassFileVisitor visitor = new ClassFileVisitor(classLoader); URL url = ClassFileVisitorTest.class.getResource("/"); Files.walkFileTree(Paths.get( Paths.get( url.toURI() ).toString() + "/com/clover/scanner/testpackage"), visitor); ScannerResult result = visitor.getResult(); System.out.println(result.getServlets()); } @Test public void givenAPathToAClassFileShouldReturnTrue() throws URISyntaxException { URL url = ClassFileVisitorTest.class.getResource("/"); Path path = Paths.get( Paths.get( url.toURI() ).toString() + "/com/clover/scanner/testpackage/First.class"); assertTrue("Sould return true when it is a class", fileVisitor.isClass(path)); } @Test public void givenAPathToANonClassFileShouldReturnFalse() throws URISyntaxException { URL url = ClassFileVisitorTest.class.getResource("/"); Path path = Paths.get( Paths.get( url.toURI() ).toString() + "/com/clover/scanner/"); assertFalse("Sould return false when it is not class", fileVisitor.isClass(path)); } @Test public void givenAClassFilePathShouldReturnStringWithThePackageAndClass() throws URISyntaxException { URL url = ClassFileVisitorTest.class.getResource("/"); Path path = Paths.get( Paths.get( url.toURI() ).toString() + "/com/clover/scanner/testpackage/First.class"); String expectedResult = "com.clover.scanner.testpackage.First"; fileVisitor.setPathToReplace( Paths.get( url.toURI() ).toString() ); String result = fileVisitor.asPackageClass(path); assertEquals(expectedResult, result); } }