You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sl...@apache.org on 2020/08/18 13:14:49 UTC

[maven-dependency-analyzer] branch cleanup1 created (now c3eaded)

This is an automated email from the ASF dual-hosted git repository.

slachiewicz pushed a change to branch cleanup1
in repository https://gitbox.apache.org/repos/asf/maven-dependency-analyzer.git.


      at c3eaded  (refactor) Tests cleanup

This branch includes the following new commits:

     new c3eaded  (refactor) Tests cleanup

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[maven-dependency-analyzer] 01/01: (refactor) Tests cleanup

Posted by sl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

slachiewicz pushed a commit to branch cleanup1
in repository https://gitbox.apache.org/repos/asf/maven-dependency-analyzer.git

commit c3eaded72ed8ecb29b9027f11e14fc35e1974bc8
Author: Sylwester Lachiewicz <sl...@apache.org>
AuthorDate: Tue Aug 18 15:14:16 2020 +0200

    (refactor) Tests cleanup
---
 pom.xml                                            |   2 +
 .../dependency/analyzer/AbstractFileTest.java      |  83 -------------
 .../analyzer/ClassFileVisitorUtilsTest.java        | 133 +++++++++++++--------
 .../analyzer/CollectorClassFileVisitorTest.java    |  27 ++---
 .../analyzer/DefaultClassAnalyzerTest.java         |  68 +++++++----
 .../DefaultProjectDependencyAnalyzerTest.java      |  48 ++++----
 .../analyzer/ProjectDependencyAnalysisTest.java    |  17 ++-
 .../ProjectDependencyAnalyzerExceptionTest.java    |  11 +-
 .../analyzer/asm/ASMDependencyAnalyzerTest.java    |  10 +-
 .../analyzer/asm/DependencyVisitorTest.java        | 123 ++++++++++++++-----
 .../dependency/analyzer/asm/MockAttribute.java     |   1 -
 .../project1/Project1.java                         |   3 -
 .../project2/Project2.java                         |   3 -
 .../jarWithTestDependency/project1/Project1.java   |   3 -
 .../jarWithTestDependency/project2/Project2.java   |   3 -
 .../main/java/jarWithNoDependencies/Project.java   |   3 -
 .../jarWithTestDependency/project1/Project1.java   |   3 -
 .../jarWithTestDependency/project2/Project2.java   |   4 -
 .../jarWithTestDependency/project1/Project1.java   |   4 -
 .../jarWithTestDependency/project2/Project2.java   |   4 -
 20 files changed, 270 insertions(+), 283 deletions(-)

diff --git a/pom.xml b/pom.xml
index be5d0bb..0662009 100644
--- a/pom.xml
+++ b/pom.xml
@@ -60,6 +60,7 @@
 
   <properties>
     <mavenVersion>2.0.5</mavenVersion>
+    <surefire.version>2.22.2</surefire.version>
     <javaVersion>7</javaVersion>
     <project.build.outputTimestamp>2020-08-05T13:26:53Z</project.build.outputTimestamp>
   </properties>
@@ -73,6 +74,7 @@
       </dependency>
     </dependencies>
   </dependencyManagement>
+
   <dependencies>
     <dependency>
       <groupId>org.ow2.asm</groupId>
diff --git a/src/test/java/org/apache/maven/shared/dependency/analyzer/AbstractFileTest.java b/src/test/java/org/apache/maven/shared/dependency/analyzer/AbstractFileTest.java
deleted file mode 100644
index 1860b02..0000000
--- a/src/test/java/org/apache/maven/shared/dependency/analyzer/AbstractFileTest.java
+++ /dev/null
@@ -1,83 +0,0 @@
-package org.apache.maven.shared.dependency.analyzer;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import java.io.File;
-import java.io.IOException;
-import java.nio.charset.StandardCharsets;
-import java.util.jar.JarOutputStream;
-import java.util.zip.ZipEntry;
-
-import org.apache.commons.io.FileUtils;
-
-import junit.framework.TestCase;
-
-/**
- * @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
- * @version $Id$
- */
-public abstract class AbstractFileTest extends TestCase
-{
-    // protected methods ------------------------------------------------------
-
-    protected File createJar() throws IOException
-    {
-        File file = File.createTempFile( "test", ".jar" );
-        file.deleteOnExit();
-
-        return file;
-    }
-
-    protected File createDir() throws IOException
-    {
-        File file = File.createTempFile( "test", null );
-        file.delete();
-
-        if ( !file.mkdir() )
-            throw new IOException( "Cannot create temporary directory: " + file );
-
-        return file;
-    }
-
-    protected File createFile( File parent, String child, String data ) throws IOException
-    {
-        File file = new File( parent, child );
-        FileUtils.write( file, data, StandardCharsets.UTF_8 );
-        return file;
-    }
-
-    protected File mkdirs( File parent, String child ) throws IOException
-    {
-        File dir = new File( parent, child );
-
-        FileUtils.forceMkdir( dir );
-
-        return dir;
-    }
-
-    protected void writeEntry( JarOutputStream out, String path, String data ) throws IOException
-    {
-        out.putNextEntry( new ZipEntry( path ) );
-
-        byte[] bytes = data.getBytes( "UTF-8" );
-
-        out.write( bytes, 0, bytes.length );
-    }
-}
diff --git a/src/test/java/org/apache/maven/shared/dependency/analyzer/ClassFileVisitorUtilsTest.java b/src/test/java/org/apache/maven/shared/dependency/analyzer/ClassFileVisitorUtilsTest.java
index cdc7141..afdb796 100644
--- a/src/test/java/org/apache/maven/shared/dependency/analyzer/ClassFileVisitorUtilsTest.java
+++ b/src/test/java/org/apache/maven/shared/dependency/analyzer/ClassFileVisitorUtilsTest.java
@@ -19,122 +19,137 @@ package org.apache.maven.shared.dependency.analyzer;
  * under the License.
  */
 
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.IOUtils;
+import org.junit.Before;
+import org.junit.Test;
+
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.URL;
 import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Path;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.jar.JarOutputStream;
+import java.util.zip.ZipEntry;
 
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.IOUtils;
+import static org.junit.Assert.*;
 
 /**
  * Tests <code>ClassFileVisitorUtils</code>.
  * 
  * @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
- * @version $Id$
  * @see ClassFileVisitorUtils
  */
 public class ClassFileVisitorUtilsTest
-    extends AbstractFileTest
 {
-    
-    private MockVisitor visitor = new MockVisitor();
+    private MockVisitor visitor;
 
     private static class MockVisitor implements ClassFileVisitor
     {
-        
-        ArrayList<String> classNames = new ArrayList<>();
-        ArrayList<String> data = new ArrayList<>();
+        final List<String> classNames = new ArrayList<>();
+        final List<String> data = new ArrayList<>();
 
         @Override
         public void visitClass( String className, InputStream in )
         {
             classNames.add( className );
-            try {
+            try
+            {
                 List<String> lines = IOUtils.readLines( in, StandardCharsets.UTF_8 );
                 data.addAll( lines );
-            } catch (IOException ex) {
+            }
+            catch ( IOException ex )
+            {
                 throw new RuntimeException( ex );
             }
         }
+    }
 
+    @Before
+    public void setUp()
+    {
+        visitor = new MockVisitor();
     }
 
-    public void testAcceptJar()
-        throws IOException
+    @Test
+    public void testAcceptJar() throws IOException
     {
-        File file = createJar();
+        File file = File.createTempFile( "test", ".jar" );
+        file.deleteOnExit();
+
         try ( JarOutputStream out = new JarOutputStream( new FileOutputStream( file ) ) )
         {
-            writeEntry( out, "a/b/c.class", "class a.b.c" );
-            writeEntry( out, "x/y/z.class", "class x.y.z" );
+            addZipEntry( out, "a/b/c.class", "class a.b.c" );
+            addZipEntry( out, "x/y/z.class", "class x.y.z" );
         }
 
         ClassFileVisitorUtils.accept( file.toURI().toURL(), visitor );
-        
-        assertTrue(visitor.classNames.contains( "a.b.c" ));
-        assertTrue(visitor.classNames.contains( "x.y.z" ));
-        assertTrue(visitor.data.contains( "class a.b.c" ));
-        assertTrue(visitor.data.contains( "class x.y.z" ));
+
+        assertTrue( visitor.classNames.contains( "a.b.c" ) );
+        assertTrue( visitor.classNames.contains( "x.y.z" ) );
+        assertTrue( visitor.data.contains( "class a.b.c" ) );
+        assertTrue( visitor.data.contains( "class x.y.z" ) );
     }
 
-    public void testAcceptJarWithNonClassEntry()
-        throws IOException
+    @Test
+    public void testAcceptJarWithNonClassEntry() throws IOException
     {
-        File file = createJar();
+        File file = File.createTempFile( "test", ".jar" );
+        file.deleteOnExit();
+
         try ( JarOutputStream out = new JarOutputStream( new FileOutputStream( file ) ) )
         {
-            writeEntry( out, "a/b/c.jpg", "jpeg a.b.c" );
+            addZipEntry( out, "a/b/c.jpg", "jpeg a.b.c" );
         }
 
         ClassFileVisitorUtils.accept( file.toURI().toURL(), visitor );
 
-        assertTrue(visitor.classNames.isEmpty());
+        assertTrue( visitor.classNames.isEmpty() );
     }
 
-    public void testAcceptDir()
-        throws IOException
+    @Test
+    public void testAcceptDir() throws IOException
     {
-        File dir = createDir();
+        Path dir = Files.createTempDirectory( "d-a-test" );
 
-        File abDir = mkdirs( dir, "a/b" );
-        createFile( abDir, "c.class", "class a.b.c" );
+        Path abDir = Files.createDirectories( dir.resolve( "a/b" ) );
+        writeToFile( abDir, "c.class", "class a.b.c" );
 
-        File xyDir = mkdirs( dir, "x/y" );
-        createFile( xyDir, "z.class", "class x.y.z" );
+        Path xyDir = Files.createDirectories( dir.resolve( "x/y" ) );
+        writeToFile( xyDir, "z.class", "class x.y.z" );
 
-        ClassFileVisitorUtils.accept( dir.toURI().toURL(), visitor );
+        ClassFileVisitorUtils.accept( dir.toUri().toURL(), visitor );
 
-        FileUtils.deleteDirectory( dir );
+        FileUtils.deleteDirectory( dir.toFile() );
 
-        assertTrue(visitor.classNames.contains( "a.b.c" ));
-        assertTrue(visitor.classNames.contains( "x.y.z" ));
-        assertTrue(visitor.data.contains( "class a.b.c" ));
-        assertTrue(visitor.data.contains( "class x.y.z" ));
+        assertTrue( visitor.classNames.contains( "a.b.c" ) );
+        assertTrue( visitor.classNames.contains( "x.y.z" ) );
+        assertTrue( visitor.data.contains( "class a.b.c" ) );
+        assertTrue( visitor.data.contains( "class x.y.z" ) );
     }
 
-    public void testAcceptDirWithNonClassFile()
-        throws IOException
+    @Test
+    public void testAcceptDirWithNonClassFile() throws IOException
     {
-        File dir = createDir();
+        Path dir = Files.createTempDirectory( "d-a-test" );
 
-        File abDir = mkdirs( dir, "a/b" );
-        createFile( abDir, "c.jpg", "jpeg a.b.c" );
+        Path abDir = Files.createDirectories( dir.resolve( "a/b" ) );
+        writeToFile( abDir, "c.jpg", "jpeg a.b.c" );
 
-        ClassFileVisitorUtils.accept( dir.toURI().toURL(), visitor );
+        ClassFileVisitorUtils.accept( dir.toUri().toURL(), visitor );
 
-        FileUtils.deleteDirectory( dir );
+        FileUtils.deleteDirectory( dir.toFile() );
 
-        assertTrue(visitor.classNames.isEmpty());
+        assertTrue( visitor.classNames.isEmpty() );
     }
 
-    public void testAcceptWithFile()
-        throws IOException
+    @Test
+    public void testAcceptWithFile() throws IOException
     {
         File file = File.createTempFile( "test", ".class" );
         file.deleteOnExit();
@@ -144,7 +159,7 @@ public class ClassFileVisitorUtilsTest
         try
         {
             ClassFileVisitorUtils.accept( url, visitor );
-            fail("expected IllegalArgumentException");
+            fail( "expected IllegalArgumentException" );
         }
         catch ( IllegalArgumentException exception )
         {
@@ -152,19 +167,31 @@ public class ClassFileVisitorUtilsTest
         }
     }
 
-    public void testAcceptWithUnsupportedScheme()
-        throws IOException
+    @Test
+    public void testAcceptWithUnsupportedScheme() throws IOException
     {
         URL url = new URL( "http://localhost/" );
 
         try
         {
             ClassFileVisitorUtils.accept( url, visitor );
-            fail("expected IllegalArgumentException");
+            fail( "expected IllegalArgumentException" );
         }
         catch ( IllegalArgumentException exception )
         {
             assertEquals( "Cannot accept visitor on URL: " + url, exception.getMessage() );
         }
     }
+
+    private void writeToFile( Path parent, String file, String data ) throws IOException
+    {
+        Files.write( parent.resolve( file ), data.getBytes( StandardCharsets.UTF_8 ) );
+    }
+
+    private void addZipEntry( JarOutputStream out, String fileName, String content ) throws IOException
+    {
+        out.putNextEntry( new ZipEntry( fileName ) );
+        byte[] bytes = content.getBytes( StandardCharsets.UTF_8 );
+        out.write( bytes, 0, bytes.length );
+    }
 }
diff --git a/src/test/java/org/apache/maven/shared/dependency/analyzer/CollectorClassFileVisitorTest.java b/src/test/java/org/apache/maven/shared/dependency/analyzer/CollectorClassFileVisitorTest.java
index 51cf492..237d4ba 100644
--- a/src/test/java/org/apache/maven/shared/dependency/analyzer/CollectorClassFileVisitorTest.java
+++ b/src/test/java/org/apache/maven/shared/dependency/analyzer/CollectorClassFileVisitorTest.java
@@ -19,46 +19,37 @@ package org.apache.maven.shared.dependency.analyzer;
  * under the License.
  */
 
+import org.junit.Before;
+import org.junit.Test;
+
 import java.util.HashSet;
 import java.util.Set;
 
-import org.apache.maven.shared.dependency.analyzer.CollectorClassFileVisitor;
-
-import junit.framework.TestCase;
+import static org.junit.Assert.assertEquals;
 
 /**
  * Tests <code>CollectorClassFileVisitor</code>.
- * 
+ *
  * @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
- * @version $Id$
  * @see CollectorClassFileVisitor
  */
 public class CollectorClassFileVisitorTest
-    extends TestCase
 {
-    // fields -----------------------------------------------------------------
-
     private CollectorClassFileVisitor visitor;
 
-    // TestCase thods ---------------------------------------------------------
-
-    /*
-     * @see junit.framework.TestCase#setUp()
-     */
-    protected void setUp()
-        throws Exception
+    @Before
+    public void setUp()
     {
         visitor = new CollectorClassFileVisitor();
     }
 
-    // tests ------------------------------------------------------------------
-
+    @Test
     public void testVisitClass()
     {
         visitor.visitClass( "a.b.c", null );
         visitor.visitClass( "x.y.z", null );
 
-        Set<String> expected = new HashSet<String>();
+        Set<String> expected = new HashSet<>();
         expected.add( "a.b.c" );
         expected.add( "x.y.z" );
 
diff --git a/src/test/java/org/apache/maven/shared/dependency/analyzer/DefaultClassAnalyzerTest.java b/src/test/java/org/apache/maven/shared/dependency/analyzer/DefaultClassAnalyzerTest.java
index 40b3553..f4d54b5 100644
--- a/src/test/java/org/apache/maven/shared/dependency/analyzer/DefaultClassAnalyzerTest.java
+++ b/src/test/java/org/apache/maven/shared/dependency/analyzer/DefaultClassAnalyzerTest.java
@@ -19,79 +19,101 @@ package org.apache.maven.shared.dependency.analyzer;
  * under the License.
  */
 
+import org.codehaus.plexus.util.IOUtil;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
 import java.io.ByteArrayOutputStream;
-import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.IOException;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Path;
 import java.util.HashSet;
 import java.util.Set;
 import java.util.jar.JarOutputStream;
+import java.util.zip.ZipEntry;
 import java.util.zip.ZipException;
 
-import org.codehaus.plexus.util.IOUtil;
+import static org.junit.Assert.*;
 
 /**
  * Tests <code>DefaultClassAnalyzer</code>.
  *
  * @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
- * @version $Id$
  * @see DefaultClassAnalyzer
  */
 public class DefaultClassAnalyzerTest
-    extends AbstractFileTest
 {
-    private File file;
+    private Path file;
 
-    public void setUp() throws IOException {
-        file = createJar();
-        try ( JarOutputStream out = new JarOutputStream( new FileOutputStream( file ) ) )
+    @Before
+    public void setUp() throws IOException
+    {
+        file = Files.createTempFile( "test", ".jar" );
+        try ( JarOutputStream out = new JarOutputStream( new FileOutputStream( file.toFile() ) ) )
         {
-            writeEntry( out, "a/b/c.class", "class a.b.c" );
-            writeEntry( out, "x/y/z.class", "class x.y.z" );
+            addZipEntry( out, "a/b/c.class", "class a.b.c" );
+            addZipEntry( out, "x/y/z.class", "class x.y.z" );
         }
     }
-    
-    
-    public void testAnalyzeWithJar()
-        throws IOException
+
+    @After
+    public void cleanup() throws IOException
     {
-        Set<String> expectedClasses = new HashSet<String>();
+        if ( file != null )
+        {
+            Files.deleteIfExists( file );
+        }
+    }
+
+    @Test
+    public void testAnalyzeWithJar() throws IOException
+    {
+        Set<String> expectedClasses = new HashSet<>();
         expectedClasses.add( "a.b.c" );
         expectedClasses.add( "x.y.z" );
 
         DefaultClassAnalyzer analyzer = new DefaultClassAnalyzer();
-        Set<String> actualClasses = analyzer.analyze( file.toURI().toURL() );
+        Set<String> actualClasses = analyzer.analyze( file.toUri().toURL() );
 
         assertEquals( expectedClasses, actualClasses );
     }
 
-    public void testAnalyzeBadJar()
-        throws IOException
+    @Test
+    public void testAnalyzeBadJar() throws IOException
     {
         //to reproduce MDEP-143
         // corrupt the jar file by altering its contents
-        FileInputStream fis = new FileInputStream( file );
+        FileInputStream fis = new FileInputStream( file.toFile() );
         ByteArrayOutputStream baos = new ByteArrayOutputStream( 100 );
         IOUtil.copy( fis, baos, 100 );
         fis.close();
-        byte [] ba = baos.toByteArray();
+        byte[] ba = baos.toByteArray();
         ba[50] = 1;
-        FileOutputStream fos = new FileOutputStream( file );
+        FileOutputStream fos = new FileOutputStream( file.toFile() );
         IOUtil.copy( ba, fos );
         fos.close();
 
-        DefaultClassAnalyzer analyzer = new DefaultClassAnalyzer();
+        ClassAnalyzer analyzer = new DefaultClassAnalyzer();
 
         try
         {
-            analyzer.analyze( file.toURI().toURL() );
+            analyzer.analyze( file.toUri().toURL() );
             fail( "Exception expected" );
         }
         catch ( ZipException e )
         {
             assertTrue( e.getMessage().startsWith( "Cannot process Jar entry on URL:" ) );
         }
+    }
 
+    private void addZipEntry( JarOutputStream out, String fileName, String content ) throws IOException
+    {
+        out.putNextEntry( new ZipEntry( fileName ) );
+        byte[] bytes = content.getBytes( StandardCharsets.UTF_8 );
+        out.write( bytes, 0, bytes.length );
     }
 }
diff --git a/src/test/java/org/apache/maven/shared/dependency/analyzer/DefaultProjectDependencyAnalyzerTest.java b/src/test/java/org/apache/maven/shared/dependency/analyzer/DefaultProjectDependencyAnalyzerTest.java
index 807be0f..cefd20e 100644
--- a/src/test/java/org/apache/maven/shared/dependency/analyzer/DefaultProjectDependencyAnalyzerTest.java
+++ b/src/test/java/org/apache/maven/shared/dependency/analyzer/DefaultProjectDependencyAnalyzerTest.java
@@ -1,16 +1,4 @@
 package org.apache.maven.shared.dependency.analyzer;
-
-import java.io.File;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Properties;
-import java.util.Set;
-
-import org.apache.commons.lang3.JavaVersion;
-import org.apache.commons.lang3.SystemUtils;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -30,6 +18,7 @@ import org.apache.commons.lang3.SystemUtils;
  * under the License.
  */
 
+import org.apache.commons.lang3.JavaVersion;
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.DefaultArtifact;
 import org.apache.maven.artifact.handler.ArtifactHandler;
@@ -44,18 +33,25 @@ import org.apache.maven.shared.test.plugin.RepositoryTool;
 import org.apache.maven.shared.test.plugin.TestToolsException;
 import org.codehaus.plexus.PlexusTestCase;
 
+import java.io.File;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Properties;
+import java.util.Set;
+
+import static org.apache.commons.lang3.SystemUtils.isJavaVersionAtLeast;
+
 /**
  * Tests <code>DefaultProjectDependencyAnalyzer</code>.
  *
  * @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
- * @version $Id$
  * @see DefaultProjectDependencyAnalyzer
  */
 public class DefaultProjectDependencyAnalyzerTest
     extends PlexusTestCase
 {
-    // fields -----------------------------------------------------------------
-
     private BuildTool buildTool;
 
     private ProjectTool projectTool;
@@ -64,8 +60,6 @@ public class DefaultProjectDependencyAnalyzerTest
 
     private static File localRepo;
 
-    // TestCase methods -------------------------------------------------------
-
     /*
      * @see org.codehaus.plexus.PlexusTestCase#setUp()
      */
@@ -121,7 +115,7 @@ public class DefaultProjectDependencyAnalyzerTest
     public void testJava8methodRefs()
         throws TestToolsException, ProjectDependencyAnalyzerException
     {
-        if ( !SystemUtils.isJavaVersionAtLeast( JavaVersion.JAVA_1_8 ) )
+        if ( !isJavaVersionAtLeast( JavaVersion.JAVA_1_8 ) )
         {
             return;
         }
@@ -135,7 +129,7 @@ public class DefaultProjectDependencyAnalyzerTest
 
         Artifact project1 = createArtifact( "commons-io", "commons-io", "jar", "2.4", "compile" );
         Artifact project2 = createArtifact( "commons-lang", "commons-lang", "jar", "2.6", "compile" );
-        Set<Artifact> usedDeclaredArtifacts = new HashSet<Artifact>( Arrays.asList( project1, project2 ) );
+        Set<Artifact> usedDeclaredArtifacts = new HashSet<>( Arrays.asList( project1, project2 ) );
 
         ProjectDependencyAnalysis expectedAnalysis =
             new ProjectDependencyAnalysis( usedDeclaredArtifacts, new HashSet<Artifact>(), new HashSet<Artifact>(),
@@ -147,7 +141,7 @@ public class DefaultProjectDependencyAnalyzerTest
     public void testInlinedStaticReference()
         throws TestToolsException, ProjectDependencyAnalyzerException
     {
-        if ( !SystemUtils.isJavaVersionAtLeast( JavaVersion.JAVA_1_8 ) )
+        if ( !isJavaVersionAtLeast( JavaVersion.JAVA_1_8 ) )
         {
             return;
         }
@@ -242,9 +236,9 @@ public class DefaultProjectDependencyAnalyzerTest
         Artifact junit = createArtifact( "junit", "junit", "jar", "3.8.1", "test" );
 
         ProjectDependencyAnalysis expectedAnalysis;
-        if ( SystemUtils.isJavaVersionAtLeast( JavaVersion.JAVA_1_8 ) )
+        if ( isJavaVersionAtLeast( JavaVersion.JAVA_1_8 ) )
         {
-            Set<Artifact> usedDeclaredArtifacts = new HashSet<Artifact>( Arrays.asList( project1, junit ) );
+            Set<Artifact> usedDeclaredArtifacts = new HashSet<>( Arrays.asList( project1, junit ) );
             expectedAnalysis = new ProjectDependencyAnalysis( usedDeclaredArtifacts, null, null, null );
         }
         else
@@ -292,7 +286,7 @@ public class DefaultProjectDependencyAnalyzerTest
         Artifact junit = createArtifact( "junit", "junit", "jar", "3.8.1", "compile" );
 
         ProjectDependencyAnalysis expectedAnalysis;
-        if ( SystemUtils.isJavaVersionAtLeast( JavaVersion.JAVA_1_8 ) )
+        if ( isJavaVersionAtLeast( JavaVersion.JAVA_1_8 ) )
         {
             Set<Artifact> usedDeclaredArtifacts = new HashSet<>( Arrays.asList( artifact1, junit ) );
             Set<Artifact> nonTestScopedTestArtifacts = Collections.singleton( junit );
@@ -325,7 +319,7 @@ public class DefaultProjectDependencyAnalyzerTest
         Artifact junit = createArtifact( "junit", "junit", "jar", "3.8.1", "runtime" );
 
         ProjectDependencyAnalysis expectedAnalysis;
-        if ( SystemUtils.isJavaVersionAtLeast( JavaVersion.JAVA_1_8 ) )
+        if ( isJavaVersionAtLeast( JavaVersion.JAVA_1_8 ) )
         {
             Set<Artifact> usedDeclaredArtifacts = new HashSet<>( Arrays.asList( artifact1, junit ) );
             expectedAnalysis = new ProjectDependencyAnalysis( usedDeclaredArtifacts, null, null,
@@ -377,7 +371,7 @@ public class DefaultProjectDependencyAnalyzerTest
             throws TestToolsException, ProjectDependencyAnalyzerException
     {
         // java.lang.annotation.ElementType.TYPE_USE introduced with Java 1.8
-        if ( !SystemUtils.isJavaVersionAtLeast( JavaVersion.JAVA_1_8 ) )
+        if ( !isJavaVersionAtLeast( JavaVersion.JAVA_1_8 ) )
         {
             return;
         }
@@ -404,7 +398,7 @@ public class DefaultProjectDependencyAnalyzerTest
             throws TestToolsException, ProjectDependencyAnalyzerException
     {
         // java.lang.annotation.ElementType.TYPE_USE introduced with Java 1.8
-        if ( !SystemUtils.isJavaVersionAtLeast( JavaVersion.JAVA_1_8 ) )
+        if ( !isJavaVersionAtLeast( JavaVersion.JAVA_1_8 ) )
         {
             return;
         }
@@ -437,7 +431,7 @@ public class DefaultProjectDependencyAnalyzerTest
 
     private void compileProject(String pomPath, Properties properties) throws TestToolsException {
         File pom = getTestFile( "target/test-classes/", pomPath );
-        if ( SystemUtils.isJavaVersionAtLeast( JavaVersion.JAVA_9 )
+        if ( isJavaVersionAtLeast( JavaVersion.JAVA_9 )
              && !properties.containsKey( "maven.compiler.source" ) )
         {
           properties.put( "maven.compiler.source", "1.7" );
diff --git a/src/test/java/org/apache/maven/shared/dependency/analyzer/ProjectDependencyAnalysisTest.java b/src/test/java/org/apache/maven/shared/dependency/analyzer/ProjectDependencyAnalysisTest.java
index 8f3d7ae..be53be5 100644
--- a/src/test/java/org/apache/maven/shared/dependency/analyzer/ProjectDependencyAnalysisTest.java
+++ b/src/test/java/org/apache/maven/shared/dependency/analyzer/ProjectDependencyAnalysisTest.java
@@ -24,26 +24,25 @@ import java.util.Set;
 
 import org.apache.maven.artifact.Artifact;
 
-import junit.framework.TestCase;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
 
 /**
  * Tests <code>ProjectDependencyAnalysis</code>.
  * 
  * @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
- * @version $Id$
  * @see ProjectDependencyAnalysis
  */
 public class ProjectDependencyAnalysisTest
-    extends TestCase
 {
-    // tests ------------------------------------------------------------------
-
+    @Test
     public void testConstructor()
     {
-        Set<Artifact> usedDeclaredArtifacts = new HashSet<Artifact>();
-        Set<Artifact> usedUndeclaredArtifacts = new HashSet<Artifact>();
-        Set<Artifact> unusedDeclaredArtifacts = new HashSet<Artifact>();
-        Set<Artifact> testArtifactsWithNonTestScope = new HashSet<Artifact>();
+        Set<Artifact> usedDeclaredArtifacts = new HashSet<>();
+        Set<Artifact> usedUndeclaredArtifacts = new HashSet<>();
+        Set<Artifact> unusedDeclaredArtifacts = new HashSet<>();
+        Set<Artifact> testArtifactsWithNonTestScope = new HashSet<>();
 
         ProjectDependencyAnalysis analysis =
             new ProjectDependencyAnalysis( usedDeclaredArtifacts, usedUndeclaredArtifacts, unusedDeclaredArtifacts,
diff --git a/src/test/java/org/apache/maven/shared/dependency/analyzer/ProjectDependencyAnalyzerExceptionTest.java b/src/test/java/org/apache/maven/shared/dependency/analyzer/ProjectDependencyAnalyzerExceptionTest.java
index 4a3fa7b..ef8b995 100644
--- a/src/test/java/org/apache/maven/shared/dependency/analyzer/ProjectDependencyAnalyzerExceptionTest.java
+++ b/src/test/java/org/apache/maven/shared/dependency/analyzer/ProjectDependencyAnalyzerExceptionTest.java
@@ -19,19 +19,19 @@ package org.apache.maven.shared.dependency.analyzer;
  * under the License.
  */
 
-import junit.framework.TestCase;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
 
 /**
  * Tests <code>ProjectDependencyAnalyzerException</code>.
  * 
  * @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
- * @version $Id$
  * @see ProjectDependencyAnalyzerException
  */
-public class ProjectDependencyAnalyzerExceptionTest extends TestCase
+public class ProjectDependencyAnalyzerExceptionTest
 {
-    // tests ------------------------------------------------------------------
-
+    @Test
     public void testConstructor()
     {
         ProjectDependencyAnalyzerException exception = new ProjectDependencyAnalyzerException( "a" );
@@ -39,6 +39,7 @@ public class ProjectDependencyAnalyzerExceptionTest extends TestCase
         assertEquals( "a", exception.getMessage() );
     }
 
+    @Test
     public void testConstructorWithThrowable()
     {
         Throwable throwable = new Exception();
diff --git a/src/test/java/org/apache/maven/shared/dependency/analyzer/asm/ASMDependencyAnalyzerTest.java b/src/test/java/org/apache/maven/shared/dependency/analyzer/asm/ASMDependencyAnalyzerTest.java
index b56fa02..ad6d97a 100644
--- a/src/test/java/org/apache/maven/shared/dependency/analyzer/asm/ASMDependencyAnalyzerTest.java
+++ b/src/test/java/org/apache/maven/shared/dependency/analyzer/asm/ASMDependencyAnalyzerTest.java
@@ -20,12 +20,16 @@ package org.apache.maven.shared.dependency.analyzer.asm;
  */
 
 import java.net.URL;
+import java.util.Set;
 
+import org.apache.maven.shared.dependency.analyzer.DependencyAnalyzer;
 import org.junit.Test;
 
+import static org.junit.Assert.assertFalse;
+
 public class ASMDependencyAnalyzerTest
 {
-    private ASMDependencyAnalyzer analyzer = new ASMDependencyAnalyzer(); 
+    private final DependencyAnalyzer analyzer = new ASMDependencyAnalyzer();
 
     @Test
     public void test() throws Exception
@@ -34,7 +38,9 @@ public class ASMDependencyAnalyzerTest
 
         String fileUrl = jarUrl.toString().substring( "jar:".length(), jarUrl.toString().indexOf( "!/" ) );
 
-        analyzer.analyze( new URL(fileUrl) );
+        Set<String> result = analyzer.analyze( new URL( fileUrl ) );
+
+        assertFalse( result.isEmpty() );
     }
 
 }
diff --git a/src/test/java/org/apache/maven/shared/dependency/analyzer/asm/DependencyVisitorTest.java b/src/test/java/org/apache/maven/shared/dependency/analyzer/asm/DependencyVisitorTest.java
index 3ab84a9..64ea041 100644
--- a/src/test/java/org/apache/maven/shared/dependency/analyzer/asm/DependencyVisitorTest.java
+++ b/src/test/java/org/apache/maven/shared/dependency/analyzer/asm/DependencyVisitorTest.java
@@ -24,78 +24,71 @@ import java.util.Collections;
 import java.util.HashSet;
 import java.util.Set;
 
-import junit.framework.TestCase;
-
+import org.junit.Before;
+import org.junit.Test;
 import org.objectweb.asm.*;
 import org.objectweb.asm.signature.SignatureVisitor;
 
+import static org.junit.Assert.assertEquals;
+
 /**
  * Tests <code>DependencyVisitor</code>.
  * 
  * @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
- * @version $Id$
  */
 public class DependencyVisitorTest
-    extends TestCase
 {
-    private ResultCollector resultCollector = new ResultCollector();
-    private DefaultClassVisitor classVisitor;
+    private final ResultCollector resultCollector = new ResultCollector();
     private DefaultClassVisitor visitor;
-    private AnnotationVisitor annotationVisitor;
-    private SignatureVisitor signatureVisitor;
-    private FieldVisitor fieldVisitor;
     private MethodVisitor mv;
 
-    // TestCase methods -------------------------------------------------------
-
-    /*
-     * @see junit.framework.TestCase#setUp()
-     */
-    protected void setUp()
-            throws Exception
+    @Before
+    public void setUp()
     {
-        annotationVisitor = new DefaultAnnotationVisitor(resultCollector);
-        signatureVisitor = new DefaultSignatureVisitor(resultCollector);
-        fieldVisitor = new DefaultFieldVisitor(annotationVisitor, resultCollector);
-        mv = new DefaultMethodVisitor(annotationVisitor, signatureVisitor, resultCollector);
-        visitor = classVisitor = new DefaultClassVisitor(signatureVisitor, annotationVisitor,
-                fieldVisitor, mv, resultCollector);
+        AnnotationVisitor annotationVisitor = new DefaultAnnotationVisitor( resultCollector );
+        SignatureVisitor signatureVisitor = new DefaultSignatureVisitor( resultCollector );
+        FieldVisitor fieldVisitor = new DefaultFieldVisitor( annotationVisitor, resultCollector );
+        mv = new DefaultMethodVisitor( annotationVisitor, signatureVisitor, resultCollector);
+        visitor = new DefaultClassVisitor( signatureVisitor, annotationVisitor, fieldVisitor, mv, resultCollector);
     }
 
-    // visit tests ------------------------------------------------------------
-
+    @Test
     public void testVisitWithDefaultSuperclass()
     {
         // class a.b.c
-        classVisitor.visit( 50, 0, "a/b/c", null, "java/lang/Object", null );
+        visitor.visit( 50, 0, "a/b/c", null, "java/lang/Object", null );
 
         assertClasses( "java.lang.Object" );
     }
 
+    @Test
     public void testVisitWithSuperclass()
     {
         // class a.b.c
-        classVisitor.visit( 50, 0, "a/b/c", null, "x/y/z", null );
+        visitor.visit( 50, 0, "a/b/c", null, "x/y/z", null );
 
         assertClasses( "x.y.z" );
     }
 
+    @Test
     public void testVisitWithInterface()
     {
         // class a.b.c implements x.y.z
-        classVisitor.visit( 50, 0, "a/b/c", null, "java/lang/Object", new String[] { "x/y/z" } );
+        visitor.visit( 50, 0, "a/b/c", null, "java/lang/Object", new String[] { "x/y/z" } );
 
         assertClasses( "java.lang.Object", "x.y.z" );
     }
 
+    @Test
     public void testVisitWithInterfaces()
     {
         // class a.b.c implements p.q.r, x.y.z
-        classVisitor.visit( 50, 0, "a/b/c", null, "java/lang/Object", new String[] { "p/q/r", "x/y/z" } );
+        visitor.visit( 50, 0, "a/b/c", null, "java/lang/Object", new String[] { "p/q/r", "x/y/z" } );
 
         assertClasses( "java.lang.Object", "p.q.r", "x.y.z" );
     }
 
+    @Test
     public void testVisitWithUnboundedClassTypeParameter()
     {
         // class a.b.c<T>
@@ -106,6 +99,7 @@ public class DependencyVisitorTest
         assertClasses( "java.lang.Object" );
     }
 
+    @Test
     public void testVisitWithBoundedClassTypeParameter()
     {
         // class a.b.c<T extends x.y.z>
@@ -116,6 +110,7 @@ public class DependencyVisitorTest
         assertClasses( "java.lang.Object", "x.y.z" );
     }
 
+    @Test
     public void testVisitWithBoundedClassTypeParameters()
     {
         // class a.b.c<K extends p.q.r, V extends x.y.z>
@@ -126,6 +121,7 @@ public class DependencyVisitorTest
         assertClasses( "java.lang.Object", "p.q.r", "x.y.z" );
     }
 
+    @Test
     public void testVisitWithGenericInterface()
     {
         // class a.b.c implements p.q.r<x.y.z>
@@ -136,6 +132,7 @@ public class DependencyVisitorTest
         assertClasses( "java.lang.Object", "p.q.r", "x.y.z" );
     }
 
+    @Test
     public void testVisitWithInterfaceBound()
     {
         // class a.b.c<T> implements x.y.z<T>
@@ -148,6 +145,7 @@ public class DependencyVisitorTest
 
     // visitSource tests ------------------------------------------------------
 
+    @Test
     public void testVisitSource()
     {
         visitor.visitSource( null, null );
@@ -157,6 +155,7 @@ public class DependencyVisitorTest
 
     // visitOuterClass tests --------------------------------------------------
 
+    @Test
     public void testVisitOuterClass()
     {
         // class a.b.c
@@ -170,6 +169,7 @@ public class DependencyVisitorTest
         assertNoClasses();
     }
 
+    @Test
     public void testVisitOuterClassInMethod()
     {
         // class a.b.c
@@ -188,6 +188,7 @@ public class DependencyVisitorTest
 
     // visitAnnotation tests --------------------------------------------------
 
+    @Test
     public void testVisitAnnotation()
     {
         assertVisitor( visitor.visitAnnotation( "La/b/c;", false ) );
@@ -195,6 +196,7 @@ public class DependencyVisitorTest
         assertClasses( "a.b.c" );
     }
 
+    @Test
     public void testVisitAnnotationWithRuntimeVisibility()
     {
         assertVisitor( visitor.visitAnnotation( "La/b/c;", true ) );
@@ -204,6 +206,7 @@ public class DependencyVisitorTest
 
     // visitAttribute tests ---------------------------------------------------
 
+    @Test
     public void testVisitAttribute()
     {
         visitor.visitAttribute( new MockAttribute( "a" ) );
@@ -213,6 +216,7 @@ public class DependencyVisitorTest
 
     // visitInnerClass tests --------------------------------------------------
 
+    @Test
     public void testVisitInnerClass()
     {
         // TODO: ensure innerName is correct
@@ -223,6 +227,7 @@ public class DependencyVisitorTest
         assertNoClasses();
     }
 
+    @Test
     public void testVisitInnerClassAnonymous()
     {
         // class a.b.c { new class x.y.z { } }
@@ -233,6 +238,7 @@ public class DependencyVisitorTest
 
     // visitField tests -------------------------------------------------------
 
+    @Test
     public void testVisitField()
     {
         // a.b.c a
@@ -246,6 +252,7 @@ public class DependencyVisitorTest
     // {
     // }
 
+    @Test
     public void testVisitFieldArray()
     {
         // a.b.c[] a
@@ -254,6 +261,7 @@ public class DependencyVisitorTest
         assertClasses( "a.b.c" );
     }
 
+    @Test
     public void testVisitFieldGeneric()
     {
         // a.b.c<x.y.z> a
@@ -264,6 +272,7 @@ public class DependencyVisitorTest
 
     // visitMethod tests ------------------------------------------------------
 
+    @Test
     public void testVisitMethod()
     {
         // void a()
@@ -272,6 +281,7 @@ public class DependencyVisitorTest
         assertNoClasses();
     }
 
+    @Test
     public void testVisitMethodWithPrimitiveArgument()
     {
         // void a(int)
@@ -280,6 +290,7 @@ public class DependencyVisitorTest
         assertNoClasses();
     }
 
+    @Test
     public void testVisitMethodWithPrimitiveArrayArgument()
     {
         // void a(int[])
@@ -288,6 +299,7 @@ public class DependencyVisitorTest
         assertNoClasses();
     }
 
+    @Test
     public void testVisitMethodWithObjectArgument()
     {
         // void a(a.b.c)
@@ -296,6 +308,7 @@ public class DependencyVisitorTest
         assertClasses( "a.b.c" );
     }
 
+    @Test
     public void testVisitMethodWithObjectArguments()
     {
         // void a(a.b.c, x.y.z)
@@ -304,6 +317,7 @@ public class DependencyVisitorTest
         assertClasses( "a.b.c", "x.y.z" );
     }
 
+    @Test
     public void testVisitMethodWithObjectArrayArgument()
     {
         // void a(a.b.c[])
@@ -312,6 +326,7 @@ public class DependencyVisitorTest
         assertClasses( "a.b.c" );
     }
 
+    @Test
     public void testVisitMethodWithGenericArgument()
     {
         // void a(a.b.c<x.y.z>)
@@ -320,6 +335,7 @@ public class DependencyVisitorTest
         assertClasses( "a.b.c", "x.y.z" );
     }
 
+    @Test
     public void testVisitMethodWithPrimitiveReturnType()
     {
         // int a()
@@ -328,6 +344,7 @@ public class DependencyVisitorTest
         assertNoClasses();
     }
 
+    @Test
     public void testVisitMethodWithPrimitiveArrayReturnType()
     {
         // int[] a()
@@ -336,6 +353,7 @@ public class DependencyVisitorTest
         assertNoClasses();
     }
 
+    @Test
     public void testVisitMethodWithObjectReturnType()
     {
         // a.b.c a()
@@ -344,6 +362,7 @@ public class DependencyVisitorTest
         assertClasses( "a.b.c" );
     }
 
+    @Test
     public void testVisitMethodWithObjectArrayReturnType()
     {
         // a.b.c[] a()
@@ -352,6 +371,7 @@ public class DependencyVisitorTest
         assertClasses( "a.b.c" );
     }
 
+    @Test
     public void testVisitMethodWithException()
     {
         // void a() throws a.b.c
@@ -360,6 +380,7 @@ public class DependencyVisitorTest
         assertClasses( "a.b.c" );
     }
 
+    @Test
     public void testVisitMethodWithExceptions()
     {
         // void a() throws a.b.c, x.y.z
@@ -370,6 +391,7 @@ public class DependencyVisitorTest
 
     // visitAnnotationDefault tests -------------------------------------------
 
+    @Test
     public void testVisitAnnotationDefault()
     {
         assertVisitor( mv.visitAnnotationDefault() );
@@ -378,6 +400,7 @@ public class DependencyVisitorTest
 
     // visitParameterAnnotation tests -------------------------------------------
 
+    @Test
     public void testVisitParameterAnnotation()
     {
         // @a.b.c
@@ -388,6 +411,7 @@ public class DependencyVisitorTest
 
     // visitCode tests --------------------------------------------------------
 
+    @Test
     public void testVisitCode()
     {
         mv.visitCode();
@@ -397,6 +421,7 @@ public class DependencyVisitorTest
 
     // visitFrame tests -------------------------------------------------------
 
+    @Test
     public void testVisitFrame()
     {
         mv.visitFrame( Opcodes.F_NEW, 0, new Object[0], 0, new Object[0] );
@@ -406,6 +431,7 @@ public class DependencyVisitorTest
 
     // visitInsn tests --------------------------------------------------------
 
+    @Test
     public void testVisitInsn()
     {
         mv.visitInsn( Opcodes.NOP );
@@ -415,6 +441,7 @@ public class DependencyVisitorTest
 
     // visitIntInsn tests -----------------------------------------------------
 
+    @Test
     public void testVisitIntInsn()
     {
         mv.visitIntInsn( Opcodes.BIPUSH, 0 );
@@ -424,6 +451,7 @@ public class DependencyVisitorTest
 
     // visitVarInsn tests -----------------------------------------------------
 
+    @Test
     public void testVisitVarInsn()
     {
         mv.visitVarInsn( Opcodes.ILOAD, 0 );
@@ -433,6 +461,7 @@ public class DependencyVisitorTest
 
     // visitTypeInsn tests ----------------------------------------------------
 
+    @Test
     public void testVisitTypeInsn()
     {
         mv.visitTypeInsn( Opcodes.NEW, "a/b/c" );
@@ -442,6 +471,7 @@ public class DependencyVisitorTest
 
     // visitFieldInsn tests ---------------------------------------------------
 
+    @Test
     public void testVisitFieldInsnWithPrimitive()
     {
         mv.visitFieldInsn( Opcodes.GETFIELD, "a/b/c", "x", "I" );
@@ -449,6 +479,7 @@ public class DependencyVisitorTest
         assertClasses( "a.b.c" );
     }
 
+    @Test
     public void testVisitFieldInsnWithObject()
     {
         mv.visitFieldInsn( Opcodes.GETFIELD, "a/b/c", "x", "Lx/y/z;" );
@@ -458,6 +489,7 @@ public class DependencyVisitorTest
 
     // visitMethodInsn tests --------------------------------------------------
 
+    @Test
     public void testVisitMethodInsn()
     {
         mv.visitMethodInsn( Opcodes.INVOKEVIRTUAL, "a/b/c", "x", "()V", false );
@@ -465,6 +497,7 @@ public class DependencyVisitorTest
         assertClasses( "a.b.c" );
     }
 
+    @Test
     public void testVisitMethodInsnWithPrimitiveArgument()
     {
         mv.visitMethodInsn( Opcodes.INVOKEVIRTUAL, "a/b/c", "x", "(I)V", false );
@@ -472,6 +505,7 @@ public class DependencyVisitorTest
         assertClasses( "a.b.c" );
     }
 
+    @Test
     public void testVisitMethodInsnWithPrimitiveArrayArgument()
     {
         mv.visitMethodInsn( Opcodes.INVOKEVIRTUAL, "a/b/c", "x", "([I)V", false );
@@ -479,6 +513,7 @@ public class DependencyVisitorTest
         assertClasses( "a.b.c" );
     }
 
+    @Test
     public void testVisitMethodInsnWithObjectArgument()
     {
         mv.visitMethodInsn( Opcodes.INVOKEVIRTUAL, "a/b/c", "x", "(Lx/y/z;)V", false );
@@ -486,6 +521,7 @@ public class DependencyVisitorTest
         assertClasses( "a.b.c" );
     }
 
+    @Test
     public void testVisitMethodInsnWithObjectArguments()
     {
         mv.visitMethodInsn( Opcodes.INVOKEVIRTUAL, "a/b/c", "x", "(Lp/q/r;Lx/y/z;)V", false );
@@ -493,6 +529,7 @@ public class DependencyVisitorTest
         assertClasses( "a.b.c" );
     }
 
+    @Test
     public void testVisitMethodInsnWithObjectArrayArgument()
     {
         mv.visitMethodInsn( Opcodes.INVOKEVIRTUAL, "a/b/c", "x", "([Lx/y/z;)V", false );
@@ -500,6 +537,7 @@ public class DependencyVisitorTest
         assertClasses( "a.b.c" );
     }
 
+    @Test
     public void testVisitMethodInsnWithPrimitiveReturnType()
     {
         mv.visitMethodInsn( Opcodes.INVOKEVIRTUAL, "a/b/c", "x", "()I", false );
@@ -507,6 +545,7 @@ public class DependencyVisitorTest
         assertClasses( "a.b.c" );
     }
 
+    @Test
     public void testVisitMethodInsnWithPrimitiveArrayReturnType()
     {
         mv.visitMethodInsn( Opcodes.INVOKEVIRTUAL, "a/b/c", "x", "()[I", false );
@@ -514,6 +553,7 @@ public class DependencyVisitorTest
         assertClasses( "a.b.c" );
     }
 
+    @Test
     public void testVisitMethodInsnWithObjectReturnType()
     {
         mv.visitMethodInsn( Opcodes.INVOKEVIRTUAL, "a/b/c", "x", "()Lx/y/z;", false );
@@ -521,6 +561,7 @@ public class DependencyVisitorTest
         assertClasses( "a.b.c" );
     }
 
+    @Test
     public void testVisitMethodInsnWithObjectArrayReturnType()
     {
         mv.visitMethodInsn( Opcodes.INVOKEVIRTUAL, "a/b/c", "x", "()[Lx/y/z;", false );
@@ -530,6 +571,7 @@ public class DependencyVisitorTest
 
     // visitJumpInsn tests ----------------------------------------------------
 
+    @Test
     public void testVisitJumpInsn()
     {
         mv.visitJumpInsn( Opcodes.IFEQ, new Label() );
@@ -539,6 +581,7 @@ public class DependencyVisitorTest
 
     // visitLabel tests -------------------------------------------------------
 
+    @Test
     public void testVisitLabel()
     {
         mv.visitLabel( new Label() );
@@ -548,6 +591,7 @@ public class DependencyVisitorTest
 
     // visitLdcInsn tests -----------------------------------------------------
 
+    @Test
     public void testVisitLdcInsnWithNonType()
     {
         mv.visitLdcInsn( "a" );
@@ -555,6 +599,7 @@ public class DependencyVisitorTest
         assertNoClasses();
     }
 
+    @Test
     public void testVisitLdcInsnWithPrimitiveType()
     {
         mv.visitLdcInsn( Type.INT_TYPE );
@@ -562,6 +607,7 @@ public class DependencyVisitorTest
         assertNoClasses();
     }
 
+    @Test
     public void testVisitLdcInsnWithObjectType()
     {
         mv.visitLdcInsn( Type.getType( "La/b/c;" ) );
@@ -571,6 +617,7 @@ public class DependencyVisitorTest
 
     // visitIincInsn tests ----------------------------------------------------
 
+    @Test
     public void testVisitIincInsn()
     {
         mv.visitIincInsn( 0, 1 );
@@ -580,15 +627,17 @@ public class DependencyVisitorTest
 
     // visitTableSwitchInsn tests ---------------------------------------------
 
+    @Test
     public void testVisitTableSwitchInsn()
     {
-        mv.visitTableSwitchInsn( 0, 1, new Label(), new Label[] { new Label() } );
+        mv.visitTableSwitchInsn( 0, 1, new Label(), new Label() );
 
         assertNoClasses();
     }
 
     // visitLookupSwitchInsn tests --------------------------------------------
 
+    @Test
     public void testVisitLookupSwitchInsn()
     {
         mv.visitLookupSwitchInsn( new Label(), new int[] { 0 }, new Label[] { new Label() } );
@@ -598,6 +647,7 @@ public class DependencyVisitorTest
 
     // visitMultiANewArrayInsn tests ------------------------------------------
 
+    @Test
     public void testVisitMultiANewArrayInsnWithPrimitive()
     {
         mv.visitMultiANewArrayInsn( "I", 2 );
@@ -605,6 +655,7 @@ public class DependencyVisitorTest
         assertNoClasses();
     }
 
+    @Test
     public void testVisitMultiANewArrayInsnWithObject()
     {
         mv.visitMultiANewArrayInsn( "La/b/c;", 2 );
@@ -614,6 +665,7 @@ public class DependencyVisitorTest
 
     // visitTryCatchBlock tests -----------------------------------------------
 
+    @Test
     public void testVisitTryCatchBlock()
     {
         mv.visitTryCatchBlock( new Label(), new Label(), new Label(), "a/b/c" );
@@ -621,6 +673,7 @@ public class DependencyVisitorTest
         assertClasses( "a.b.c" );
     }
 
+    @Test
     public void testVisitTryCatchBlockForFinally()
     {
         mv.visitTryCatchBlock( new Label(), new Label(), new Label(), null );
@@ -630,6 +683,7 @@ public class DependencyVisitorTest
 
     // visitLocalVariable tests -----------------------------------------------
 
+    @Test
     public void testVisitLocalVariableWithPrimitive()
     {
         mv.visitLocalVariable( "a", "I", null, new Label(), new Label(), 0 );
@@ -637,6 +691,7 @@ public class DependencyVisitorTest
         assertNoClasses();
     }
 
+    @Test
     public void testVisitLocalVariableWithPrimitiveArray()
     {
         mv.visitLocalVariable( "a", "[I", null, new Label(), new Label(), 0 );
@@ -644,6 +699,7 @@ public class DependencyVisitorTest
         assertNoClasses();
     }
 
+    @Test
     public void testVisitLocalVariableWithObject()
     {
         mv.visitLocalVariable( "a", "La/b/c;", null, new Label(), new Label(), 0 );
@@ -651,6 +707,7 @@ public class DependencyVisitorTest
         assertClasses( "a.b.c" );
     }
 
+    @Test
     public void testVisitLocalVariableWithObjectArray()
     {
         mv.visitLocalVariable( "a", "[La/b/c;", null, new Label(), new Label(), 0 );
@@ -658,6 +715,7 @@ public class DependencyVisitorTest
         assertClasses( "a.b.c" );
     }
 
+    @Test
     public void testVisitLocalVariableWithGenericObject()
     {
         mv.visitLocalVariable( "a", "La/b/c;", "La/b/c<Lx/y/z;>;", new Label(), new Label(), 0 );
@@ -665,6 +723,7 @@ public class DependencyVisitorTest
         assertClasses( "a.b.c", "x.y.z" );
     }
 
+    @Test
     public void testVisitLocalVariableWithGenericObjectArray()
     {
         mv.visitLocalVariable( "a", "La/b/c;", "[La/b/c<Lx/y/z;>;", new Label(), new Label(), 0 );
@@ -674,6 +733,7 @@ public class DependencyVisitorTest
 
     // visitLineNumber tests --------------------------------------------------
 
+    @Test
     public void testVisitLineNumber()
     {
         mv.visitLineNumber( 0, new Label() );
@@ -683,6 +743,7 @@ public class DependencyVisitorTest
 
     // visitMaxs tests --------------------------------------------------------
 
+    @Test
     public void testVisitMaxs()
     {
         mv.visitMaxs( 0, 0 );
@@ -690,8 +751,6 @@ public class DependencyVisitorTest
         assertNoClasses();
     }
 
-    // private methods --------------------------------------------------------
-
     private void assertVisitor( Object actualVisitor )
     {
         //assertEquals( visitor, actualVisitor );
@@ -719,7 +778,7 @@ public class DependencyVisitorTest
 
     private void assertClasses( String[] expectedClasses )
     {
-        assertClasses( new HashSet<String>( Arrays.asList( expectedClasses ) ) );
+        assertClasses( new HashSet<>( Arrays.asList( expectedClasses ) ) );
     }
 
     private void assertClasses( Set<String> expectedClasses )
diff --git a/src/test/java/org/apache/maven/shared/dependency/analyzer/asm/MockAttribute.java b/src/test/java/org/apache/maven/shared/dependency/analyzer/asm/MockAttribute.java
index 7ee2dda..c9c74e5 100644
--- a/src/test/java/org/apache/maven/shared/dependency/analyzer/asm/MockAttribute.java
+++ b/src/test/java/org/apache/maven/shared/dependency/analyzer/asm/MockAttribute.java
@@ -25,7 +25,6 @@ import org.objectweb.asm.Attribute;
  * A simple ASM <code>Attribute</code> for use in tests.
  * 
  * @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
- * @version $Id$
  */
 public class MockAttribute extends Attribute
 {
diff --git a/src/test/resources/jarWithCompileDependency/project1/src/main/java/jarWithCompileDependency/project1/Project1.java b/src/test/resources/jarWithCompileDependency/project1/src/main/java/jarWithCompileDependency/project1/Project1.java
index 91a47d9..3fe7fb7 100644
--- a/src/test/resources/jarWithCompileDependency/project1/src/main/java/jarWithCompileDependency/project1/Project1.java
+++ b/src/test/resources/jarWithCompileDependency/project1/src/main/java/jarWithCompileDependency/project1/Project1.java
@@ -23,12 +23,9 @@ package jarWithCompileDependency.project1;
  * 
  * 
  * @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
- * @version $Id$
  */
 public class Project1
 {
-    // constructors -----------------------------------------------------------
-
     public Project1()
     {
         // no-op
diff --git a/src/test/resources/jarWithCompileDependency/project2/src/main/java/jarWithCompileDependency/project2/Project2.java b/src/test/resources/jarWithCompileDependency/project2/src/main/java/jarWithCompileDependency/project2/Project2.java
index 4f540b2..5bc71ce 100644
--- a/src/test/resources/jarWithCompileDependency/project2/src/main/java/jarWithCompileDependency/project2/Project2.java
+++ b/src/test/resources/jarWithCompileDependency/project2/src/main/java/jarWithCompileDependency/project2/Project2.java
@@ -25,12 +25,9 @@ import jarWithCompileDependency.project1.Project1;
  * 
  * 
  * @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
- * @version $Id$
  */
 public class Project2
 {
-    // constructors -----------------------------------------------------------
-
     public Project2()
     {
         Project1 project = new Project1();
diff --git a/src/test/resources/jarWithCompileScopedTestDependency/project1/src/main/java/jarWithTestDependency/project1/Project1.java b/src/test/resources/jarWithCompileScopedTestDependency/project1/src/main/java/jarWithTestDependency/project1/Project1.java
index 4f4572d..2c5e8a5 100644
--- a/src/test/resources/jarWithCompileScopedTestDependency/project1/src/main/java/jarWithTestDependency/project1/Project1.java
+++ b/src/test/resources/jarWithCompileScopedTestDependency/project1/src/main/java/jarWithTestDependency/project1/Project1.java
@@ -23,12 +23,9 @@ package jarWithTestDependency.project1;
  * 
  * 
  * @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
- * @version $Id$
  */
 public class Project1
 {
-    // constructors -----------------------------------------------------------
-
     public Project1()
     {
         // no-op
diff --git a/src/test/resources/jarWithCompileScopedTestDependency/project2/src/test/java/jarWithTestDependency/project2/Project2.java b/src/test/resources/jarWithCompileScopedTestDependency/project2/src/test/java/jarWithTestDependency/project2/Project2.java
index e64c057..6930e48 100644
--- a/src/test/resources/jarWithCompileScopedTestDependency/project2/src/test/java/jarWithTestDependency/project2/Project2.java
+++ b/src/test/resources/jarWithCompileScopedTestDependency/project2/src/test/java/jarWithTestDependency/project2/Project2.java
@@ -25,7 +25,6 @@ import jarWithTestDependency.project1.Project1;
  * 
  * 
  * @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
- * @version $Id$
  */
 public class Project2
 {
@@ -34,8 +33,6 @@ public class Project2
     // Not the case any more, since we sniff it from the constant pool
     public final static int STATUS_ERROR = junit.runner.TestRunListener.STATUS_ERROR;
 
-    // constructors -----------------------------------------------------------
-
     public Project2()
     {
         Project1 project = new Project1();
diff --git a/src/test/resources/jarWithNoDependencies/src/main/java/jarWithNoDependencies/Project.java b/src/test/resources/jarWithNoDependencies/src/main/java/jarWithNoDependencies/Project.java
index accc39d..962cd73 100644
--- a/src/test/resources/jarWithNoDependencies/src/main/java/jarWithNoDependencies/Project.java
+++ b/src/test/resources/jarWithNoDependencies/src/main/java/jarWithNoDependencies/Project.java
@@ -23,12 +23,9 @@ package jarWithNoDependencies;
  * 
  * 
  * @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
- * @version $Id$
  */
 public class Project
 {
-    // constructors -----------------------------------------------------------
-
     public Project()
     {
         // no-op
diff --git a/src/test/resources/jarWithRuntimeScopedTestDependency/project1/src/main/java/jarWithTestDependency/project1/Project1.java b/src/test/resources/jarWithRuntimeScopedTestDependency/project1/src/main/java/jarWithTestDependency/project1/Project1.java
index 4f4572d..2c5e8a5 100644
--- a/src/test/resources/jarWithRuntimeScopedTestDependency/project1/src/main/java/jarWithTestDependency/project1/Project1.java
+++ b/src/test/resources/jarWithRuntimeScopedTestDependency/project1/src/main/java/jarWithTestDependency/project1/Project1.java
@@ -23,12 +23,9 @@ package jarWithTestDependency.project1;
  * 
  * 
  * @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
- * @version $Id$
  */
 public class Project1
 {
-    // constructors -----------------------------------------------------------
-
     public Project1()
     {
         // no-op
diff --git a/src/test/resources/jarWithRuntimeScopedTestDependency/project2/src/test/java/jarWithTestDependency/project2/Project2.java b/src/test/resources/jarWithRuntimeScopedTestDependency/project2/src/test/java/jarWithTestDependency/project2/Project2.java
index e64c057..33d1302 100644
--- a/src/test/resources/jarWithRuntimeScopedTestDependency/project2/src/test/java/jarWithTestDependency/project2/Project2.java
+++ b/src/test/resources/jarWithRuntimeScopedTestDependency/project2/src/test/java/jarWithTestDependency/project2/Project2.java
@@ -23,9 +23,7 @@ import jarWithTestDependency.project1.Project1;
 
 /**
  * 
- * 
  * @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
- * @version $Id$
  */
 public class Project2
 {
@@ -34,8 +32,6 @@ public class Project2
     // Not the case any more, since we sniff it from the constant pool
     public final static int STATUS_ERROR = junit.runner.TestRunListener.STATUS_ERROR;
 
-    // constructors -----------------------------------------------------------
-
     public Project2()
     {
         Project1 project = new Project1();
diff --git a/src/test/resources/jarWithTestDependency/project1/src/main/java/jarWithTestDependency/project1/Project1.java b/src/test/resources/jarWithTestDependency/project1/src/main/java/jarWithTestDependency/project1/Project1.java
index 4f4572d..539e9dc 100644
--- a/src/test/resources/jarWithTestDependency/project1/src/main/java/jarWithTestDependency/project1/Project1.java
+++ b/src/test/resources/jarWithTestDependency/project1/src/main/java/jarWithTestDependency/project1/Project1.java
@@ -21,14 +21,10 @@ package jarWithTestDependency.project1;
 
 /**
  * 
- * 
  * @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
- * @version $Id$
  */
 public class Project1
 {
-    // constructors -----------------------------------------------------------
-
     public Project1()
     {
         // no-op
diff --git a/src/test/resources/jarWithTestDependency/project2/src/test/java/jarWithTestDependency/project2/Project2.java b/src/test/resources/jarWithTestDependency/project2/src/test/java/jarWithTestDependency/project2/Project2.java
index e64c057..33d1302 100644
--- a/src/test/resources/jarWithTestDependency/project2/src/test/java/jarWithTestDependency/project2/Project2.java
+++ b/src/test/resources/jarWithTestDependency/project2/src/test/java/jarWithTestDependency/project2/Project2.java
@@ -23,9 +23,7 @@ import jarWithTestDependency.project1.Project1;
 
 /**
  * 
- * 
  * @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
- * @version $Id$
  */
 public class Project2
 {
@@ -34,8 +32,6 @@ public class Project2
     // Not the case any more, since we sniff it from the constant pool
     public final static int STATUS_ERROR = junit.runner.TestRunListener.STATUS_ERROR;
 
-    // constructors -----------------------------------------------------------
-
     public Project2()
     {
         Project1 project = new Project1();