name: Run Tests

on: 
  pull_request:
    branches:
      - '**'
  push:
    branches:
      - 'main'

jobs:
  windows-build-and-run:
    name: Run Tests on Windows 
    runs-on: windows-2022

    env:
      IsRunningOnGitHubActions: 'true'

    steps:
    - uses: actions/checkout@v4

    - name: 'WireMock.Net.Tests'
      run: dotnet test './test/WireMock.Net.Tests/WireMock.Net.Tests.csproj' -c Release --framework net8.0

    - name: 'WireMock.Net.TUnitTests'
      run: dotnet test './test/WireMock.Net.TUnitTests/WireMock.Net.TUnitTests.csproj' -c Release --framework net8.0

    - name: 'WireMock.Net.Middleware.Tests'
      run: dotnet test './test/WireMock.Net.Middleware.Tests/WireMock.Net.Middleware.Tests.csproj' -c Release --framework net8.0

  linux-build-and-run:
    name: Run Tests on Linux
    runs-on: ubuntu-latest

    env:
        IsRunningOnGitHubActions: 'true'

    steps:
    - uses: actions/checkout@v4

    - name: Setup .NET 8
      uses: actions/setup-dotnet@v4
      with:
        dotnet-version: '8.0.x'

    - name: 'WireMock.Net.Tests'
      run: dotnet test './test/WireMock.Net.Tests/WireMock.Net.Tests.csproj' -c Release --framework net8.0

    - name: 'WireMock.Net.TUnitTests'
      run: dotnet test './test/WireMock.Net.TUnitTests/WireMock.Net.TUnitTests.csproj' -c Release --framework net8.0

    - name: 'WireMock.Net.Middleware.Tests'
      run: dotnet test './test/WireMock.Net.Middleware.Tests/WireMock.Net.Middleware.Tests.csproj' -c Release --framework net8.0

    - name: Install .NET Aspire workload
      run: dotnet workload install aspire

    - name: 'WireMock.Net.Aspire.Tests'
      run: dotnet test './test/WireMock.Net.Aspire.Tests/WireMock.Net.Aspire.Tests.csproj' -c Release