Skip to content

Commit

Permalink
Add tests for error and no issues detection
Browse files Browse the repository at this point in the history
  • Loading branch information
cpoenisch committed Apr 1, 2021
1 parent dd5048f commit 1edbcb2
Show file tree
Hide file tree
Showing 3 changed files with 60 additions and 5 deletions.
Expand Up @@ -12,22 +12,63 @@
import hudson.model.FreeStyleBuild;
import hudson.model.FreeStyleProject;
import hudson.model.Result;
import io.jenkins.plugins.analysis.core.model.ResultAction;
import org.junit.Test;
import org.jvnet.hudson.test.TestBuilder;

import java.io.IOException;
import java.util.Objects;

import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.nullValue;

/**
* Integration tests for {@link WarningsRecorder}.
*/
public class WarningsRecorderIT extends IntegrationTestBase {

@Test
public void recordWarnings() throws Exception {
public void recordIssues() throws Exception {
final String issueFileName = "issues.json";
final String issues = loadTestResource(issueFileName);

final FreeStyleProject project = createProject(issueFileName, issues);
final FreeStyleBuild build = jenkins.buildAndAssertStatus(Result.SUCCESS, project);
jenkins.assertLogContains("found 1 file", build);
jenkins.assertLogContains("found 3 issues", build);

assertThat(build.getAction(ResultAction.class).getResult().getIssues().size(), is(3));
}

@Test
public void recordNoIssues() throws Exception {
final String issueFileName = "no-issues.json";
final String issues = loadTestResource(issueFileName);

final FreeStyleProject project = createProject(issueFileName, issues);
final FreeStyleBuild build = jenkins.buildAndAssertStatus(Result.SUCCESS, project);
jenkins.assertLogContains("found 1 file", build);
jenkins.assertLogContains("found 0 issues", build);
jenkins.assertLogContains("No issues found, empty result will be removed from build!", build);

assertThat(build.getAction(ResultAction.class), is(nullValue()));
}

@Test
public void recordError() throws Exception {
final String issueFileName = "error.json";
final String issues = loadTestResource(issueFileName);

final FreeStyleProject project = createProject(issueFileName, issues);
final FreeStyleBuild build = jenkins.buildAndAssertStatus(Result.FAILURE, project);
jenkins.assertLogContains("found 1 file", build);
jenkins.assertLogContains("found 1 issue", build);

assertThat(build.getAction(ResultAction.class).getResult().getTotalErrorsSize(), is(1));
}

private FreeStyleProject createProject(final String issueFileName, final String issues) throws IOException {
final FreeStyleProject project = jenkins.createFreeStyleProject();
project.getBuildersList().add(new TestBuilder() {

Expand All @@ -40,9 +81,6 @@ public boolean perform(final AbstractBuild<?, ?> build, final Launcher launcher,
return !recorder.record(build, build.getWorkspace(), launcher, listener);
}
});

final FreeStyleBuild build = jenkins.buildAndAssertStatus(Result.SUCCESS, project);
jenkins.assertLogContains("found 1 file", build);
jenkins.assertLogContains("found 3 issues", build);
return project;
}
}
@@ -0,0 +1,12 @@
{
"_class": "io.jenkins.plugins.analysis.core.restapi.ReportApi",
"issues": [
{
"description": "#1 Issue",
"fileName": "test.pkg",
"lineStart": 1,
"severity": "ERROR"
}
],
"size": 1
}
@@ -0,0 +1,5 @@
{
"_class": "io.jenkins.plugins.analysis.core.restapi.ReportApi",
"issues": [],
"size": 0
}

0 comments on commit 1edbcb2

Please sign in to comment.