name: Test PR

on:
  pull_request:
    branches:
      - main

concurrency:
  group: ${{ github.workflow }}-${{ github.head_ref }}
  cancel-in-progress: true


env:
  BW_ACCOUNT_ID: ${{ secrets.BW_ACCOUNT_ID }}
  BW_PASSWORD: ${{ secrets.BW_PASSWORD }}
  BW_USERNAME: ${{ secrets.BW_USERNAME }}
  BW_CLIENT_ID: ${{ secrets.BW_CLIENT_ID }}
  BW_CLIENT_SECRET: ${{ secrets.BW_CLIENT_SECRET }}
  BW_VOICE_APPLICATION_ID: ${{ secrets.BW_VOICE_APPLICATION_ID }}
  BW_MESSAGING_APPLICATION_ID: ${{ secrets.BW_MESSAGING_APPLICATION_ID }}
  BW_NUMBER: ${{ secrets.BW_NUMBER }}
  USER_NUMBER: ${{ secrets.USER_NUMBER }}
  BASE_CALLBACK_URL: ${{ secrets.BASE_CALLBACK_URL }}
  BW_USERNAME_FORBIDDEN: ${{ secrets.BW_USERNAME_FORBIDDEN }}
  BW_PASSWORD_FORBIDDEN: ${{ secrets.BW_PASSWORD_FORBIDDEN }}
  MANTECA_IDLE_NUMBER: ${{ secrets.MANTECA_IDLE_NUMBER }}
  MANTECA_ACTIVE_NUMBER: ${{ secrets.MANTECA_ACTIVE_NUMBER }}
  MANTECA_APPLICATION_ID: ${{ secrets.MANTECA_APPLICATION_ID }}
  MANTECA_BASE_URL: ${{ secrets.MANTECA_BASE_URL }}
  ATT_NUMBER: ${{ secrets.ATT_NUMBER }}
  T_MOBILE_NUMBER: ${{ secrets.T_MOBILE_NUMBER }}
  VZW_NUMBER: ${{ secrets.VZW_NUMBER }}

jobs:
  test:
    name: Test PR
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [windows-2022, windows-2025, ubuntu-22.04, ubuntu-24.04]
        java-version: ["11", "17", "21"]
        distribution: ["zulu", "temurin"]
      fail-fast: false
    steps:
      - name: Checkout
        uses: actions/checkout@v5

      - name: Set up JDK
        uses: actions/setup-java@v5
        with:
          distribution: ${{ matrix.distribution }}
          java-version: ${{ matrix.java-version }}

      - name: Build Package and Test
        env:
          JAVA_VERSION: ${{ matrix.java-version }}
          RUNNER_OS: ${{ matrix.os }}
          OPERATING_SYSTEM: ${{ matrix.os }}
          DISTRIBUTION: ${{ matrix.distribution }}
        run: |
          mvn -B package --file pom.xml -DskipTests
          npm install -g @stoplight/prism-cli
          prism mock ./bandwidth.yml & (sleep 4; mvn test -Punit-tests)
        shell: bash
