Skip to content
This repository was archived by the owner on Nov 19, 2024. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ public HealthReport getBuildHealth() {
}

@Override
public Object getTarget() {
public CoverageViewModel getTarget() {
return new CoverageViewModel(getOwner(), getResult());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,7 @@ public String getUrlForBuild(final String selectedBuildDisplayName, final String
* @return the new sub-page
*/
@SuppressWarnings("unused") // Called by jelly view
public Object getDynamic(final String link, final StaplerRequest request, final StaplerResponse response) {
public SourceViewModel getDynamic(final String link, final StaplerRequest request, final StaplerResponse response) {
if (StringUtils.isNotEmpty(link)) {
try {
Optional<CoverageNode> targetResult = getNode().findByHashCode(CoverageMetric.FILE, Integer.parseInt(link));
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package io.jenkins.plugins.coverage.model;

import java.util.SortedMap;
import java.util.TreeMap;

import org.junit.jupiter.api.Test;

import hudson.model.Run;

import static org.assertj.core.api.Assertions.*;
import static org.mockito.Mockito.*;

/**
* Tests the class {@link CoverageBuildAction}.
*
* @author Ullrich Hafner
*/
class CoverageBuildActionTest {
@Test
void shouldCreateViewModel() {
Run<?, ?> build = mock(Run.class);
CoverageNode root = new CoverageNode(CoverageMetric.MODULE, "top-level");
SortedMap<CoverageMetric, Double> metrics = new TreeMap<>();

CoverageBuildAction action = new CoverageBuildAction(build, root, "-", metrics, false);

assertThat(action.getTarget()).extracting(CoverageViewModel::getNode).isEqualTo(root);
assertThat(action.getTarget()).extracting(CoverageViewModel::getOwner).isEqualTo(build);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
class CoverageViewModelTest extends AbstractCoverageTest {
@Test
void shouldReportOverview() {
CoverageViewModel model = new CoverageViewModel(mock(Run.class), readNode("jacoco-codingstyle.xml"));
CoverageViewModel model = createModel();

assertThat(model.getDisplayName()).contains("Java coding style: jacoco-codingstyle.xml");

Expand All @@ -32,5 +32,21 @@ void shouldReportOverview() {
assertThatJson(overview).node("missed").isArray().containsExactly(
0, 3, 3, 5, 29, 90, 7
);

assertThat(model.getDynamic("unknown", null, null))
.isNull();
}

@Test
void shouldReturnEmptySourceViewForExistingLinkButMissingSourceFile() {
CoverageViewModel model = createModel();

String link = String.valueOf("PathUtil.java".hashCode());
assertThat(model.getDynamic(link, null, null))
.extracting(SourceViewModel::getSourceFileContent).isEqualTo("n/a");
}

private CoverageViewModel createModel() {
return new CoverageViewModel(mock(Run.class), readNode("jacoco-codingstyle.xml"));
}
}