diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index 7d56533..9832a95 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -26,7 +26,9 @@ jobs: strategy: matrix: java: [ '17', '21' ] - + permissions: + pull-requests: write + steps: - uses: actions/checkout@v4 with: @@ -60,3 +62,15 @@ jobs: REVISON: ${{ github.ref_name}} TEST_ENVIRONMENT: java${{ matrix.java }} run: mvn -Dxray.clientId=${{ env.XRAYCLOUD_CLIENT_ID }} -Dxray.clientSecret=${{ env.XRAYCLOUD_CLIENT_SECRET }} -Dxray.testEnvironment=${{ env.TEST_ENVIRONMENT }} -Dxray.testPlanKey=${{ env.XRAYCLOUD_TEST_PLAN_KEY }} -Dxray.revision=${{ env.REVISON }} xray:import-results + - name: add link to Test Plan having the Test Executions (one per Java version) on the build summary + run: | + echo "| Link |" >> $GITHUB_STEP_SUMMARY + echo "| --- |" >> $GITHUB_STEP_SUMMARY + echo "| Test Plan: [${{ vars.XRAYCLOUD_TEST_PLAN_KEY }}](${{ vars.JIRACLOUD_BASE_URL }}/browse/${{ vars.XRAYCLOUD_TEST_PLAN_KEY }}) | " >> $GITHUB_STEP_SUMMARY + - name: add link to Test Plan on the PR + uses: mshick/add-pr-comment@v2 + if: github.event_name == 'pull_request' + with: + message: | + Test Plan: [${{ vars.XRAYCLOUD_TEST_PLAN_KEY }}](${{ vars.JIRACLOUD_BASE_URL }}/browse/${{ vars.XRAYCLOUD_TEST_PLAN_KEY }}) + diff --git a/src/test/java/com/sergiofreire/xray/tutorials/springboot/UserRepositoryTest.java b/src/test/java/com/sergiofreire/xray/tutorials/springboot/UserRepositoryTest.java index a66b284..04f0659 100644 --- a/src/test/java/com/sergiofreire/xray/tutorials/springboot/UserRepositoryTest.java +++ b/src/test/java/com/sergiofreire/xray/tutorials/springboot/UserRepositoryTest.java @@ -40,6 +40,20 @@ void findByIdReturnsNullWhenInvalidId() { assertThat(fromDb).isEmpty(); } + @Test + void findByUsernameReturnsUserForValidUsername() { + User john = new User("John Doe", "johndoe", "dummypassword"); + entityManager.persistAndFlush(john); + + User user = userRepository.findByUsername("johndoe"); + assertThat(user).isEqualTo(john); + } + + @Test + void findByUsernameReturnsNullWhenInvalidUsername() { + User user = userRepository.findByUsername("missinguser"); + assertThat(user).isNull(); + } @Test void findAllReturnsAllUsers() { diff --git a/src/test/java/com/sergiofreire/xray/tutorials/springboot/UserServiceUnitTest.java b/src/test/java/com/sergiofreire/xray/tutorials/springboot/UserServiceUnitTest.java index a9d69fd..f4d2240 100644 --- a/src/test/java/com/sergiofreire/xray/tutorials/springboot/UserServiceUnitTest.java +++ b/src/test/java/com/sergiofreire/xray/tutorials/springboot/UserServiceUnitTest.java @@ -46,6 +46,7 @@ void setUp() { Mockito.when(userRepository.findById(john.getId())).thenReturn(Optional.of(john)); Mockito.when(userRepository.findByUsername(john.getUsername())).thenReturn(john); + Mockito.when(userRepository.findByUsername(john.getUsername())).thenReturn(john); Mockito.when(userRepository.findAll()).thenReturn(allUsers); Mockito.when(userRepository.findById(-99L)).thenReturn(Optional.empty()); } @@ -85,21 +86,22 @@ void getUserDetailsReturnsEmptyIfNonExisting() { } @Test - void existsReturnsTrueIfExisting() { - boolean exists = userService.exists("johndoe"); + void existsReturnsTrueForValidUsername() { + boolean userFound = userService.exists("johndoe"); Mockito.verify(userRepository, VerificationModeFactory.times(1)).findByUsername(Mockito.anyString()); - assertThat(exists).isTrue(); + assertThat(userFound).isTrue(); } - + @Test - void existsReturnsFalseIfNonExisting() { - boolean exists = userService.exists("unknown"); + void existsReturnsFalseForInvalidUsername() { + boolean userFound = userService.exists("missinguser"); Mockito.verify(userRepository, VerificationModeFactory.times(1)).findByUsername(Mockito.anyString()); - assertThat(exists).isFalse(); + assertThat(userFound).isFalse(); } + @Test void getAllUsersReturnsAllExistingUsers() { User john = new User("John Doe", "johndoe", "dummypassword");