/******************************************************************************* * 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 jenkins.plugins.coverity.CoverityPublisher; import jenkins.plugins.coverity.Utils.CoverityPublisherBuilder; import jenkins.plugins.coverity.InvocationAssistance; import jenkins.plugins.coverity.Utils.InvocationAssistanceBuilder; import org.junit.Test; import java.io.IOException; import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; public class PostCovBuildCommandTest extends CommandTestBase { @Test public void prepareCommandTest() throws IOException, InterruptedException { InvocationAssistance invocationAssistance = new InvocationAssistanceBuilder(). withPostCovBuildCmd("TestPostBuildCommand").build(); CoverityPublisher publisher = new CoverityPublisherBuilder().withInvocationAssistance(invocationAssistance).build(); Command postCovBuildCommand = new PostCovBuildCommand(build, launcher, listener, publisher, envVars); setExpectedArguments(new String[] {"TestPostBuildCommand"}); postCovBuildCommand.runCommand(); consoleLogger.verifyLastMessage("[Coverity] post cov-build command: " + actualArguments.toString()); } @Test public void prepareCommandTest_WithParseException() throws IOException, InterruptedException { InvocationAssistance invocationAssistance = new InvocationAssistanceBuilder(). withPostCovBuildCmd("\'").build(); CoverityPublisher publisher = new CoverityPublisherBuilder().withInvocationAssistance(invocationAssistance).build(); Command postCovBuildCommand = new PostCovBuildCommand(build, launcher, listener, publisher, envVars); try{ postCovBuildCommand.runCommand(); fail("RuntimeException should have been thrown"); }catch(RuntimeException e) { assertEquals("ParseException occurred during tokenizing the post cov-build command.", e.getMessage()); } } @Test public void doesNotExecute_WithoutInvocationAssistance() throws IOException, InterruptedException { CoverityPublisher publisher = new CoverityPublisherBuilder().build(); Command postCovBuildCommand = new PostCovBuildCommand(build, launcher, listener, publisher, envVars); postCovBuildCommand.runCommand(); verifyNumberOfExecutedCommands(0); } @Test public void doesNotExecute_WithoutPostAnalyzeCommandEnabled() throws IOException, InterruptedException { InvocationAssistance invocationAssistance = new InvocationAssistanceBuilder().build(); CoverityPublisher publisher = new CoverityPublisherBuilder().withInvocationAssistance(invocationAssistance).build(); Command postCovBuildCommand = new PostCovBuildCommand(build, launcher, listener, publisher, envVars); postCovBuildCommand.runCommand(); verifyNumberOfExecutedCommands(0); } }