Package com.adobe.ac.pmd

Source Code of com.adobe.ac.pmd.AbstractEntireRulesetTest

/*
* 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.
*/
package com.adobe.ac.pmd;

import java.io.File;
import java.io.IOException;
import java.net.URISyntaxException;
import java.net.URL;

import net.sourceforge.pmd.PMDException;

import org.junit.Test;

import com.adobe.ac.pmd.engines.FlexPmdXmlEngine;

import junit.framework.TestCase;

public abstract class AbstractEntireRulesetTest extends TestCase
{

   protected static final String OUTPUT_DIRECTORY_URL = "target/report/";

   public AbstractEntireRulesetTest()
   {
      super();
   }

   protected abstract int getRulesNb();

   protected abstract int getViolatedFilesNb();

   protected abstract String getRuleSetPath();

   public AbstractEntireRulesetTest( String name )
   {
      super( name );
   }

   @Test
   public void testLoadRuleSet() throws URISyntaxException,
                                   PMDException,
                                   IOException
   {
      final File sourceDirectory = new File( getClass().getResource( "/test" ).toURI().getPath() );
      final URL ruleSetUrl = getClass().getResource( getRuleSetPath() );
  
      assertNotNull( "RuleSet has not been found",
                     ruleSetUrl );
  
      assertNotNull( "RuleSet has not been found",
                     ruleSetUrl.toURI() );
  
      assertNotNull( "RuleSet has not been found",
                     ruleSetUrl.toURI().getPath() );
  
      final File outputDirectory = new File( OUTPUT_DIRECTORY_URL );
      final File ruleSetFile = new File( ruleSetUrl.toURI().getPath() );
      final FlexPmdXmlEngine engine = new FlexPmdXmlEngine( new FlexPmdParameters( "",
                                                                                   outputDirectory,
                                                                                   ruleSetFile,
                                                                                   sourceDirectory ) );
      final FlexPmdViolations flexPmdViolations = new FlexPmdViolations();
  
      engine.executeReport( flexPmdViolations );
  
      assertEquals( "Number of rules found is not correct",
                    getRulesNb(),
                    engine.getRuleSet().size() );
      assertEquals( getViolatedFilesNb(),
                    flexPmdViolations.getViolations().size() );
   }

}
TOP

Related Classes of com.adobe.ac.pmd.AbstractEntireRulesetTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.