Package hudson.plugins.findbugs.parser

Source Code of hudson.plugins.findbugs.parser.BugsDifferencerTest

package hudson.plugins.findbugs.parser;

import static org.junit.Assert.*;
import hudson.plugins.analysis.core.AnnotationDifferencer;
import hudson.plugins.analysis.test.AnnotationDifferencerTest;
import hudson.plugins.analysis.util.model.AnnotationStream;
import hudson.plugins.analysis.util.model.FileAnnotation;
import hudson.plugins.analysis.util.model.Priority;

import java.io.InputStream;
import java.util.Arrays;
import java.util.HashSet;

import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.junit.Test;

import com.google.common.collect.Sets;

/**
* Tests the {@link AnnotationDifferencer} for bugs.
*/
public class BugsDifferencerTest extends AnnotationDifferencerTest {
    @Override
    public FileAnnotation createAnnotation(final String fileName, final Priority priority, final String message, final String category,
            final String type, final int start, final int end) {
        Bug bug = new Bug(priority, message, message, message, start, end);
        bug.setFileName(fileName);
        bug.setInstanceHash(String.valueOf(new HashCodeBuilder().append(priority).append(message).append(category).append(type).append(start).append(end).toHashCode()));
        return bug;
    }

    /**
     * Tests whether the instance hash of the findbugs library is correctly used.
     */
    @Test
    public void testInstanceHash() {
        AnnotationStream xstream = new AnnotationStream();
        xstream.alias("bug", Bug.class);

        InputStream stream = BugsDifferencerTest.class.getResourceAsStream("issue-6669-1.xml");
        FileAnnotation[] current;
        try {
            current = (FileAnnotation[])xstream.fromXML(stream);
            assertEquals("Wrong number of bugs", 2, current.length);
        }
        finally {
            IOUtils.closeQuietly(stream);
        }
        stream = BugsDifferencerTest.class.getResourceAsStream("issue-6669-2.xml");

        FileAnnotation[] previous;
        try {
            previous = (FileAnnotation[])xstream.fromXML(stream);
            assertEquals("Wrong number of bugs", 2, previous.length);
        }
        finally {
            IOUtils.closeQuietly(stream);
        }

        HashSet<FileAnnotation> currentSet = Sets.newHashSet(Arrays.asList(current));
        HashSet<FileAnnotation> previousSet = Sets.newHashSet(Arrays.asList(previous));
        assertEquals("Wrong number of fixed bugs", 0,
                AnnotationDifferencer.getFixedAnnotations(currentSet, previousSet).size());
        assertEquals("Wrong number of new bugs", 0,
                AnnotationDifferencer.getNewAnnotations(currentSet, previousSet).size());
    }
}
TOP

Related Classes of hudson.plugins.findbugs.parser.BugsDifferencerTest

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.