Package com.adobe.ac.pmd.rules.core

Source Code of com.adobe.ac.pmd.rules.core.ViolationTest

/*
* 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.rules.core;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;

import java.io.FileNotFoundException;
import java.net.URISyntaxException;

import org.junit.Before;
import org.junit.Test;

import com.adobe.ac.pmd.FlexPmdTestBase;
import com.adobe.ac.pmd.files.IFlexFile;
import com.adobe.ac.pmd.rules.core.thresholded.IThresholdedRule;

public class ViolationTest extends FlexPmdTestBase
{
   private static final int              BEGINNING_COLUMN = 0;
   private static final int              BEGINNING_LINE   = 1;
   private static final int              ENDING_COLUMN    = 20;
   private static final int              ENDING_LINE      = 10;
   private static final IThresholdedRule INFO_RULE        = new EmptyRule();
   private static final String           RULE_SET_NAME    = "RuleSetName";
   private static final IFlexRule        WARNING_RULE     = new WarningRule();
   private IFlexFile                     abstractRowData;
   private IFlexFile                     abstractRowDataWithPackage;
   private IFlexFile                     iterationsListMxml;
   private final ViolationPosition       position;

   public ViolationTest()
   {
      super();

      position = ViolationPosition.create( 10,
                                           20,
                                           30,
                                           30 );
   }

   @Before
   public void setUp()
   {
      abstractRowData = getTestFiles().get( "AbstractRowData.as" );
      abstractRowDataWithPackage = getTestFiles().get( "com.adobe.ac.AbstractRowData.as" );
      iterationsListMxml = getTestFiles().get( "com.adobe.ac.ncss.mxml.IterationsList.mxml" );
   }

   @Test
   public void testCompareTo()
   {
      final Violation infoViolation = new Violation( position, INFO_RULE, null );
      final Violation infoViolation2 = new Violation( ViolationPosition.create( 11,
                                                                                20,
                                                                                30,
                                                                                30 ), INFO_RULE, null );
      final Violation warningViolation = new Violation( position, WARNING_RULE, null );
      final Violation warningViolation2 = new Violation( position, WARNING_RULE, null );

      assertEquals( -1,
                    infoViolation.compareTo( infoViolation2 ) );
      assertEquals( -1,
                    warningViolation.compareTo( infoViolation ) );
      assertEquals( 0,
                    warningViolation.compareTo( warningViolation2 ) );
      assertEquals( 1,
                    infoViolation2.compareTo( infoViolation ) );
      assertEquals( 1,
                    infoViolation.compareTo( warningViolation ) );
   }

   @Test
   public void testGetActualValueForTheCurrentViolation()
   {
      final IThresholdedRule thresholdRule = ( IThresholdedRule ) new Violation( position, INFO_RULE, null ).getRule();

      assertEquals( 0,
                    thresholdRule.getActualValueForTheCurrentViolation() );
   }

   @Test
   public void testGetClassName()
   {
      assertEquals( "",
                    new Violation( position, INFO_RULE, null ).getClassName() );
   }

   @Test
   public void testGetDefaultThreshold()
   {
      assertEquals( Integer.valueOf( ViolationPriority.LOW.toString() ),
                    Integer.valueOf( new Violation( position, INFO_RULE, null ).getRule().getPriority() ) );
   }

   @Test
   public void testGetDescription()
   {
      assertEquals( "emptyMessage",
                    new Violation( position, INFO_RULE, null ).getDescription() );
   }

   @Test
   public void testGetEndColumn()
   {
      assertEquals( 30,
                    new Violation( position, INFO_RULE, null ).getEndColumn() );
   }

   @Test
   public void testGetFileName()
   {
      final Violation infoViolation = new Violation( position, INFO_RULE, abstractRowData );

      assertEquals( "AbstractRowData.as",
                    infoViolation.getFilename() );

      final Violation infoViolation2 = new Violation( position, INFO_RULE, abstractRowDataWithPackage );

      assertEquals( "com.adobe.ac.AbstractRowData.as",
                    infoViolation2.getFilename() );
   }

   @Test
   public void testGetMethodName()
   {
      assertEquals( "",
                    new Violation( position, INFO_RULE, abstractRowData ).getMethodName() );

   }

   @Test
   public void testGetPackageName()
   {
      assertEquals( "",
                    new Violation( position, INFO_RULE, abstractRowData ).getPackageName() );

      assertEquals( "com.adobe.ac",
                    new Violation( position, INFO_RULE, abstractRowDataWithPackage ).getPackageName() );
   }

   @Test
   public void testGetRuleMessage()
   {
      assertEquals( "emptyMessage",
                    new Violation( position, INFO_RULE, null ).getRuleMessage() );

      assertEquals( "warning message",
                    new Violation( position, WARNING_RULE, null ).getRuleMessage() );
   }

   @Test
   public void testGetVariableName()
   {
      assertEquals( "",
                    new Violation( position, INFO_RULE, null ).getVariableName() );
   }

   @Test
   public void testIsSuppressed()
   {
      assertFalse( "",
                   new Violation( position, INFO_RULE, abstractRowData ).isSuppressed() );
   }

   @Test
   public void testToXmlString() throws FileNotFoundException,
                                URISyntaxException
   {
      final Violation infoViolation = new Violation( ViolationPosition.create( BEGINNING_LINE,
                                                                               ENDING_LINE,
                                                                               BEGINNING_COLUMN,
                                                                               ENDING_COLUMN ),
                                                     INFO_RULE,
                                                     null );

      assertEquals( "As3 file at a root level",
                    "      <violation beginline=\""
                          + BEGINNING_LINE + "\" endline=\"" + ENDING_LINE + "\" begincolumn=\""
                          + BEGINNING_COLUMN + "\" endcolumn=\"" + ENDING_COLUMN + "\" rule=\""
                          + INFO_RULE.getRuleName() + "\" ruleset=\"" + RULE_SET_NAME + "\" package=\""
                          + abstractRowData.getPackageName() + "\" class=\"" + abstractRowData.getClassName()
                          + "\" externalInfoUrl=\"" + Violation.RULESET_CREATOR_URL + "EmptyRule\" "
                          + "priority=\"" + INFO_RULE.getPriority() + "\">" + "emptyMessage" + "</violation>"
                          + infoViolation.getNewLine(),
                    infoViolation.toXmlString( abstractRowData,
                                               RULE_SET_NAME ) );

      final Violation warningViolation = new Violation( ViolationPosition.create( BEGINNING_LINE,
                                                                                  ENDING_LINE,
                                                                                  BEGINNING_COLUMN,
                                                                                  ENDING_COLUMN ),
                                                        WARNING_RULE,
                                                        null );

      assertEquals( "As3 File at a not-root level",
                    "      <violation beginline=\""
                          + BEGINNING_LINE + "\" endline=\"" + ENDING_LINE + "\" begincolumn=\""
                          + BEGINNING_COLUMN + "\" endcolumn=\"" + ENDING_COLUMN + "\" rule=\""
                          + WARNING_RULE.getRuleName() + "\" ruleset=\"" + RULE_SET_NAME + "\" package=\""
                          + abstractRowDataWithPackage.getPackageName() + "\" class=\""
                          + abstractRowData.getClassName() + "\" externalInfoUrl=\""
                          + Violation.RULESET_CREATOR_URL + "WarningRule\" " + "priority=\""
                          + WARNING_RULE.getPriority() + "\">" + "warning message" + "</violation>"
                          + warningViolation.getNewLine(),
                    warningViolation.toXmlString( abstractRowDataWithPackage,
                                                  RULE_SET_NAME ) );

      assertEquals( "Mxml File at a not-root level",
                    "      <violation beginline=\""
                          + BEGINNING_LINE + "\" endline=\"" + ENDING_LINE + "\" begincolumn=\""
                          + BEGINNING_COLUMN + "\" endcolumn=\"" + ENDING_COLUMN + "\" rule=\""
                          + WARNING_RULE.getRuleName() + "\" ruleset=\"" + RULE_SET_NAME + "\" package=\""
                          + iterationsListMxml.getPackageName() + "\" class=\""
                          + iterationsListMxml.getClassName() + "\" externalInfoUrl=\""
                          + Violation.RULESET_CREATOR_URL + "WarningRule\" " + "priority=\""
                          + WARNING_RULE.getPriority() + "\">" + "warning message" + "</violation>"
                          + warningViolation.getNewLine(),
                    warningViolation.toXmlString( iterationsListMxml,
                                                  RULE_SET_NAME ) );
   }
}
TOP

Related Classes of com.adobe.ac.pmd.rules.core.ViolationTest

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.