From 562fe546ad07c27f11f3b39b39432bfc30018eae Mon Sep 17 00:00:00 2001 From: MatafonovDS Date: Thu, 13 Nov 2025 17:41:39 +0500 Subject: [PATCH 1/2] tests + github actions --- .github/workflows/tests.yml | 26 +++++++++++++++ build.gradle.kts | 1 + .../GetMaxDefenderGoalsUseCaseTest.java | 32 +++++++++++++++++++ 3 files changed, 59 insertions(+) create mode 100644 .github/workflows/tests.yml create mode 100644 src/test/java/ru/urfu/domain/useCase/GetMaxDefenderGoalsUseCaseTest.java diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 0000000..ed2c9e9 --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,26 @@ +name: Java CI with Gradle + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 # Checks out your repository under $GITHUB_WORKSPACE + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'temurin' # Or 'adopt', 'zulu', etc. + cache: 'gradle' # Caches Gradle dependencies + - name: Grant execute permission for gradlew + run: chmod +x gradlew + - name: Build with Gradle + run: ./gradlew build # This will also run the 'test' task by default + - name: Run Unit Tests + run: ./gradlew test # Explicitly run the test task if 'build' doesn't cover it \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index e710cae..a138aff 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -13,6 +13,7 @@ repositories { dependencies { testImplementation(platform("org.junit:junit-bom:5.10.0")) testImplementation("org.junit.jupiter:junit-jupiter") + testImplementation("org.mockito:mockito-core:5.+") implementation("org.jfree:jfreechart:1.5.6") implementation("com.google.inject:guice:5.1.0") implementation("org.telegram:telegrambots:6.9.0") diff --git a/src/test/java/ru/urfu/domain/useCase/GetMaxDefenderGoalsUseCaseTest.java b/src/test/java/ru/urfu/domain/useCase/GetMaxDefenderGoalsUseCaseTest.java new file mode 100644 index 0000000..8ce326b --- /dev/null +++ b/src/test/java/ru/urfu/domain/useCase/GetMaxDefenderGoalsUseCaseTest.java @@ -0,0 +1,32 @@ +package ru.urfu.domain.useCase; + +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; +import org.mockito.Mockito; +import ru.urfu.domain.model.Player; +import ru.urfu.domain.model.Position; +import ru.urfu.domain.repository.IPlayersRepository; + +import java.util.List; + +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.Mockito.mock; + +class GetMaxDefenderGoalsUseCaseTest { + private static final IPlayersRepository mockRepository = mock(IPlayersRepository.class); + + @Test + public void test() { + Mockito + .when(mockRepository.getCachedPlayers()) + .thenReturn( + List.of( + new Player("Иванов Иван", Position.DEFENDER, "", 10) + ) + ); + + var useCase = new GetMaxDefenderGoalsUseCase(mockRepository); + + assertEquals(10, useCase.execute()); + } +} \ No newline at end of file From 4fffde5b311bc138fc3f38d4059103d6c506f627 Mon Sep 17 00:00:00 2001 From: MatafonovDS Date: Fri, 14 Nov 2025 11:06:01 +0500 Subject: [PATCH 2/2] bug --- .../java/ru/urfu/domain/useCase/GetMaxDefenderGoalsUseCase.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/ru/urfu/domain/useCase/GetMaxDefenderGoalsUseCase.java b/src/main/java/ru/urfu/domain/useCase/GetMaxDefenderGoalsUseCase.java index 3441e17..728434c 100644 --- a/src/main/java/ru/urfu/domain/useCase/GetMaxDefenderGoalsUseCase.java +++ b/src/main/java/ru/urfu/domain/useCase/GetMaxDefenderGoalsUseCase.java @@ -15,7 +15,7 @@ public GetMaxDefenderGoalsUseCase(IPlayersRepository repository) { public int execute() { return repository.getCachedPlayers().stream() - .filter(player -> player.position() == Position.DEFENDER) + .filter(player -> player.position() == Position.FORWARD) .mapToInt(Player::goals) .max() .orElse(0);