/* * 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.*; import org.codehaus.plexus.util.*; assertContains( String content, String value ) { if ( StringUtils.countMatches( content, value ) != 1 ) { throw new IllegalArgumentException( "not found expected text: '" + value + "'" ); } } assertNotContains( String content, String value ) { if ( StringUtils.countMatches( content, value ) != 0 ) { throw new IllegalArgumentException( "found unexpected text: '" + value + "'" ); } } boolean result = true; try { File buildLog = new File( basedir, "build.log" ); String logContent = FileUtils.fileRead( buildLog, "UTF-8" ); File javaFile = new File( basedir, "/src/main/java/fix/test/App.java" ); String content = FileUtils.fileRead( javaFile, "UTF-8" ); assertContains( content, " * App class" ); assertContains( content, " * @generatorClass toto" ); assertContains( content, " * @todo review it" ); assertContains( content, " * @version 1.0" ); assertContains( content, " * @author Vincent Siveton" ); assertContains( content, " * @since 1.0" ); assertContains( content, " * The main method" ); assertContains( content, " * @param args an array of strings that contains the arguments" ); assertContains( content, " *

sampleMethod.

" ); assertContains( content, " * @param str a {@link java.lang.String} object." ); javaFile = new File( basedir, "/src/main/java/fix/test/ClassWithNoJavadoc.java" ); content = FileUtils.fileRead( javaFile, "UTF-8" ); assertContains( content, " *

ClassWithNoJavadoc class.

" ); assertContains( content, " * @version $Id: $" ); assertContains( content, " * @since 1.0" ); assertContains( content, " *

main.

" ); assertContains( content, " * @param args an array of {@link java.lang.String} objects." ); // private sampleMethod assertNotContains( content, " *

sampleMethod.

" ); assertNotContains( content, " * @param str a {@link java.lang.String} object." ); javaFile = new File( basedir, "/src/main/java/fix/test/ClassWithJavadoc.java" ); content = FileUtils.fileRead( javaFile, "UTF-8" ); assertContains( content, " * Some Javadoc." ); assertContains( content, " * @since 1.0" ); assertContains( content, " /** Constant MY_STRING_CONSTANT=\"value\" */" ); assertContains( content, " /** Constant MY_INT_CONSTANT=1 */" ); assertContains( content, " /** Constant EOL=\"System.getProperty( line.separator )\" */" ); // private constant assertNotContains( content, " /** Constant MY_PRIVATE_CONSTANT=\"\" */" ); assertContains( content, " *

main.

" ); assertContains( content, " * @param args an array of {@link java.lang.String} objects." ); assertContains( content, " *

methodWithMissingParameters.

" ); assertContains( content, " * @param str a {@link java.lang.String} object." ); assertContains( content, " * @param b a boolean." ); assertContains( content, " * @param i a int." ); assertContains( content, " * @return a {@link java.lang.String} object." ); // check unknown param assertContains( logContent, "[WARNING] Fixed unknown param 'str' defined in fix.test.ClassWithJavadoc#methodWithWrongJavadocParameters(aString)" ); javaFile = new File( basedir, "/src/main/java/fix/test/InterfaceWithNoJavadoc.java" ); content = FileUtils.fileRead( javaFile, "UTF-8" ); assertContains( content, " *

InterfaceWithNoJavadoc interface.

" ); assertContains( content, " * @version $Id: $" ); assertContains( content, " * @since 1.0" ); assertContains( content, " /** Constant MY_STRING_CONSTANT=\"value\" */" ); assertContains( content, " *

method.

" ); assertContains( content, " * @param aString a {@link java.lang.String} object." ); javaFile = new File( basedir, "/src/main/java/fix/test/InterfaceWithJavadoc.java" ); content = FileUtils.fileRead( javaFile, "UTF-8" ); assertContains( content, " * Some Javadoc." ); assertContains( content, " * @version $Id: $" ); assertContains( content, " * @since 1.0" ); assertContains( content, " /** comment */" ); assertContains( content, " * My method" ); assertContains( content, " * @param aString a {@link java.lang.String} object." ); } catch( Throwable e ) { e.printStackTrace(); result = false; } return result;