diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 32f0826..3fae014 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -1,19 +1,18 @@ # This workflow will build a Java project with Gradle # For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle -name: Java CI with Gradle +name: Build and Test on: push: - branches: [ master ] + branches: + - master pull_request: - branches: [ master ] + types: [opened, synchronize, reopened] jobs: build: - runs-on: ubuntu-latest - steps: - uses: actions/checkout@v2 - name: Set up JDK 11 @@ -31,7 +30,10 @@ jobs: # run: ./gradlew check - name: Generate test report with Gradle - run: ./gradlew jacocoTestReport sonarqube -Dsonar.login=${{ secrets.SONAR_KEY }} -Dsonar.qualitygate.wait=true + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + run: ./gradlew test integrationTest jacocoTestReport sonarqube -Dsonar.qualitygate.wait=true -Dsonar.verbose=true # - name: Upload a Build Artifact # run: ./gradlew publish diff --git a/README.md b/README.md index 70cb87b..d22dd44 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[![Build Status](https://travis-ci.com/algarves/loteria-crawlers.svg?branch=master)](https://travis-ci.com/algarves/loteria-crawlers) +[![Java CI with Gradle](https://github.com/algarves/loteria-crawlers/actions/workflows/gradle.yml/badge.svg)](https://github.com/algarves/loteria-crawlers/actions/workflows/gradle.yml) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=algarves_loteria-crawlers&metric=alert_status)](https://sonarcloud.io/dashboard?id=algarves_loteria-crawlers) [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://github.com/algarves/loteria-crawlers/blob/master/LICENSE) diff --git a/build.gradle b/build.gradle index 82c863f..7ecccac 100644 --- a/build.gradle +++ b/build.gradle @@ -3,7 +3,7 @@ plugins { id 'java-library' id 'maven-publish' id 'jacoco' - id 'org.sonarqube' version '3.2.0' + id 'org.sonarqube' version '3.3' id 'com.adarshr.test-logger' version '3.0.0' } @@ -80,8 +80,20 @@ publishing { } } -test { - useJUnitPlatform() +tasks.withType(Test) { + description = 'Runs the unit tests.' + group = 'validation' + useJUnitPlatform({ + excludeTags 'integrationTest' + }) +} + +task integrationTest(type: Test) { + description = 'Runs the integration tests.' + group = 'verification' + useJUnitPlatform { + includeTags 'integrationTest' + } } jacoco { diff --git a/gradle.properties b/gradle.properties index 95496fd..4bb739f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1 @@ -vertical=LoteriaCrawlersServices - sonarQubeProjectKey=algarves_loteria-crawlers diff --git a/sonar.gradle b/sonar.gradle index 13b4dda..e087393 100644 --- a/sonar.gradle +++ b/sonar.gradle @@ -1,17 +1,14 @@ apply plugin: "org.sonarqube" -def coverageExclusions = [ - "**/test/java/*.java" -] - sonarqube { properties { - property "sonar.coverage.exclusions", coverageExclusions.join(",") - property "sonar.java.binaries", "$build/classes/java/main/**/*.class" - property "sonar.java.libraries", "**.jar" property "sonar.projectName", rootProject.name - property "sonar.organization", sonarQubeProjectKey + property "sonar.organization", "algarves" property "sonar.projectKey", sonarQubeProjectKey - property "sonar.host.url", 'https://sonarcloud.io/' + property "sonar.host.url", 'https://sonarcloud.io' + property "sonar.java.coveragePlugin", "jacoco" + property "sonar.tests", "src/test" + property "sonar.java.test.binaries", "build/classes/java/test" + property "sonar.coverage.jacoco.xmlReportPaths", "build/reports/jacoco/test/jacocoTestReport.xml" } } diff --git a/src/main/java/com/ueby/loteria/crawlers/exception/JsonParseErrorException.java b/src/main/java/com/ueby/loteria/crawlers/exception/JsonParseErrorException.java new file mode 100644 index 0000000..93413d3 --- /dev/null +++ b/src/main/java/com/ueby/loteria/crawlers/exception/JsonParseErrorException.java @@ -0,0 +1,18 @@ +package com.ueby.loteria.crawlers.exception; + +/** + * @author Algarves, Khristian + */ +public class JsonParseErrorException extends RuntimeException { + + static final long serialVersionUID = 1L; + + public JsonParseErrorException(String message) { + super(message); + } + + public JsonParseErrorException(String message, Throwable throwable) { + super(message, throwable); + } + +} diff --git a/src/main/java/com/ueby/loteria/crawlers/service/CaixaWebCrawlerService.java b/src/main/java/com/ueby/loteria/crawlers/service/CaixaWebCrawlerService.java index 8aa73c3..1d12630 100644 --- a/src/main/java/com/ueby/loteria/crawlers/service/CaixaWebCrawlerService.java +++ b/src/main/java/com/ueby/loteria/crawlers/service/CaixaWebCrawlerService.java @@ -6,6 +6,9 @@ import com.ueby.loteria.crawlers.game.CaixaGameResult; import com.ueby.loteria.crawlers.util.JsonUtil; import com.ueby.loteria.crawlers.util.RandomUtil; +import java.io.IOException; +import java.net.URISyntaxException; +import java.util.concurrent.TimeUnit; import lombok.extern.log4j.Log4j2; import org.apache.http.HttpResponse; import org.apache.http.HttpStatus; @@ -17,19 +20,12 @@ import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; -import java.io.IOException; -import java.net.URISyntaxException; -import java.util.concurrent.TimeUnit; - /** * @author Algarves, Khristian */ @Log4j2 public class CaixaWebCrawlerService extends AbstractCrawlerService { - private static final String BASE_URL = "http://loterias.caixa.gov.br"; - private static final String HOME_URL_PATH = "/wps/portal/loterias"; - private static final String HTML_ELEMENT_FIRST = "com.ibm.lotus.NavStateUrl"; private static final String HTML_ELEMENT_SECOND = "input[type=hidden][id=urlBuscarResultado]"; private static final String HTML_DOCTYPE = " A fromJson(String json, Class clazz) { return mapper.readValue(json, clazz); } catch (JsonParseException e) { log.error(e.getLocalizedMessage(), e); - throw new RuntimeException(e.getLocalizedMessage()); + throw new JsonParseErrorException(e.getMessage()); } catch (Exception e) { log.error(e.getLocalizedMessage(), e); - throw new RuntimeException(e.getLocalizedMessage()); + throw new JsonParseErrorException(e.getMessage()); } } diff --git a/src/test/java/com/ueby/loteria/crawlers/CaixaCrawlerStubTest.java b/src/test/java/com/ueby/loteria/crawlers/CaixaCrawlerStubTest.java index 36727e1..d1771e4 100644 --- a/src/test/java/com/ueby/loteria/crawlers/CaixaCrawlerStubTest.java +++ b/src/test/java/com/ueby/loteria/crawlers/CaixaCrawlerStubTest.java @@ -7,11 +7,11 @@ /** * @author Algarves, Khristian */ -public class CaixaCrawlerStubTest { +class CaixaCrawlerStubTest { @DisplayName("Getters and Setters of CaixaCrawlerStub") @Test - public void shouldNewInstanceOfCaixaCrawlerStub() { + void shouldNewInstanceOfCaixaCrawlerStub() { CaixaCrawlerStub caixaCrawlerStub = new CaixaCrawlerStub.Builder() .withLinkHref("LinkHref") .withUrlBuscarResultado("UrlBuscarResultado") diff --git a/src/test/java/com/ueby/loteria/crawlers/IntegrationTest.java b/src/test/java/com/ueby/loteria/crawlers/IntegrationTest.java new file mode 100644 index 0000000..94fe80f --- /dev/null +++ b/src/test/java/com/ueby/loteria/crawlers/IntegrationTest.java @@ -0,0 +1,14 @@ +package com.ueby.loteria.crawlers; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; +import org.junit.jupiter.api.Tag; + +@Tag("integrationTest") +@Target({ElementType.TYPE, ElementType.METHOD}) +@Retention(RetentionPolicy.RUNTIME) +public @interface IntegrationTest { + +} diff --git a/src/test/java/com/ueby/loteria/crawlers/exception/CaixaWebCrawlerServiceExceptionTest.java b/src/test/java/com/ueby/loteria/crawlers/exception/CaixaWebCrawlerServiceExceptionTest.java index fe09fd3..28c2df4 100644 --- a/src/test/java/com/ueby/loteria/crawlers/exception/CaixaWebCrawlerServiceExceptionTest.java +++ b/src/test/java/com/ueby/loteria/crawlers/exception/CaixaWebCrawlerServiceExceptionTest.java @@ -6,10 +6,10 @@ /** * @author Algarves, Khristian */ -public class CaixaWebCrawlerServiceExceptionTest { +class CaixaWebCrawlerServiceExceptionTest { @Test - public void shouldCaixaWebCrawlerExceptionTest() { + void shouldCaixaWebCrawlerExceptionTest() { Exception exception = Assertions.assertThrows( CaixaWebCrawlerException.class, () -> { diff --git a/src/test/java/com/ueby/loteria/crawlers/game/DiaDeSorteWebCrawlerTest.java b/src/test/java/com/ueby/loteria/crawlers/game/DiaDeSorteWebCrawlerTest.java index 5c1a2b9..1534511 100644 --- a/src/test/java/com/ueby/loteria/crawlers/game/DiaDeSorteWebCrawlerTest.java +++ b/src/test/java/com/ueby/loteria/crawlers/game/DiaDeSorteWebCrawlerTest.java @@ -1,26 +1,28 @@ package com.ueby.loteria.crawlers.game; import com.ueby.loteria.crawlers.CaixaGameType; +import com.ueby.loteria.crawlers.IntegrationTest; import com.ueby.loteria.crawlers.service.CaixaWebCrawlerService; import org.junit.jupiter.api.*; /** * @author Algarves, Khristian */ +@IntegrationTest @TestInstance(TestInstance.Lifecycle.PER_CLASS) -public class DiaDeSorteWebCrawlerTest { +class DiaDeSorteWebCrawlerTest { private CaixaWebCrawlerService crawler; private final CaixaGameType caixaGameType = CaixaGameType.DIA_DE_SORTE; @BeforeAll - public void setUp() { + void setUp() { crawler = new CaixaWebCrawlerService(caixaGameType); } @DisplayName("DiaDeSorte - Request by last contest") @Test - public void shouldDiaDeSorteWebCrawlerByLastContest() { + void shouldDiaDeSorteWebCrawlerByLastContest() { crawler.byLastContest(); CaixaGameResult caixaGameResult = crawler.getMatchResult(); @@ -31,7 +33,7 @@ public void shouldDiaDeSorteWebCrawlerByLastContest() { @DisplayName("DiaDeSorte - Request by contest number") @Test - public void shouldDiaDeSorteWebCrawlerByContestNumber() { + void shouldDiaDeSorteWebCrawlerByContestNumber() { final Integer contest = 1; crawler.byContestNumber(contest); @@ -42,4 +44,4 @@ public void shouldDiaDeSorteWebCrawlerByContestNumber() { Assertions.assertEquals(caixaGameType, caixaGameResult.getTipoJogo()); } -} \ No newline at end of file +} diff --git a/src/test/java/com/ueby/loteria/crawlers/game/DuplasenaWebCrawlerTest.java b/src/test/java/com/ueby/loteria/crawlers/game/DuplasenaWebCrawlerTest.java index 71e1ee4..05502e4 100644 --- a/src/test/java/com/ueby/loteria/crawlers/game/DuplasenaWebCrawlerTest.java +++ b/src/test/java/com/ueby/loteria/crawlers/game/DuplasenaWebCrawlerTest.java @@ -1,26 +1,28 @@ package com.ueby.loteria.crawlers.game; import com.ueby.loteria.crawlers.CaixaGameType; +import com.ueby.loteria.crawlers.IntegrationTest; import com.ueby.loteria.crawlers.service.CaixaWebCrawlerService; import org.junit.jupiter.api.*; /** * @author Algarves, Khristian */ +@IntegrationTest @TestInstance(TestInstance.Lifecycle.PER_CLASS) -public class DuplasenaWebCrawlerTest { +class DuplasenaWebCrawlerTest { private CaixaWebCrawlerService crawler; private final CaixaGameType caixaGameType = CaixaGameType.DUPLA_SENA; @BeforeAll - public void setUp() { + void setUp() { crawler = new CaixaWebCrawlerService(caixaGameType); } @DisplayName("Duplasena - Request by last contest") @Test - public void shouldDuplasenaWebCrawlerByLastContest() { + void shouldDuplasenaWebCrawlerByLastContest() { crawler.byLastContest(); CaixaGameResult caixaGameResult = crawler.getMatchResult(); @@ -31,7 +33,7 @@ public void shouldDuplasenaWebCrawlerByLastContest() { @DisplayName("Duplasena - Request by contest number") @Test - public void shouldDuplasenaWebCrawlerByContestNumber() { + void shouldDuplasenaWebCrawlerByContestNumber() { final Integer contest = 1709; crawler.byContestNumber(contest); @@ -42,4 +44,4 @@ public void shouldDuplasenaWebCrawlerByContestNumber() { Assertions.assertEquals(caixaGameType, caixaGameResult.getTipoJogo()); } -} \ No newline at end of file +} diff --git a/src/test/java/com/ueby/loteria/crawlers/game/FederalWebCrawlerTest.java b/src/test/java/com/ueby/loteria/crawlers/game/FederalWebCrawlerTest.java index 601747a..2dd0869 100644 --- a/src/test/java/com/ueby/loteria/crawlers/game/FederalWebCrawlerTest.java +++ b/src/test/java/com/ueby/loteria/crawlers/game/FederalWebCrawlerTest.java @@ -1,26 +1,28 @@ package com.ueby.loteria.crawlers.game; import com.ueby.loteria.crawlers.CaixaGameType; +import com.ueby.loteria.crawlers.IntegrationTest; import com.ueby.loteria.crawlers.service.CaixaWebCrawlerService; import org.junit.jupiter.api.*; /** * @author Algarves, Khristian */ +@IntegrationTest @TestInstance(TestInstance.Lifecycle.PER_CLASS) -public class FederalWebCrawlerTest { +class FederalWebCrawlerTest { private CaixaWebCrawlerService crawler; private final CaixaGameType caixaGameType = CaixaGameType.LOTERIA_FEDERAL; @BeforeAll - public void setUp() { + void setUp() { crawler = new CaixaWebCrawlerService(caixaGameType); } @DisplayName("Federal - Request by last contest") @Test - public void shouldFederalWebCrawlerByLastContest() { + void shouldFederalWebCrawlerByLastContest() { crawler.byLastContest(); CaixaGameResult caixaGameResult = crawler.getMatchResult(); @@ -31,7 +33,7 @@ public void shouldFederalWebCrawlerByLastContest() { @DisplayName("Federal - Request by contest number") @Test - public void shouldFederalWebCrawlerByContestNumber() { + void shouldFederalWebCrawlerByContestNumber() { final Integer concourse = 5476; crawler.byContestNumber(concourse); @@ -42,4 +44,4 @@ public void shouldFederalWebCrawlerByContestNumber() { Assertions.assertEquals(caixaGameType, caixaGameResult.getTipoJogo()); } -} \ No newline at end of file +} diff --git a/src/test/java/com/ueby/loteria/crawlers/game/LotecaWebCrawlerTest.java b/src/test/java/com/ueby/loteria/crawlers/game/LotecaWebCrawlerTest.java index 71b8b35..99aefe4 100644 --- a/src/test/java/com/ueby/loteria/crawlers/game/LotecaWebCrawlerTest.java +++ b/src/test/java/com/ueby/loteria/crawlers/game/LotecaWebCrawlerTest.java @@ -1,26 +1,28 @@ package com.ueby.loteria.crawlers.game; import com.ueby.loteria.crawlers.CaixaGameType; +import com.ueby.loteria.crawlers.IntegrationTest; import com.ueby.loteria.crawlers.service.CaixaWebCrawlerService; import org.junit.jupiter.api.*; /** * @author Algarves, Khristian */ +@IntegrationTest @TestInstance(TestInstance.Lifecycle.PER_CLASS) -public class LotecaWebCrawlerTest { +class LotecaWebCrawlerTest { private CaixaWebCrawlerService crawler; private final CaixaGameType caixaGameType = CaixaGameType.LOTECA; @BeforeAll - public void setUp() { + void setUp() { crawler = new CaixaWebCrawlerService(caixaGameType); } @DisplayName("Loteca - Request by last contest") @Test - public void shouldLotecaWebCrawlerByLastContest() { + void shouldLotecaWebCrawlerByLastContest() { crawler.byLastContest(); CaixaGameResult caixaGameResult = crawler.getMatchResult(); @@ -31,7 +33,7 @@ public void shouldLotecaWebCrawlerByLastContest() { @DisplayName("Loteca - Request by contest number") @Test - public void shouldLotecaWebCrawlerByContestNumber() { + void shouldLotecaWebCrawlerByContestNumber() { final Integer contest = 850; crawler.byContestNumber(contest); @@ -42,4 +44,4 @@ public void shouldLotecaWebCrawlerByContestNumber() { Assertions.assertEquals(caixaGameType, caixaGameResult.getTipoJogo()); } -} \ No newline at end of file +} diff --git a/src/test/java/com/ueby/loteria/crawlers/game/LotofacilWebCrawlerTest.java b/src/test/java/com/ueby/loteria/crawlers/game/LotofacilWebCrawlerTest.java index 41310fa..370df72 100644 --- a/src/test/java/com/ueby/loteria/crawlers/game/LotofacilWebCrawlerTest.java +++ b/src/test/java/com/ueby/loteria/crawlers/game/LotofacilWebCrawlerTest.java @@ -1,26 +1,28 @@ package com.ueby.loteria.crawlers.game; import com.ueby.loteria.crawlers.CaixaGameType; +import com.ueby.loteria.crawlers.IntegrationTest; import com.ueby.loteria.crawlers.service.CaixaWebCrawlerService; import org.junit.jupiter.api.*; /** * @author Algarves, Khristian */ +@IntegrationTest @TestInstance(TestInstance.Lifecycle.PER_CLASS) -public class LotofacilWebCrawlerTest { +class LotofacilWebCrawlerTest { private CaixaWebCrawlerService crawler; private final CaixaGameType caixaGameType = CaixaGameType.LOTOFACIL; @BeforeAll - public void setUp() { + void setUp() { crawler = new CaixaWebCrawlerService(caixaGameType); } @DisplayName("Lotofacil - Request by last contest") @Test - public void shouldLotofacilWebCrawlerByLastContest() { + void shouldLotofacilWebCrawlerByLastContest() { crawler.byLastContest(); CaixaGameResult caixaGameResult = crawler.getMatchResult(); @@ -31,7 +33,7 @@ public void shouldLotofacilWebCrawlerByLastContest() { @DisplayName("Lotofacil - Request by number contest") @Test - public void shouldLotofacilWebCrawlerByNumberContest() { + void shouldLotofacilWebCrawlerByNumberContest() { final Integer contest = 1000; crawler.byContestNumber(contest); @@ -42,4 +44,4 @@ public void shouldLotofacilWebCrawlerByNumberContest() { Assertions.assertEquals(caixaGameType, caixaGameResult.getTipoJogo()); } -} \ No newline at end of file +} diff --git a/src/test/java/com/ueby/loteria/crawlers/game/LotomaniaWebCrawlerTest.java b/src/test/java/com/ueby/loteria/crawlers/game/LotomaniaWebCrawlerTest.java index a32fb83..773718a 100644 --- a/src/test/java/com/ueby/loteria/crawlers/game/LotomaniaWebCrawlerTest.java +++ b/src/test/java/com/ueby/loteria/crawlers/game/LotomaniaWebCrawlerTest.java @@ -1,26 +1,28 @@ package com.ueby.loteria.crawlers.game; import com.ueby.loteria.crawlers.CaixaGameType; +import com.ueby.loteria.crawlers.IntegrationTest; import com.ueby.loteria.crawlers.service.CaixaWebCrawlerService; import org.junit.jupiter.api.*; /** * @author Algarves, Khristian */ +@IntegrationTest @TestInstance(TestInstance.Lifecycle.PER_CLASS) -public class LotomaniaWebCrawlerTest { +class LotomaniaWebCrawlerTest { private CaixaWebCrawlerService crawler; private final CaixaGameType caixaGameType = CaixaGameType.LOTOMANIA; @BeforeAll - public void setUp() { + void setUp() { crawler = new CaixaWebCrawlerService(caixaGameType); } @DisplayName("Lotomania - Request by last contest") @Test - public void shouldLotomaniaWebCrawlerByLastContest() { + void shouldLotomaniaWebCrawlerByLastContest() { crawler.byLastContest(); CaixaGameResult caixaGameResult = crawler.getMatchResult(); @@ -31,7 +33,7 @@ public void shouldLotomaniaWebCrawlerByLastContest() { @DisplayName("Lotomania - Request by contest number") @Test - public void shouldLotomaniaWebCrawlerByContestNumber() { + void shouldLotomaniaWebCrawlerByContestNumber() { final Integer contest = 1000; crawler.byContestNumber(contest); @@ -42,4 +44,4 @@ public void shouldLotomaniaWebCrawlerByContestNumber() { Assertions.assertEquals(caixaGameType, caixaGameResult.getTipoJogo()); } -} \ No newline at end of file +} diff --git a/src/test/java/com/ueby/loteria/crawlers/game/MegasenaWebCrawlerTest.java b/src/test/java/com/ueby/loteria/crawlers/game/MegasenaWebCrawlerTest.java index fe7342b..28af992 100644 --- a/src/test/java/com/ueby/loteria/crawlers/game/MegasenaWebCrawlerTest.java +++ b/src/test/java/com/ueby/loteria/crawlers/game/MegasenaWebCrawlerTest.java @@ -1,26 +1,28 @@ package com.ueby.loteria.crawlers.game; import com.ueby.loteria.crawlers.CaixaGameType; +import com.ueby.loteria.crawlers.IntegrationTest; import com.ueby.loteria.crawlers.service.CaixaWebCrawlerService; import org.junit.jupiter.api.*; /** * @author Algarves, Khristian */ +@IntegrationTest @TestInstance(TestInstance.Lifecycle.PER_CLASS) -public class MegasenaWebCrawlerTest { +class MegasenaWebCrawlerTest { private CaixaWebCrawlerService crawler; private final CaixaGameType caixaGameType = CaixaGameType.MEGA_SENA; @BeforeAll - public void setUp() { + void setUp() { crawler = new CaixaWebCrawlerService(caixaGameType); } @DisplayName("Megasena - Request by last contest") @Test - public void shouldMegasenaWebCrawlerByLastContest() { + void shouldMegasenaWebCrawlerByLastContest() { crawler.byLastContest(); CaixaGameResult caixaGameResult = crawler.getMatchResult(); @@ -31,7 +33,7 @@ public void shouldMegasenaWebCrawlerByLastContest() { @DisplayName("Megasena - Request by contest number") @Test - public void shouldMegasenaWebCrawlerByContestNumber() { + void shouldMegasenaWebCrawlerByContestNumber() { final Integer contest = 2110; crawler.byContestNumber(contest); @@ -42,4 +44,4 @@ public void shouldMegasenaWebCrawlerByContestNumber() { Assertions.assertEquals(caixaGameType, caixaGameResult.getTipoJogo()); } -} \ No newline at end of file +} diff --git a/src/test/java/com/ueby/loteria/crawlers/game/QuinaWebCrawlerTest.java b/src/test/java/com/ueby/loteria/crawlers/game/QuinaWebCrawlerTest.java index f7e3e7c..3d4d704 100644 --- a/src/test/java/com/ueby/loteria/crawlers/game/QuinaWebCrawlerTest.java +++ b/src/test/java/com/ueby/loteria/crawlers/game/QuinaWebCrawlerTest.java @@ -1,26 +1,28 @@ package com.ueby.loteria.crawlers.game; import com.ueby.loteria.crawlers.CaixaGameType; +import com.ueby.loteria.crawlers.IntegrationTest; import com.ueby.loteria.crawlers.service.CaixaWebCrawlerService; import org.junit.jupiter.api.*; /** * @author Algarves, Khristian */ +@IntegrationTest @TestInstance(TestInstance.Lifecycle.PER_CLASS) -public class QuinaWebCrawlerTest { +class QuinaWebCrawlerTest { private CaixaWebCrawlerService crawler; private final CaixaGameType caixaGameType = CaixaGameType.QUINA; @BeforeAll - public void setUp() { + void setUp() { crawler = new CaixaWebCrawlerService(caixaGameType); } @DisplayName("Quina - Request by last contest") @Test - public void shouldQuinaWebCrawlerByLastContest() { + void shouldQuinaWebCrawlerByLastContest() { crawler.byLastContest(); CaixaGameResult caixaGameResult = crawler.getMatchResult(); @@ -31,7 +33,7 @@ public void shouldQuinaWebCrawlerByLastContest() { @DisplayName("Quina - Request by contest number") @Test - public void shouldQuinaWebCrawlerByContestNumber() { + void shouldQuinaWebCrawlerByContestNumber() { final Integer contest = 2110; crawler.byContestNumber(contest); @@ -42,4 +44,4 @@ public void shouldQuinaWebCrawlerByContestNumber() { Assertions.assertEquals(caixaGameType, caixaGameResult.getTipoJogo()); } -} \ No newline at end of file +} diff --git a/src/test/java/com/ueby/loteria/crawlers/game/SuperSeteWebCrawlerTest.java b/src/test/java/com/ueby/loteria/crawlers/game/SuperSeteWebCrawlerTest.java index 5813692..1419386 100644 --- a/src/test/java/com/ueby/loteria/crawlers/game/SuperSeteWebCrawlerTest.java +++ b/src/test/java/com/ueby/loteria/crawlers/game/SuperSeteWebCrawlerTest.java @@ -1,26 +1,28 @@ package com.ueby.loteria.crawlers.game; import com.ueby.loteria.crawlers.CaixaGameType; +import com.ueby.loteria.crawlers.IntegrationTest; import com.ueby.loteria.crawlers.service.CaixaWebCrawlerService; import org.junit.jupiter.api.*; /** * @author Algarves, Khristian */ +@IntegrationTest @TestInstance(TestInstance.Lifecycle.PER_CLASS) -public class SuperSeteWebCrawlerTest { +class SuperSeteWebCrawlerTest { private CaixaWebCrawlerService crawler; private static final CaixaGameType caixaGameType = CaixaGameType.SUPER_SETE; @BeforeAll - public void setUp() { + void setUp() { crawler = new CaixaWebCrawlerService(caixaGameType); } @DisplayName("Supersete - Request by last contest") @Test - public void shouldLotofacilWebCrawlerByLastContest() { + void shouldLotofacilWebCrawlerByLastContest() { crawler.byLastContest(); CaixaGameResult caixaGameResult = crawler.getMatchResult(); @@ -31,7 +33,7 @@ public void shouldLotofacilWebCrawlerByLastContest() { @DisplayName("Supersete - Request by number contest") @Test - public void shouldLotofacilWebCrawlerByNumberContest() { + void shouldLotofacilWebCrawlerByNumberContest() { final Integer contest = 60; crawler.byContestNumber(contest); @@ -42,4 +44,4 @@ public void shouldLotofacilWebCrawlerByNumberContest() { Assertions.assertEquals(caixaGameType, caixaGameResult.getTipoJogo()); } -} \ No newline at end of file +} diff --git a/src/test/java/com/ueby/loteria/crawlers/game/TimemaniaWebCrawlerTest.java b/src/test/java/com/ueby/loteria/crawlers/game/TimemaniaWebCrawlerTest.java index 9b217d4..11fe8ff 100644 --- a/src/test/java/com/ueby/loteria/crawlers/game/TimemaniaWebCrawlerTest.java +++ b/src/test/java/com/ueby/loteria/crawlers/game/TimemaniaWebCrawlerTest.java @@ -1,26 +1,28 @@ package com.ueby.loteria.crawlers.game; import com.ueby.loteria.crawlers.CaixaGameType; +import com.ueby.loteria.crawlers.IntegrationTest; import com.ueby.loteria.crawlers.service.CaixaWebCrawlerService; import org.junit.jupiter.api.*; /** * @author Algarves, Khristian */ +@IntegrationTest @TestInstance(TestInstance.Lifecycle.PER_CLASS) -public class TimemaniaWebCrawlerTest { +class TimemaniaWebCrawlerTest { private CaixaWebCrawlerService crawler; private static final CaixaGameType caixaGameType = CaixaGameType.TIMEMANIA; @BeforeAll - public void setUp() { + void setUp() { crawler = new CaixaWebCrawlerService(caixaGameType); } @DisplayName("Timemania - Request by last contest") @Test - public void shouldTimemaniaWebCrawlerByLastContestTest() { + void shouldTimemaniaWebCrawlerByLastContestTest() { crawler.byLastContest(); CaixaGameResult caixaGameResult = crawler.getMatchResult(); @@ -31,7 +33,7 @@ public void shouldTimemaniaWebCrawlerByLastContestTest() { @DisplayName("Timemania - Request by contest number") @Test - public void shouldTimemaniaWebCrawlerByContestNumberTest() { + void shouldTimemaniaWebCrawlerByContestNumberTest() { final Integer contest = 1469; crawler.byContestNumber(contest); @@ -42,4 +44,4 @@ public void shouldTimemaniaWebCrawlerByContestNumberTest() { Assertions.assertEquals(caixaGameType, caixaGameResult.getTipoJogo()); } -} \ No newline at end of file +} diff --git a/src/test/java/com/ueby/loteria/crawlers/util/JsonObjectDtoTest.java b/src/test/java/com/ueby/loteria/crawlers/util/JsonObjectDto.java similarity index 85% rename from src/test/java/com/ueby/loteria/crawlers/util/JsonObjectDtoTest.java rename to src/test/java/com/ueby/loteria/crawlers/util/JsonObjectDto.java index 5e5576a..6a9ed56 100644 --- a/src/test/java/com/ueby/loteria/crawlers/util/JsonObjectDtoTest.java +++ b/src/test/java/com/ueby/loteria/crawlers/util/JsonObjectDto.java @@ -7,7 +7,7 @@ * @author Algarves, Khristian */ @NoArgsConstructor -public class JsonObjectDtoTest { +class JsonObjectDto { @Getter private String key; diff --git a/src/test/java/com/ueby/loteria/crawlers/util/JsonUtilTest.java b/src/test/java/com/ueby/loteria/crawlers/util/JsonUtilTest.java index 4aeb486..f6f45d3 100644 --- a/src/test/java/com/ueby/loteria/crawlers/util/JsonUtilTest.java +++ b/src/test/java/com/ueby/loteria/crawlers/util/JsonUtilTest.java @@ -10,13 +10,13 @@ /** * @author Algarves, Khristian */ -public class JsonUtilTest { +class JsonUtilTest { private static final String JSON_EXAMPLE = "{\"key\":\"value\"}"; @DisplayName("Convert Object to JSON") @Test - public void shouldConvertObjectToJson() { + void shouldConvertObjectToJson() { Map obj = new HashMap(); obj.put("key", "value"); @@ -26,16 +26,16 @@ public void shouldConvertObjectToJson() { @DisplayName("JSON on object") @Test - public void shouldJsonOnObject() { - JsonObjectDtoTest obj = JsonUtil.fromJson(JSON_EXAMPLE, JsonObjectDtoTest.class); + void shouldJsonOnObject() { + JsonObjectDto obj = JsonUtil.fromJson(JSON_EXAMPLE, JsonObjectDto.class); Assertions.assertEquals("value", obj.getKey()); } @DisplayName("Throw Nullpointer Exception from JSON") @Test - public void shouldThrowNullpointerExceptionFromJson() { + void shouldThrowNullpointerExceptionFromJson() { Exception exception = Assertions.assertThrows(NullPointerException.class, () -> { - JsonUtil.fromJson(null, JsonObjectDtoTest.class); + JsonUtil.fromJson(null, JsonObjectDto.class); }); String expectedMessage = "Value cannot be null."; @@ -46,7 +46,7 @@ public void shouldThrowNullpointerExceptionFromJson() { @DisplayName("Check if the json structure is valid") @Test - public void shouldIsValid() { + void shouldIsValid() { boolean isValid = JsonUtil.isValid(JSON_EXAMPLE); Assertions.assertEquals(Boolean.TRUE, isValid); } diff --git a/src/test/java/com/ueby/loteria/crawlers/util/RandomUtilTest.java b/src/test/java/com/ueby/loteria/crawlers/util/RandomUtilTest.java index 6e5b202..e4fdd20 100644 --- a/src/test/java/com/ueby/loteria/crawlers/util/RandomUtilTest.java +++ b/src/test/java/com/ueby/loteria/crawlers/util/RandomUtilTest.java @@ -7,11 +7,11 @@ /** * @author Algarves, Khristian */ -public class RandomUtilTest { +class RandomUtilTest { @DisplayName("Return a random number in the given range") @Test - public void shouldReturnRandomNumberInTheGivenRange() { + void shouldReturnRandomNumberInTheGivenRange() { final int rand = RandomUtil.getRandomNumInRange(1, 60); Assertions.assertTrue(rand >= 1 && rand <= 60); @@ -19,7 +19,7 @@ public void shouldReturnRandomNumberInTheGivenRange() { @DisplayName("Invalid Range Number") @Test - public void shouldThrowTheExceptionWhenInvalidRange() { + void shouldThrowTheExceptionWhenInvalidRange() { Exception exception = Assertions.assertThrows(IllegalArgumentException.class, () -> { RandomUtil.getRandomNumInRange(60, 1); }); @@ -32,10 +32,11 @@ public void shouldThrowTheExceptionWhenInvalidRange() { @DisplayName("Equals Range Number") @Test - public void shouldThrowTheExceptionWhenEqualsRange() { + void shouldThrowTheExceptionWhenEqualsRange() { + int expectedNumber = 1; int num = RandomUtil.getRandomNumInRange(1, 1); - Assertions.assertTrue(num == 1); + Assertions.assertEquals(expectedNumber, num); } }