diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index 29363356..778f88e8 100755 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -23,3 +23,24 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: > ./gradlew build jacocoTestReport + + - name: Upload JaCoCo coverage report as a workflow artifact + uses: actions/upload-artifact@v3 + with: + name: jacoco-report + path: ${{ github.workspace }}/build/reports/jacoco/test/html + + - name: Jacoco Report to PR + id: jacoco + uses: madrapps/jacoco-report@v1.6.1 + with: + paths: ${{ github.workspace }}/build/reports/jacoco/test/jacocoTestReport.xml + token: ${{ secrets.GITHUB_TOKEN }} + min-coverage-overall: 40 + min-coverage-changed-files: 60 + title: Code Coverage + update-comment: true + - name: Get the Coverage info + run: | + echo "Total coverage ${{ steps.jacoco.outputs.coverage-overall }}" + echo "Changed Files coverage ${{ steps.jacoco.outputs.coverage-changed-files }}" diff --git a/.gitignore b/.gitignore index 2d8c4c72..de0bdbcb 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ bin/ build/ classes out +.DS_STORE diff --git a/LOG8371_tp1.pdf b/LOG8371_tp1.pdf new file mode 100644 index 00000000..f59ddc01 Binary files /dev/null and b/LOG8371_tp1.pdf differ diff --git a/README.md b/README.md index e626d366..bdd14b54 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,4 @@ +SPUTNIK ![sputnik](http://touk.github.io/sputnik/images/logo-color-bgtransparent-small.png) > Static code review for your Gerrit and Stash patchsets. Runs Checkstyle, PMD, SpotBugs (formerly known as FindBugs), Scalastyle, CodeNarc, JSLint, JSHint, TSLint and Detekt for you! diff --git a/build.gradle b/build.gradle index caf31db2..9fb98c6a 100644 --- a/build.gradle +++ b/build.gradle @@ -164,6 +164,9 @@ dependencies { test { useJUnitPlatform() + testLogging { + events "passed" + } } // Jacoco + coveralls diff --git a/src/test/java/pl/touk/sputnik/connector/stash/StashFacadeTest.java b/src/test/java/pl/touk/sputnik/connector/stash/StashFacadeTest.java index f49db1f3..abdebcc7 100644 --- a/src/test/java/pl/touk/sputnik/connector/stash/StashFacadeTest.java +++ b/src/test/java/pl/touk/sputnik/connector/stash/StashFacadeTest.java @@ -6,6 +6,8 @@ import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; import pl.touk.sputnik.HttpConnectorEnv; import pl.touk.sputnik.configuration.Configuration; import pl.touk.sputnik.configuration.ConfigurationSetup; @@ -24,6 +26,8 @@ import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching; import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.mockito.Mockito.*; class StashFacadeTest { @@ -42,13 +46,17 @@ class StashFacadeTest { private WireMockServer wireMockServer; private HttpConnectorEnv httpConnectorEnv; + @Mock + private StashFacade stashFacadeMock; + + @BeforeEach void setUp() { wireMockServer = new WireMockServer(wireMockConfig().port(FacadeConfigUtil.HTTP_PORT).httpsPort(FacadeConfigUtil.HTTPS_PORT)); wireMockServer.start(); httpConnectorEnv = new HttpConnectorEnv(wireMockServer); - + MockitoAnnotations.initMocks(this); config = new ConfigurationSetup().setUp(FacadeConfigUtil.getHttpConfig("stash"), STASH_PATCHSET_MAP); stashFacade = new StashFacadeBuilder().build(config); } @@ -58,6 +66,17 @@ void tearDown() { wireMockServer.stop(); } + @Test + public void testListFilesErrorHandling(){ + when(stashFacadeMock.listFiles()).thenThrow(new StashException("Error when listing files")); + StashException thrown = assertThrows( + StashException.class, + () -> stashFacadeMock.listFiles(), + "Expected listFiles() to throw, but it didn't" + ); + assertThat(thrown.getMessage()).isEqualTo("Error when listing files"); + } + @Test void shouldGetChangeInfo() throws Exception { httpConnectorEnv.stubGet(urlEqualTo(String.format(