From 6adbdb1667dcce1e24d48512fccd3b6b63231dfc Mon Sep 17 00:00:00 2001 From: Gareth Evans Date: Wed, 5 May 2021 14:16:15 +0100 Subject: [PATCH] fix: added tests around github checks --- .../tekton/client/build/create/CreateRaw.java | 4 ++- .../client/build/FakeChecksPublisher.java | 26 ++++++++++++++++++- .../build/create/CreateRawMockServerTest.java | 18 ++++++++++--- .../client/build/create/CreateRawTest.java | 16 ++++++++++-- 4 files changed, 56 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/waveywaves/jenkins/plugins/tekton/client/build/create/CreateRaw.java b/src/main/java/org/waveywaves/jenkins/plugins/tekton/client/build/create/CreateRaw.java index 39cf42f..7789df1 100644 --- a/src/main/java/org/waveywaves/jenkins/plugins/tekton/client/build/create/CreateRaw.java +++ b/src/main/java/org/waveywaves/jenkins/plugins/tekton/client/build/create/CreateRaw.java @@ -261,6 +261,7 @@ public String createPipelineRun(InputStream inputStream, EnvVars envVars) throws .withName("tekton") .withOutput(new ChecksOutput.ChecksOutputBuilder() .withTitle(updatedPipelineRun.getMetadata().getName()) + .withSummary("PipelineRun is running...") .build()) .withStartedAt(LocalDateTime.now()) .withStatus(ChecksStatus.IN_PROGRESS) @@ -382,7 +383,6 @@ public void perform(@NonNull Run run, @NonNull FilePath workspace, @NonNul protected String runCreate(Run run, FilePath workspace, EnvVars envVars) { URL url = null; byte[] data = null; - //File inputFile = null; String inputData = this.getInput(); String inputType = this.getInputType(); String createdResourceName = ""; @@ -421,6 +421,7 @@ protected String runCreate(Run run, FilePath workspace, EnvVars envVars) { .withName("tekton") .withOutput(new ChecksOutput.ChecksOutputBuilder() .withTitle(createdResourceName) + .withSummary("PipelineRun completed") .build()) .withCompletedAt(LocalDateTime.now()) .withStatus(ChecksStatus.COMPLETED) @@ -449,6 +450,7 @@ protected String runCreate(Run run, FilePath workspace, EnvVars envVars) { .withConclusion(ChecksConclusion.FAILURE) .withOutput(new ChecksOutput.ChecksOutputBuilder() .withTitle(createdResourceName) + .withSummary("PipelineRun Failed") .withText(buffer.toString()) .build()) .withDetailsURL(DisplayURLProvider.get().getRunURL(run)) diff --git a/src/test/java/org/waveywaves/jenkins/plugins/tekton/client/build/FakeChecksPublisher.java b/src/test/java/org/waveywaves/jenkins/plugins/tekton/client/build/FakeChecksPublisher.java index 7e9fdd9..c09f523 100644 --- a/src/test/java/org/waveywaves/jenkins/plugins/tekton/client/build/FakeChecksPublisher.java +++ b/src/test/java/org/waveywaves/jenkins/plugins/tekton/client/build/FakeChecksPublisher.java @@ -2,17 +2,41 @@ import io.jenkins.plugins.checks.api.ChecksDetails; import io.jenkins.plugins.checks.api.ChecksPublisher; +import java.util.ArrayList; +import java.util.List; + +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.CoreMatchers.notNullValue; +import static org.hamcrest.MatcherAssert.assertThat; public class FakeChecksPublisher extends ChecksPublisher { private int counter = 0; + private List details = new ArrayList<>(); @Override - public void publish(ChecksDetails details) { + public void publish(ChecksDetails detail) { + details.add(detail); counter++; } public int getCounter() { return counter; } + + public void validate() { + for (ChecksDetails c: details) { + System.out.println("[FakeChecksPublisher] " + c); + assertThat(c, is(notNullValue())); + assertThat(c.getName().get(), is("tekton")); + assertThat(c.getConclusion(), is(notNullValue())); + assertThat(c.getStatus(), is(notNullValue())); + + assertThat(c.getOutput(), is(notNullValue())); + assertThat(c.getOutput().get(), is(notNullValue())); + assertThat(c.getOutput().get().getTitle().get(), is(notNullValue())); + assertThat(c.getOutput().get().getSummary().get(), is(notNullValue())); + //assertThat(c, is(notNullValue())); + } + } } diff --git a/src/test/java/org/waveywaves/jenkins/plugins/tekton/client/build/create/CreateRawMockServerTest.java b/src/test/java/org/waveywaves/jenkins/plugins/tekton/client/build/create/CreateRawMockServerTest.java index ee2dbd5..7b69999 100644 --- a/src/test/java/org/waveywaves/jenkins/plugins/tekton/client/build/create/CreateRawMockServerTest.java +++ b/src/test/java/org/waveywaves/jenkins/plugins/tekton/client/build/create/CreateRawMockServerTest.java @@ -10,6 +10,8 @@ import io.fabric8.kubernetes.client.server.mock.KubernetesServer; import io.fabric8.tekton.pipeline.v1beta1.*; +import org.junit.After; +import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.waveywaves.jenkins.plugins.tekton.client.TektonUtils; @@ -18,8 +20,6 @@ import java.io.InputStream; import java.net.HttpURLConnection; import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.List; import org.waveywaves.jenkins.plugins.tekton.client.build.FakeChecksPublisher; import static org.hamcrest.CoreMatchers.is; @@ -30,11 +30,22 @@ public class CreateRawMockServerTest { private boolean enableCatalog = false; - private String namespace; + private String namespace = "test"; + private FakeChecksPublisher checksPublisher; @Rule public KubernetesServer server = new KubernetesServer(); + @Before + public void before() { + checksPublisher = new FakeChecksPublisher(); + } + + @After + public void after() { + checksPublisher.validate(); + } + @Test public void testTaskCreate() { // Given @@ -227,7 +238,6 @@ public void streamPipelineRunLogsToConsole(PipelineRun pipelineRun) { createRaw.setTektonClient(client); createRaw.setPipelineRunClient(pipelineRunClient); - FakeChecksPublisher checksPublisher = new FakeChecksPublisher(); createRaw.setChecksPublisher(checksPublisher); String createdPipelineName = ""; diff --git a/src/test/java/org/waveywaves/jenkins/plugins/tekton/client/build/create/CreateRawTest.java b/src/test/java/org/waveywaves/jenkins/plugins/tekton/client/build/create/CreateRawTest.java index 0d34e54..8be72c0 100644 --- a/src/test/java/org/waveywaves/jenkins/plugins/tekton/client/build/create/CreateRawTest.java +++ b/src/test/java/org/waveywaves/jenkins/plugins/tekton/client/build/create/CreateRawTest.java @@ -7,7 +7,8 @@ import io.fabric8.tekton.pipeline.v1beta1.PipelineRun; import io.fabric8.tekton.pipeline.v1beta1.PipelineRunBuilder; import java.util.List; -import java.util.Optional; +import org.junit.After; +import org.junit.Before; import org.junit.Test; import org.waveywaves.jenkins.plugins.tekton.client.TektonUtils; import org.waveywaves.jenkins.plugins.tekton.client.build.FakeChecksPublisher; @@ -26,6 +27,17 @@ public class CreateRawTest { private Run run; private String namespace; + private FakeChecksPublisher checksPublisher; + + @Before + public void before() { + checksPublisher = new FakeChecksPublisher(); + } + + @After + public void after() { + checksPublisher.validate(); + } @Test public void runCreateTaskTest() { @@ -79,7 +91,7 @@ public void runCreatePipelineRunTest() { createRaw.setNamespace(namespace); createRaw.setClusterName(TektonUtils.DEFAULT_CLIENT_KEY); createRaw.setEnableCatalog(false); - createRaw.setChecksPublisher(new FakeChecksPublisher()); + createRaw.setChecksPublisher(checksPublisher); String created = createRaw.runCreate(run, null, null); assert created.equals(TektonUtils.TektonResourceType.pipelinerun.toString()); }