jenkins.plugins.coverity.CoverityTool.CovImportMsvscaCommandTest.java Source code

Java tutorial

Introduction

Here is the source code for jenkins.plugins.coverity.CoverityTool.CovImportMsvscaCommandTest.java

Source

/*******************************************************************************
 * Copyright (c) 2017 Synopsys, Inc
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *    Synopsys, Inc - initial implementation and documentation
 *******************************************************************************/
package jenkins.plugins.coverity.CoverityTool;

import hudson.FilePath;
import jenkins.plugins.coverity.CoverityPublisher;
import jenkins.plugins.coverity.Utils.CoverityPublisherBuilder;
import jenkins.plugins.coverity.InvocationAssistance;
import jenkins.plugins.coverity.Utils.InvocationAssistanceBuilder;
import org.apache.commons.lang.StringUtils;
import org.junit.Test;

import java.io.File;
import java.io.IOException;

public class CovImportMsvscaCommandTest extends CommandTestBase {

    @Test
    public void addMsvscaOutputFilesTest() throws IOException, InterruptedException {

        File analysisLog1 = new File("CodeAnalysisLog1.xml");
        File analysisLog2 = new File("CodeAnalysisLog2.xml");
        File[] outputFiles = new File[] { analysisLog1, analysisLog2 };

        setCoverityUtils_listFilesAsArray(outputFiles);

        FilePath workspace = new FilePath(new File("."));

        InvocationAssistance invocationAssistance = new InvocationAssistanceBuilder().withCSharpMsvsca(true)
                .build();
        CoverityPublisher publisher = new CoverityPublisherBuilder().withInvocationAssistance(invocationAssistance)
                .build();

        Command covImportMsvscaCommand = new CovImportMsvscaCommand(build, launcher, listener, publisher,
                StringUtils.EMPTY, envVars, workspace);
        setExpectedArguments(new String[] { "cov-import-msvsca", "--dir", "TestDir", "--append",
                analysisLog1.getAbsolutePath(), analysisLog2.getAbsolutePath() });
        covImportMsvscaCommand.runCommand();
        consoleLogger.verifyLastMessage(
                "[Coverity] cov-import-msvsca command line arguments: " + actualArguments.toString());
    }

    @Test
    public void doesNotExecute_WithoutInvocationAssistance() throws IOException, InterruptedException {
        FilePath workspace = new FilePath(new File("."));
        CoverityPublisher publisher = new CoverityPublisherBuilder().build();

        Command covImportMsvscaCommand = new CovImportMsvscaCommand(build, launcher, listener, publisher,
                StringUtils.EMPTY, envVars, workspace);
        covImportMsvscaCommand.runCommand();
        verifyNumberOfExecutedCommands(0);
    }

    @Test
    public void doesNotExecute_WithoutCSharpMsvscaEnabled() throws IOException, InterruptedException {
        FilePath workspace = new FilePath(new File("."));
        InvocationAssistance invocationAssistance = new InvocationAssistanceBuilder().build();
        CoverityPublisher publisher = new CoverityPublisherBuilder().withInvocationAssistance(invocationAssistance)
                .build();

        Command covImportMsvscaCommand = new CovImportMsvscaCommand(build, launcher, listener, publisher,
                StringUtils.EMPTY, envVars, workspace);
        covImportMsvscaCommand.runCommand();
        verifyNumberOfExecutedCommands(0);
    }

    @Test
    public void doesNotExecute_WithoutAnalysisConfigFiles() throws IOException, InterruptedException {
        FilePath workspace = new FilePath(new File("."));
        setCoverityUtils_listFilesAsArray(null);

        InvocationAssistance invocationAssistance = new InvocationAssistanceBuilder().withCSharpMsvsca(true)
                .build();
        CoverityPublisher publisher = new CoverityPublisherBuilder().withInvocationAssistance(invocationAssistance)
                .build();

        Command covImportMsvscaCommand = new CovImportMsvscaCommand(build, launcher, listener, publisher,
                StringUtils.EMPTY, envVars, workspace);
        covImportMsvscaCommand.runCommand();
        verifyNumberOfExecutedCommands(0);
        consoleLogger.verifyLastMessage("[Coverity] MSVSCA No results found, skipping");
    }
}