Skip to content

Commit

Permalink
Tests improvements / AssertJ / Java 16+
Browse files Browse the repository at this point in the history
  • Loading branch information
slachiewicz committed Feb 1, 2021
1 parent 8bc0699 commit 946f1b1
Show file tree
Hide file tree
Showing 11 changed files with 427 additions and 445 deletions.
11 changes: 11 additions & 0 deletions pom.xml
Expand Up @@ -293,6 +293,11 @@ under the License.
<artifactId>plexus-utils</artifactId>
<version>3.3.0</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-interactivity-api</artifactId>
Expand Down Expand Up @@ -352,6 +357,12 @@ under the License.
<classifier>shaded</classifier>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<version>2.9.1</version>
<scope>test</scope>
</dependency>
</dependencies>

<build>
Expand Down
Expand Up @@ -25,18 +25,19 @@
import com.thoughtworks.qdox.model.JavaClass;
import com.thoughtworks.qdox.model.JavaSource;

import junit.framework.TestCase;
import org.junit.Test;

import static org.assertj.core.api.Assertions.assertThat;

public class AbstractFixJavadocMojoTest
extends TestCase
{
private JavaSource getJavaSource( String source )
{
return new JavaProjectBuilder().addSource( new StringReader( source ) );
}

@Test
public void testReplaceLinkTags_noLinkTag()
throws Throwable
{
String comment = "/** @see ConnectException */";
String source = "import java.net.ConnectException;\n"
Expand All @@ -46,12 +47,12 @@ public void testReplaceLinkTags_noLinkTag()
JavaClass clazz = getJavaSource( source ).getClassByName( "NoLinkTag" );

String newComment = AbstractFixJavadocMojo.replaceLinkTags( comment, clazz );
assertEquals( "/** @see ConnectException */", newComment );

assertThat( newComment ).isEqualTo( "/** @see ConnectException */" );
}

@Test
public void testReplaceLinkTags_oneLinkTag()
throws Throwable
{
String comment = "/** {@link ConnectException} */";
String source = "import java.net.ConnectException;\n"
Expand All @@ -61,11 +62,11 @@ public void testReplaceLinkTags_oneLinkTag()
JavaClass clazz = getJavaSource( source ).getClassByName( "OneLinkTag" );

String newComment = AbstractFixJavadocMojo.replaceLinkTags( comment, clazz );
assertEquals( "/** {@link java.net.ConnectException} */", newComment );
assertThat( newComment ).isEqualTo( "/** {@link java.net.ConnectException} */" );
}

@Test
public void testReplaceLinkTags_missingEndBrace()
throws Throwable
{
String comment = "/** {@link ConnectException */";
String source = "import java.net.ConnectException;\n"
Expand All @@ -75,11 +76,11 @@ public void testReplaceLinkTags_missingEndBrace()
JavaClass clazz = getJavaSource( source ).getClassByName( "MissingEndBrace" );

String newComment = AbstractFixJavadocMojo.replaceLinkTags( comment, clazz );
assertEquals( "/** {@link ConnectException */", newComment );
assertThat( newComment ).isEqualTo( "/** {@link ConnectException */" );
}

@Test
public void testReplaceLinkTags_spacesAfterLinkTag()
throws Throwable
{
String comment = "/** {@link ConnectException} */";
String source = "import java.net.ConnectException;\n"
Expand All @@ -89,11 +90,11 @@ public void testReplaceLinkTags_spacesAfterLinkTag()
JavaClass clazz = getJavaSource( source ).getClassByName( "SpacesAfterLinkTag" );

String newComment = AbstractFixJavadocMojo.replaceLinkTags( comment, clazz );
assertEquals( "/** {@link java.net.ConnectException} */", newComment );
assertThat( newComment ).isEqualTo( "/** {@link java.net.ConnectException} */" );
}

@Test
public void testReplaceLinkTags_spacesAfterClassName()
throws Throwable
{
String comment = "/** {@link ConnectException } */";
String source = "import java.net.ConnectException;\n"
Expand All @@ -103,11 +104,11 @@ public void testReplaceLinkTags_spacesAfterClassName()
JavaClass clazz = getJavaSource( source ).getClassByName( "SpacesAfterClassName" );

String newComment = AbstractFixJavadocMojo.replaceLinkTags( comment, clazz );
assertEquals( "/** {@link java.net.ConnectException} */", newComment );
assertThat( newComment ).isEqualTo( "/** {@link java.net.ConnectException} */" );
}

@Test
public void testReplaceLinkTags_spacesAfterMethod()
throws Throwable
{
String comment = "/** {@link ConnectException#getMessage() } */";
String source = "import java.net.ConnectException;\n"
Expand All @@ -117,11 +118,11 @@ public void testReplaceLinkTags_spacesAfterMethod()
JavaClass clazz = getJavaSource( source ).getClassByName( "SpacesAfterMethod" );

String newComment = AbstractFixJavadocMojo.replaceLinkTags( comment, clazz );
assertEquals( "/** {@link java.net.ConnectException#getMessage()} */", newComment );
assertThat( newComment ).isEqualTo( "/** {@link java.net.ConnectException#getMessage()} */" );
}

@Test
public void testReplaceLinkTags_containingHash()
throws Throwable
{
String comment = "/** {@link ConnectException#getMessage()} */";
String source = "import java.net.ConnectException;\n"
Expand All @@ -131,11 +132,11 @@ public void testReplaceLinkTags_containingHash()
JavaClass clazz = getJavaSource( source ).getClassByName( "ContainingHashes" );

String newComment = AbstractFixJavadocMojo.replaceLinkTags( comment, clazz );
assertEquals( "/** {@link java.net.ConnectException#getMessage()} */", newComment );
assertThat( newComment ).isEqualTo( "/** {@link java.net.ConnectException#getMessage()} */" );
}

@Test
public void testReplaceLinkTags_followedByHash()
throws Throwable
{
String comment = "/** {@link ConnectException} ##important## */";
String source = "import java.net.ConnectException;\n"
Expand All @@ -145,11 +146,11 @@ public void testReplaceLinkTags_followedByHash()
JavaClass clazz = getJavaSource( source ).getClassByName( "FollowedByHash" );

String newComment = AbstractFixJavadocMojo.replaceLinkTags( comment, clazz );
assertEquals( "/** {@link java.net.ConnectException} ##important## */", newComment );
assertThat( newComment ).isEqualTo( "/** {@link java.net.ConnectException} ##important## */" );
}

@Test
public void testReplaceLinkTags_twoLinks()
throws Throwable
{
String comment = "/** Use {@link ConnectException} instead of {@link Exception} */";
String source = "import java.net.ConnectException;\n"
Expand All @@ -159,11 +160,12 @@ public void testReplaceLinkTags_twoLinks()
JavaClass clazz = getJavaSource( source ).getClassByName( "TwoLinks" );

String newComment = AbstractFixJavadocMojo.replaceLinkTags( comment, clazz );
assertEquals( "/** Use {@link java.net.ConnectException} instead of {@link java.lang.Exception} */", newComment );
assertThat( newComment ).isEqualTo(
"/** Use {@link java.net.ConnectException} instead of {@link java.lang.Exception} */" );
}

@Test
public void testReplaceLinkTags_OnlyAnchor()
throws Throwable
{
String comment = "/** There's a {@link #getClass()} but no setClass() */";
String source = "import java.net.ConnectException;\n"
Expand All @@ -173,6 +175,6 @@ public void testReplaceLinkTags_OnlyAnchor()
JavaClass clazz = getJavaSource( source ).getClassByName( "OnlyAnchor" );

String newComment = AbstractFixJavadocMojo.replaceLinkTags( comment, clazz );
assertEquals( "/** There's a {@link #getClass()} but no setClass() */", newComment );
assertThat( newComment ).isEqualTo( "/** There's a {@link #getClass()} but no setClass() */" );
}
}
Expand Up @@ -19,7 +19,8 @@
* under the License.
*/

import static org.mockito.Matchers.anyString;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.times;
Expand All @@ -28,33 +29,28 @@

import java.io.File;

import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
import org.apache.maven.plugin.logging.Log;
import org.apache.maven.plugins.javadoc.AbstractJavadocMojo;

import junit.framework.TestCase;
import org.junit.Before;
import org.junit.Test;

public class AbstractJavadocMojoTest
extends TestCase
{
AbstractJavadocMojo mojo;

@Override
protected void setUp()
throws Exception
@Before
public void setUp()
{
super.setUp();
mojo = new AbstractJavadocMojo()
{
@Override
public void doExecute()
throws MojoExecutionException, MojoFailureException
{
}
};
}

@Test
public void testMJAVADOC432_DetectLinksMessages()
{
Log log = mock( Log.class );
Expand All @@ -63,28 +59,30 @@ public void testMJAVADOC432_DetectLinksMessages()
mojo.outputDirectory = new File( "target/test-classes" );

// first continues after warning, next exits with warning
assertFalse( mojo.isValidJavadocLink( new File( "pom.xml" ).getPath(), true ) );
assertFalse( mojo.isValidJavadocLink( "file://%%", true ) );
assertFalse( mojo.isValidJavadocLink( new File( "pom.xml" ).toURI().toString(), true ) );
assertThat( mojo.isValidJavadocLink( new File( "pom.xml" ).getPath(), true ) ).isFalse();
assertThat( mojo.isValidJavadocLink( "file://%%", true ) ).isFalse();
assertThat( mojo.isValidJavadocLink( new File( "pom.xml" ).toURI().toString(), true ) ).isFalse();
verify( log, times( 4 ) ).warn( anyString() );
verify( log, never() ).error( anyString() );

// first continues after error, next exits with error
assertFalse( mojo.isValidJavadocLink( new File( "pom.xml" ).getPath(), false ) );
assertFalse( mojo.isValidJavadocLink( "file://%%", false ) );
assertFalse( mojo.isValidJavadocLink( new File( "pom.xml" ).toURI().toString(), false ) );
assertThat( mojo.isValidJavadocLink( new File( "pom.xml" ).getPath(), false ) ).isFalse();
assertThat( mojo.isValidJavadocLink( "file://%%", false ) ).isFalse();
assertThat( mojo.isValidJavadocLink( new File( "pom.xml" ).toURI().toString(), false ) ).isFalse();
verify( log, times( 4 ) ).error( anyString() );
verify( log, times( 4 ) ).warn( anyString() ); // no extra warnings
}

@Test
public void testMJAVADOC527_DetectLinksRecursion()
{
Log log = mock( Log.class );
when( log.isErrorEnabled() ).thenReturn( true );
mojo.setLog( log );
mojo.outputDirectory = new File( "target/test-classes" );

assertFalse( mojo.isValidJavadocLink( "http://javamail.java.net/mailapi/apidocs", false ) );
assertTrue( mojo.isValidJavadocLink( "http://commons.apache.org/proper/commons-lang/apidocs", false ) );
assertThat( mojo.isValidJavadocLink( "http://javamail.java.net/mailapi/apidocs", false ) ).isFalse();
assertThat(
mojo.isValidJavadocLink( "http://commons.apache.org/proper/commons-lang/apidocs", false ) ).isTrue();
}
}
35 changes: 15 additions & 20 deletions src/test/java/org/apache/maven/plugins/javadoc/JavadocJarTest.java
Expand Up @@ -21,10 +21,8 @@


import java.io.File;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
Expand All @@ -35,7 +33,8 @@
import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
import org.apache.maven.project.MavenProject;
import org.codehaus.plexus.languages.java.version.JavaVersion;
import org.codehaus.plexus.util.FileUtils;

import static org.assertj.core.api.Assertions.assertThat;

/**
* @author <a href="mailto:oching@apache.org">Maria Odea Ching</a>
Expand Down Expand Up @@ -79,7 +78,7 @@ public void testDefaultConfig()
//check if the javadoc jar file was generated
File generatedFile =
new File( getBasedir(), "target/test/unit/javadocjar-default/target/javadocjar-default-javadoc.jar" );
assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
assertThat( generatedFile ).exists();

Set<String> set = new HashSet<>();

Expand Down Expand Up @@ -131,11 +130,11 @@ else if ( javadocVersion.isBefore( "1.8" ) )
//check if the javadoc files were created
generatedFile =
new File( getBasedir(), "target/test/unit/javadocjar-default/target/site/apidocs/javadocjar/def/App.html" );
assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
assertThat(generatedFile).exists();

generatedFile = new File( getBasedir(),
"target/test/unit/javadocjar-default/target/site/apidocs/javadocjar/def/AppSample.html" );
assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
assertThat( generatedFile ).exists();
}

/**
Expand All @@ -154,7 +153,7 @@ public void testInvalidDestdir()
//check if the javadoc jar file was generated
File generatedFile = new File( getBasedir(),
"target/test/unit/javadocjar-invalid-destdir/target/javadocjar-invalid-destdir-javadoc.jar" );
assertFalse( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
assertThat( generatedFile ).doesNotExist();
}

public void testContinueIfFailOnErrorIsFalse() throws Exception
Expand All @@ -167,7 +166,7 @@ public void testContinueIfFailOnErrorIsFalse() throws Exception
//check if the javadoc jar file was generated
File generatedFile =
new File( getBasedir(), "target/test/unit/javadocjar-failonerror/target/javadocjar-failonerror-javadoc.jar" );
assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
assertThat( generatedFile ).exists();
}

public void testIncludeMavenDescriptorWhenExplicitlyConfigured() throws Exception
Expand All @@ -180,7 +179,7 @@ public void testIncludeMavenDescriptorWhenExplicitlyConfigured() throws Exceptio
//check if the javadoc jar file was generated
File generatedFile =
new File( getBasedir(), "target/test/unit/javadocjar-archive-config/target/javadocjar-archive-config-javadoc.jar" );
assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
assertThat( generatedFile ).exists();

//validate contents of jar file
ZipFile jar = new ZipFile( generatedFile );
Expand All @@ -192,16 +191,12 @@ public void testIncludeMavenDescriptorWhenExplicitlyConfigured() throws Exceptio
}
jar.close();

List<String> expected = new ArrayList<>();
expected.add( "META-INF/" );
expected.add( "META-INF/maven/" );
expected.add( "META-INF/maven/org.apache.maven.plugins.maven-javadoc-plugin.unit/" );
expected.add( "META-INF/maven/org.apache.maven.plugins.maven-javadoc-plugin.unit/javadocjar-archive-config/" );
expected.add( "META-INF/maven/org.apache.maven.plugins.maven-javadoc-plugin.unit/javadocjar-archive-config/pom.xml" );
expected.add( "META-INF/maven/org.apache.maven.plugins.maven-javadoc-plugin.unit/javadocjar-archive-config/pom.properties" );

for (String entry : expected) {
assertTrue("Expected jar to contain " + entry, set.contains(entry));
}
assertThat( set ).contains(
"META-INF/",
"META-INF/maven/",
"META-INF/maven/org.apache.maven.plugins.maven-javadoc-plugin.unit/",
"META-INF/maven/org.apache.maven.plugins.maven-javadoc-plugin.unit/javadocjar-archive-config/",
"META-INF/maven/org.apache.maven.plugins.maven-javadoc-plugin.unit/javadocjar-archive-config/pom.xml",
"META-INF/maven/org.apache.maven.plugins.maven-javadoc-plugin.unit/javadocjar-archive-config/pom.properties" );
}
}

0 comments on commit 946f1b1

Please sign in to comment.