diff --git a/.github/workflows/administration-service.yml b/.github/workflows/administration-service.yml
index 046e019716..06a04535da 100644
--- a/.github/workflows/administration-service.yml
+++ b/.github/workflows/administration-service.yml
@@ -53,7 +53,7 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Login to DockerHub
if: github.event_name != 'pull_request'
diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
index f2bf872d56..dbe9784a51 100644
--- a/.github/workflows/codeql.yml
+++ b/.github/workflows/codeql.yml
@@ -69,11 +69,11 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
- uses: github/codeql-action/init@f779452ac5af1c261dce0346a8f964149f49322b # v2.227
+ uses: github/codeql-action/init@ea9e4e37992a54ee68a9622e985e60c8e8f12d9f # v2.227
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
@@ -87,7 +87,7 @@ jobs:
# Automates dependency installation for Python, Ruby, and JavaScript, optimizing the CodeQL analysis setup.
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
- uses: github/codeql-action/autobuild@f779452ac5af1c261dce0346a8f964149f49322b # v2.227
+ uses: github/codeql-action/autobuild@ea9e4e37992a54ee68a9622e985e60c8e8f12d9f # v2.227
# âšī¸ Command-line programs to run using the OS shell.
# đ See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
@@ -100,6 +100,6 @@ jobs:
# ./location_of_script_within_repo/buildscript.sh
- name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@f779452ac5af1c261dce0346a8f964149f49322b # v2.227
+ uses: github/codeql-action/analyze@ea9e4e37992a54ee68a9622e985e60c8e8f12d9f # v2.227
with:
category: "/language:${{matrix.language}}"
diff --git a/.github/workflows/dependencies.yaml b/.github/workflows/dependencies.yaml
index c4ddd4c62f..2990e565ef 100644
--- a/.github/workflows/dependencies.yaml
+++ b/.github/workflows/dependencies.yaml
@@ -22,8 +22,22 @@ name: Check Dependencies
on:
push:
branches: [main]
+ paths:
+ # all csproj files which include the external packages
+ - '**.csproj'
+ # dependencies file
+ - 'DEPENDENCIES'
+ # workflow file
+ - '.github/workflows/dependencies.yaml'
pull_request:
types: [opened, synchronize, reopened]
+ paths:
+ # all csproj files which include the external packages
+ - '**.csproj'
+ # dependencies file
+ - 'DEPENDENCIES'
+ # workflow file
+ - '.github/workflows/dependencies.yaml'
workflow_dispatch:
jobs:
@@ -38,20 +52,20 @@ jobs:
steps:
- name: Set up JDK 17
- uses: actions/setup-java@b36c23c0d998641eff861008f374ee103c25ac73 # v4.4.0
+ uses: actions/setup-java@8df1039502a15bceb9433410b1a100fbe190c53b # v4.5.0
with:
distribution: 'temurin'
java-version: '17'
- name: Setup .NET Core SDK ${{ matrix.dotnet-version }}
- uses: actions/setup-dotnet@6bd8b7f7774af54e05809fcc5431931b3eb1ddee # v4.0.1
+ uses: actions/setup-dotnet@3e891b0cb619bf60e2c25674b222b8940e2c1c25 # v4.1.0
with:
dotnet-version: ${{ matrix.dotnet-version }}
# change to preview .NET 9 until fix for https://github.com/NuGet/Home/issues/12954 gets released for .NET 8
dotnet-quality: 'preview'
- name: Checkout repository
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Install dependencies
run: dotnet restore src
diff --git a/.github/workflows/iam-seeding.yml b/.github/workflows/iam-seeding.yml
index 8fe8314c85..a72f354b74 100644
--- a/.github/workflows/iam-seeding.yml
+++ b/.github/workflows/iam-seeding.yml
@@ -46,7 +46,7 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Login to DockerHub
if: github.event_name != 'pull_request'
diff --git a/.github/workflows/kics.yml b/.github/workflows/kics.yml
index 84c40f3d6d..dd6127c3b2 100644
--- a/.github/workflows/kics.yml
+++ b/.github/workflows/kics.yml
@@ -42,7 +42,7 @@ jobs:
security-events: write
steps:
- - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
+ - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: KICS scan
uses: checkmarx/kics-github-action@94469746ec2c43de89a42fb9d2a80070f5d25b16 # v2.1.3
@@ -69,7 +69,7 @@ jobs:
# Upload findings to GitHub Advanced Security Dashboard
- name: Upload SARIF file for GitHub Advanced Security Dashboard
if: always()
- uses: github/codeql-action/upload-sarif@f779452ac5af1c261dce0346a8f964149f49322b # v3.26.13
+ uses: github/codeql-action/upload-sarif@ea9e4e37992a54ee68a9622e985e60c8e8f12d9f # v3.27.4
with:
sarif_file: kicsResults/results.sarif
diff --git a/.github/workflows/maintenance-service.yml b/.github/workflows/maintenance-service.yml
index aa3a53fd66..2a66a7c7fc 100644
--- a/.github/workflows/maintenance-service.yml
+++ b/.github/workflows/maintenance-service.yml
@@ -47,7 +47,7 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Login to DockerHub
if: github.event_name != 'pull_request'
diff --git a/.github/workflows/marketplace-app-service.yml b/.github/workflows/marketplace-app-service.yml
index e8a267da76..2df831ad53 100644
--- a/.github/workflows/marketplace-app-service.yml
+++ b/.github/workflows/marketplace-app-service.yml
@@ -53,7 +53,7 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Login to DockerHub
if: github.event_name != 'pull_request'
diff --git a/.github/workflows/notification-service.yml b/.github/workflows/notification-service.yml
index 8393e513ff..09eecd2c87 100644
--- a/.github/workflows/notification-service.yml
+++ b/.github/workflows/notification-service.yml
@@ -50,7 +50,7 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Login to DockerHub
if: github.event_name != 'pull_request'
diff --git a/.github/workflows/nuget-package-push.yml b/.github/workflows/nuget-package-push.yml
index e7bc1764b8..a96866fb7d 100644
--- a/.github/workflows/nuget-package-push.yml
+++ b/.github/workflows/nuget-package-push.yml
@@ -30,10 +30,10 @@ jobs:
dotnet-version: ['8.0']
steps:
- name: Checkout code
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Setup .NET Core SDK ${{ matrix.dotnet-version }}
- uses: actions/setup-dotnet@6bd8b7f7774af54e05809fcc5431931b3eb1ddee # v4.0.1
+ uses: actions/setup-dotnet@3e891b0cb619bf60e2c25674b222b8940e2c1c25 # v4.1.0
with:
dotnet-version: ${{ matrix.dotnet-version }}
diff --git a/.github/workflows/portal-migrations.yml b/.github/workflows/portal-migrations.yml
index b1055818ea..fe2e384147 100644
--- a/.github/workflows/portal-migrations.yml
+++ b/.github/workflows/portal-migrations.yml
@@ -47,7 +47,7 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Login to DockerHub
if: github.event_name != 'pull_request'
diff --git a/.github/workflows/pre-checks.yml b/.github/workflows/pre-checks.yml
index c31bbe4f0b..4bc26754f4 100644
--- a/.github/workflows/pre-checks.yml
+++ b/.github/workflows/pre-checks.yml
@@ -41,7 +41,7 @@ jobs:
framework: ${{ steps.changes.outputs.framework }}
steps:
- name: Checkout code
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- uses: dorny/paths-filter@v3
id: changes
with:
@@ -58,9 +58,9 @@ jobs:
steps:
- name: Checkout code
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Setup .NET Core SDK ${{ matrix.dotnet-version }}
- uses: actions/setup-dotnet@6bd8b7f7774af54e05809fcc5431931b3eb1ddee # v4.0.1
+ uses: actions/setup-dotnet@3e891b0cb619bf60e2c25674b222b8940e2c1c25 # v4.1.0
with:
dotnet-version: ${{ matrix.dotnet-version }}
- name: Install dotnet-format
@@ -90,7 +90,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 0
- name: Check Package Versions
diff --git a/.github/workflows/processes-worker.yml b/.github/workflows/processes-worker.yml
index f5c586c520..d03c0eb71a 100644
--- a/.github/workflows/processes-worker.yml
+++ b/.github/workflows/processes-worker.yml
@@ -54,7 +54,7 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Login to DockerHub
if: github.event_name != 'pull_request'
diff --git a/.github/workflows/provisioning-migrations.yml b/.github/workflows/provisioning-migrations.yml
index 46e07add56..a83726a9af 100644
--- a/.github/workflows/provisioning-migrations.yml
+++ b/.github/workflows/provisioning-migrations.yml
@@ -47,7 +47,7 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Login to DockerHub
if: github.event_name != 'pull_request'
diff --git a/.github/workflows/registration-service.yml b/.github/workflows/registration-service.yml
index 5e94292e6f..0a307a6bc5 100644
--- a/.github/workflows/registration-service.yml
+++ b/.github/workflows/registration-service.yml
@@ -52,7 +52,7 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Login to DockerHub
if: github.event_name != 'pull_request'
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index e6b108e234..692324bd5b 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -68,7 +68,7 @@ jobs:
dockernotice: ./docker/notice-iam-seeding.md
steps:
- name: Checkout
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 0
@@ -126,7 +126,7 @@ jobs:
run: echo "RELEASE_VERSION=${{ github.ref_name }}" >> $GITHUB_ENV
- name: Checkout repository
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Check for hotfix version
id: hf-check
diff --git a/.github/workflows/release_candidate.yml b/.github/workflows/release_candidate.yml
index 95003c4dcb..e5e634e188 100644
--- a/.github/workflows/release_candidate.yml
+++ b/.github/workflows/release_candidate.yml
@@ -68,7 +68,7 @@ jobs:
dockernotice: ./docker/notice-iam-seeding.md
steps:
- name: Checkout
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 0
diff --git a/.github/workflows/release_iam-seeding.yml b/.github/workflows/release_iam-seeding.yml
index f23c7855da..eff5d3978f 100644
--- a/.github/workflows/release_iam-seeding.yml
+++ b/.github/workflows/release_iam-seeding.yml
@@ -37,7 +37,7 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Login to DockerHub
if: github.event_name != 'pull_request'
diff --git a/.github/workflows/release_release_candidate.yml b/.github/workflows/release_release_candidate.yml
index 248b5fc76c..5832c0e7d0 100644
--- a/.github/workflows/release_release_candidate.yml
+++ b/.github/workflows/release_release_candidate.yml
@@ -67,7 +67,7 @@ jobs:
dockernotice: ./docker/notice-iam-seeding.md
steps:
- name: Checkout
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 0
diff --git a/.github/workflows/services-service.yml b/.github/workflows/services-service.yml
index 26669fa604..e3ca484e6e 100644
--- a/.github/workflows/services-service.yml
+++ b/.github/workflows/services-service.yml
@@ -52,7 +52,7 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Login to DockerHub
if: github.event_name != 'pull_request'
diff --git a/.github/workflows/sonarcloud.yml b/.github/workflows/sonarcloud.yml
index 7270735c48..57f8ad626d 100644
--- a/.github/workflows/sonarcloud.yml
+++ b/.github/workflows/sonarcloud.yml
@@ -42,11 +42,11 @@ jobs:
steps:
- name: Set up JDK 17
- uses: actions/setup-java@b36c23c0d998641eff861008f374ee103c25ac73 # v4.4.0
+ uses: actions/setup-java@8df1039502a15bceb9433410b1a100fbe190c53b # v4.5.0
with:
distribution: 'temurin'
java-version: '17'
- - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
+ - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
- name: Cache SonarCloud packages
diff --git a/.github/workflows/test-automation.yml b/.github/workflows/test-automation.yml
index 8ff6a5d5eb..7cfe1f1644 100644
--- a/.github/workflows/test-automation.yml
+++ b/.github/workflows/test-automation.yml
@@ -49,7 +49,7 @@ jobs:
steps:
- name: Checkout
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Setup JQ
run:
@@ -69,7 +69,7 @@ jobs:
ReportPortal.config.json > temp.json
mv temp.json ReportPortal.config.json
- name: Setup .NET Core SDK ${{ matrix.dotnet-version }}
- uses: actions/setup-dotnet@6bd8b7f7774af54e05809fcc5431931b3eb1ddee # v4.0.1
+ uses: actions/setup-dotnet@3e891b0cb619bf60e2c25674b222b8940e2c1c25 # v4.1.0
with:
dotnet-version: ${{ matrix.dotnet-version }}
- name: Install dependencies
diff --git a/.github/workflows/trivy-main.yml b/.github/workflows/trivy-main.yml
index 32fcfd43de..33f700a0b0 100644
--- a/.github/workflows/trivy-main.yml
+++ b/.github/workflows/trivy-main.yml
@@ -51,7 +51,7 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Run Trivy vulnerability scanner in repo mode
uses: aquasecurity/trivy-action@915b19bbe73b92a6cf82a1bc12b087c9a19a5fe2 # v0.28.0
@@ -68,7 +68,7 @@ jobs:
limit-severities-for-sarif: true
- name: Upload Trivy scan results to GitHub Security tab
- uses: github/codeql-action/upload-sarif@f779452ac5af1c261dce0346a8f964149f49322b # v3.26.13
+ uses: github/codeql-action/upload-sarif@ea9e4e37992a54ee68a9622e985e60c8e8f12d9f # v3.27.4
if: always()
with:
sarif_file: "trivy-results1.sarif"
@@ -82,7 +82,7 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
# It's also possible to scan your private registry with Trivy's built-in image scan.
# All you have to do is set ENV vars.
@@ -105,7 +105,7 @@ jobs:
- name: Upload Trivy scan results to GitHub Security tab
if: always()
- uses: github/codeql-action/upload-sarif@f779452ac5af1c261dce0346a8f964149f49322b # v3.26.13
+ uses: github/codeql-action/upload-sarif@ea9e4e37992a54ee68a9622e985e60c8e8f12d9f # v3.27.4
with:
sarif_file: "trivy-results3.sarif"
@@ -118,7 +118,7 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
# It's also possible to scan your private registry with Trivy's built-in image scan.
# All you have to do is set ENV vars.
@@ -141,7 +141,7 @@ jobs:
- name: Upload Trivy scan results to GitHub Security tab
if: always()
- uses: github/codeql-action/upload-sarif@f779452ac5af1c261dce0346a8f964149f49322b # v3.26.13
+ uses: github/codeql-action/upload-sarif@ea9e4e37992a54ee68a9622e985e60c8e8f12d9f # v3.27.4
with:
sarif_file: "trivy-results4.sarif"
@@ -154,7 +154,7 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
# It's also possible to scan your private registry with Trivy's built-in image scan.
# All you have to do is set ENV vars.
@@ -177,7 +177,7 @@ jobs:
- name: Upload Trivy scan results to GitHub Security tab
if: always()
- uses: github/codeql-action/upload-sarif@f779452ac5af1c261dce0346a8f964149f49322b # v3.26.13
+ uses: github/codeql-action/upload-sarif@ea9e4e37992a54ee68a9622e985e60c8e8f12d9f # v3.27.4
with:
sarif_file: "trivy-results5.sarif"
@@ -190,7 +190,7 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
# It's also possible to scan your private registry with Trivy's built-in image scan.
# All you have to do is set ENV vars.
@@ -213,7 +213,7 @@ jobs:
- name: Upload Trivy scan results to GitHub Security tab
if: always()
- uses: github/codeql-action/upload-sarif@f779452ac5af1c261dce0346a8f964149f49322b # v3.26.13
+ uses: github/codeql-action/upload-sarif@ea9e4e37992a54ee68a9622e985e60c8e8f12d9f # v3.27.4
with:
sarif_file: "trivy-results6.sarif"
@@ -226,7 +226,7 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
# It's also possible to scan your private registry with Trivy's built-in image scan.
# All you have to do is set ENV vars.
@@ -249,7 +249,7 @@ jobs:
- name: Upload Trivy scan results to GitHub Security tab
if: always()
- uses: github/codeql-action/upload-sarif@f779452ac5af1c261dce0346a8f964149f49322b # v3.26.13
+ uses: github/codeql-action/upload-sarif@ea9e4e37992a54ee68a9622e985e60c8e8f12d9f # v3.27.4
with:
sarif_file: "trivy-results7.sarif"
@@ -262,7 +262,7 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
# It's also possible to scan your private registry with Trivy's built-in image scan.
# All you have to do is set ENV vars.
@@ -285,7 +285,7 @@ jobs:
- name: Upload Trivy scan results to GitHub Security tab
if: always()
- uses: github/codeql-action/upload-sarif@f779452ac5af1c261dce0346a8f964149f49322b # v3.26.13
+ uses: github/codeql-action/upload-sarif@ea9e4e37992a54ee68a9622e985e60c8e8f12d9f # v3.27.4
with:
sarif_file: "trivy-results8.sarif"
@@ -298,7 +298,7 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
# It's also possible to scan your private registry with Trivy's built-in image scan.
# All you have to do is set ENV vars.
@@ -321,7 +321,7 @@ jobs:
- name: Upload Trivy scan results to GitHub Security tab
if: always()
- uses: github/codeql-action/upload-sarif@f779452ac5af1c261dce0346a8f964149f49322b # v3.26.13
+ uses: github/codeql-action/upload-sarif@ea9e4e37992a54ee68a9622e985e60c8e8f12d9f # v3.27.4
with:
sarif_file: "trivy-results9.sarif"
@@ -334,7 +334,7 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
# It's also possible to scan your private registry with Trivy's built-in image scan.
# All you have to do is set ENV vars.
@@ -357,7 +357,7 @@ jobs:
- name: Upload Trivy scan results to GitHub Security tab
if: always()
- uses: github/codeql-action/upload-sarif@f779452ac5af1c261dce0346a8f964149f49322b # v3.26.13
+ uses: github/codeql-action/upload-sarif@ea9e4e37992a54ee68a9622e985e60c8e8f12d9f # v3.27.4
with:
sarif_file: "trivy-results10.sarif"
@@ -370,7 +370,7 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
# It's also possible to scan your private registry with Trivy's built-in image scan.
# All you have to do is set ENV vars.
@@ -392,7 +392,7 @@ jobs:
limit-severities-for-sarif: true
- name: Upload Trivy scan results to GitHub Security tab
if: always()
- uses: github/codeql-action/upload-sarif@f779452ac5af1c261dce0346a8f964149f49322b # v3.26.13
+ uses: github/codeql-action/upload-sarif@ea9e4e37992a54ee68a9622e985e60c8e8f12d9f # v3.27.4
with:
sarif_file: "trivy-results11.sarif"
@@ -405,7 +405,7 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
# It's also possible to scan your private registry with Trivy's built-in image scan.
# All you have to do is set ENV vars.
@@ -428,6 +428,6 @@ jobs:
- name: Upload Trivy scan results to GitHub Security tab
if: always()
- uses: github/codeql-action/upload-sarif@f779452ac5af1c261dce0346a8f964149f49322b # v3.26.13
+ uses: github/codeql-action/upload-sarif@ea9e4e37992a54ee68a9622e985e60c8e8f12d9f # v3.27.4
with:
sarif_file: "trivy-results12.sarif"
diff --git a/.github/workflows/trivy.yml b/.github/workflows/trivy.yml
index 440da57e6d..6cdf91eff2 100644
--- a/.github/workflows/trivy.yml
+++ b/.github/workflows/trivy.yml
@@ -51,7 +51,7 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Run Trivy vulnerability scanner in repo mode
uses: aquasecurity/trivy-action@915b19bbe73b92a6cf82a1bc12b087c9a19a5fe2 # v0.28.0
@@ -68,7 +68,7 @@ jobs:
limit-severities-for-sarif: true
- name: Upload Trivy scan results to GitHub Security tab
- uses: github/codeql-action/upload-sarif@f779452ac5af1c261dce0346a8f964149f49322b # v3.26.13
+ uses: github/codeql-action/upload-sarif@ea9e4e37992a54ee68a9622e985e60c8e8f12d9f # v3.27.4
if: always()
with:
sarif_file: "trivy-results1.sarif"
@@ -82,7 +82,7 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
# It's also possible to scan your private registry with Trivy's built-in image scan.
# All you have to do is set ENV vars.
@@ -105,7 +105,7 @@ jobs:
- name: Upload Trivy scan results to GitHub Security tab
if: always()
- uses: github/codeql-action/upload-sarif@f779452ac5af1c261dce0346a8f964149f49322b # v3.26.13
+ uses: github/codeql-action/upload-sarif@ea9e4e37992a54ee68a9622e985e60c8e8f12d9f # v3.27.4
with:
sarif_file: "trivy-results3.sarif"
@@ -118,7 +118,7 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
# It's also possible to scan your private registry with Trivy's built-in image scan.
# All you have to do is set ENV vars.
@@ -141,7 +141,7 @@ jobs:
- name: Upload Trivy scan results to GitHub Security tab
if: always()
- uses: github/codeql-action/upload-sarif@f779452ac5af1c261dce0346a8f964149f49322b # v3.26.13
+ uses: github/codeql-action/upload-sarif@ea9e4e37992a54ee68a9622e985e60c8e8f12d9f # v3.27.4
with:
sarif_file: "trivy-results4.sarif"
@@ -154,7 +154,7 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
# It's also possible to scan your private registry with Trivy's built-in image scan.
# All you have to do is set ENV vars.
@@ -177,7 +177,7 @@ jobs:
- name: Upload Trivy scan results to GitHub Security tab
if: always()
- uses: github/codeql-action/upload-sarif@f779452ac5af1c261dce0346a8f964149f49322b # v3.26.13
+ uses: github/codeql-action/upload-sarif@ea9e4e37992a54ee68a9622e985e60c8e8f12d9f # v3.27.4
with:
sarif_file: "trivy-results5.sarif"
@@ -190,7 +190,7 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
# It's also possible to scan your private registry with Trivy's built-in image scan.
# All you have to do is set ENV vars.
@@ -213,7 +213,7 @@ jobs:
- name: Upload Trivy scan results to GitHub Security tab
if: always()
- uses: github/codeql-action/upload-sarif@f779452ac5af1c261dce0346a8f964149f49322b # v3.26.13
+ uses: github/codeql-action/upload-sarif@ea9e4e37992a54ee68a9622e985e60c8e8f12d9f # v3.27.4
with:
sarif_file: "trivy-results6.sarif"
@@ -226,7 +226,7 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
# It's also possible to scan your private registry with Trivy's built-in image scan.
# All you have to do is set ENV vars.
@@ -249,7 +249,7 @@ jobs:
- name: Upload Trivy scan results to GitHub Security tab
if: always()
- uses: github/codeql-action/upload-sarif@f779452ac5af1c261dce0346a8f964149f49322b # v3.26.13
+ uses: github/codeql-action/upload-sarif@ea9e4e37992a54ee68a9622e985e60c8e8f12d9f # v3.27.4
with:
sarif_file: "trivy-results7.sarif"
@@ -262,7 +262,7 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
# It's also possible to scan your private registry with Trivy's built-in image scan.
# All you have to do is set ENV vars.
@@ -285,7 +285,7 @@ jobs:
- name: Upload Trivy scan results to GitHub Security tab
if: always()
- uses: github/codeql-action/upload-sarif@f779452ac5af1c261dce0346a8f964149f49322b # v3.26.13
+ uses: github/codeql-action/upload-sarif@ea9e4e37992a54ee68a9622e985e60c8e8f12d9f # v3.27.4
with:
sarif_file: "trivy-results8.sarif"
@@ -298,7 +298,7 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
# It's also possible to scan your private registry with Trivy's built-in image scan.
# All you have to do is set ENV vars.
@@ -321,7 +321,7 @@ jobs:
- name: Upload Trivy scan results to GitHub Security tab
if: always()
- uses: github/codeql-action/upload-sarif@f779452ac5af1c261dce0346a8f964149f49322b # v3.26.13
+ uses: github/codeql-action/upload-sarif@ea9e4e37992a54ee68a9622e985e60c8e8f12d9f # v3.27.4
with:
sarif_file: "trivy-results9.sarif"
@@ -334,7 +334,7 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
# It's also possible to scan your private registry with Trivy's built-in image scan.
# All you have to do is set ENV vars.
@@ -357,7 +357,7 @@ jobs:
- name: Upload Trivy scan results to GitHub Security tab
if: always()
- uses: github/codeql-action/upload-sarif@f779452ac5af1c261dce0346a8f964149f49322b # v3.26.13
+ uses: github/codeql-action/upload-sarif@ea9e4e37992a54ee68a9622e985e60c8e8f12d9f # v3.27.4
with:
sarif_file: "trivy-results10.sarif"
@@ -370,7 +370,7 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
# It's also possible to scan your private registry with Trivy's built-in image scan.
# All you have to do is set ENV vars.
@@ -393,7 +393,7 @@ jobs:
- name: Upload Trivy scan results to GitHub Security tab
if: always()
- uses: github/codeql-action/upload-sarif@f779452ac5af1c261dce0346a8f964149f49322b # v3.26.13
+ uses: github/codeql-action/upload-sarif@ea9e4e37992a54ee68a9622e985e60c8e8f12d9f # v3.27.4
with:
sarif_file: "trivy-results11.sarif"
@@ -406,7 +406,7 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
# It's also possible to scan your private registry with Trivy's built-in image scan.
# All you have to do is set ENV vars.
@@ -429,6 +429,6 @@ jobs:
- name: Upload Trivy scan results to GitHub Security tab
if: always()
- uses: github/codeql-action/upload-sarif@f779452ac5af1c261dce0346a8f964149f49322b # v3.26.13
+ uses: github/codeql-action/upload-sarif@ea9e4e37992a54ee68a9622e985e60c8e8f12d9f # v3.27.4
with:
sarif_file: "trivy-results12.sarif"
diff --git a/.github/workflows/trufflehog.yml b/.github/workflows/trufflehog.yml
index 05e57ad09e..1c8d30ea2d 100644
--- a/.github/workflows/trufflehog.yml
+++ b/.github/workflows/trufflehog.yml
@@ -42,13 +42,13 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 0 # Ensure full clone for pull request workflows
- name: TruffleHog OSS
id: trufflehog
- uses: trufflesecurity/trufflehog@b66c1670749c06f8d18f96bcbc5a6b80f7a7108e #v3.82.11
+ uses: trufflesecurity/trufflehog@af3e68261fa87568031f65161577cc2ebe1ca669 #v3.83.7
continue-on-error: true
with:
path: ./ # Scan the entire repository
diff --git a/DEPENDENCIES b/DEPENDENCIES
index 2742e2eece..d57f61577f 100644
--- a/DEPENDENCIES
+++ b/DEPENDENCIES
@@ -6,14 +6,14 @@ nuget/nuget/-/Castle.Core/5.1.1, Apache-2.0, approved, #13966
nuget/nuget/-/EFCore.NamingConventions/8.0.3, Apache-2.0, approved, #13983
nuget/nuget/-/FakeItEasy/8.3.0, MIT, approved, #16328
nuget/nuget/-/Fare/2.1.1, MIT, approved, clearlydefined
-nuget/nuget/-/FluentAssertions/6.12.1, MIT AND Apache-2.0 AND BSD-3-Clause AND CC-BY-3.0-US AND (GPL-2.0-only OR MIT) AND OFL-1.1 AND WTFPL, approved, #13976
+nuget/nuget/-/FluentAssertions/6.12.2, MIT AND Apache-2.0 AND BSD-3-Clause AND CC-BY-3.0-US AND (GPL-2.0-only OR MIT) AND OFL-1.1 AND WTFPL, approved, #13976
nuget/nuget/-/Flurl.Http.Signed/4.0.2, MIT, approved, #16447
nuget/nuget/-/Flurl.Signed/4.0.0, MIT, approved, #16448
nuget/nuget/-/HtmlAgilityPack/1.11.67, MIT, approved, #9293
nuget/nuget/-/Humanizer.Core/2.14.1, MIT, approved, #10060
-nuget/nuget/-/Json.More.Net/2.0.0, MIT AND OFL-1.1 AND CC-BY-SA-4.0, approved, #15173
-nuget/nuget/-/JsonPointer.Net/4.0.0, MIT, approved, clearlydefined
-nuget/nuget/-/JsonSchema.Net/6.1.2, MIT AND OFL-1.1 AND CC-BY-SA-4.0, approved, #14591
+nuget/nuget/-/Json.More.Net/2.0.1.2, MIT AND OFL-1.1 AND CC-BY-SA-4.0, approved, #15173
+nuget/nuget/-/JsonPointer.Net/5.0.0, MIT AND OFL-1.1 AND CC-BY-SA-4.0, approved, #15172
+nuget/nuget/-/JsonSchema.Net/7.2.3, MIT AND CC-BY-SA-4.0 AND OFL-1.1, approved, #16329
nuget/nuget/-/Laraue.EfCoreTriggers.Common/8.1.2, MIT, approved, #16234
nuget/nuget/-/Laraue.EfCoreTriggers.PostgreSql/8.1.2, MIT, approved, #16240
nuget/nuget/-/MailKit/4.8.0, MIT AND LicenseRef-scancode-ietf AND LicenseRef-scancode-ietf-trust AND (BSD-3-Clause AND LicenseRef-scancode-ietf-trust), approved, #16444
@@ -25,8 +25,8 @@ nuget/nuget/-/NJsonSchema/11.0.2, MIT, approved, #15632
nuget/nuget/-/Namotion.Reflection/3.1.1, MIT, approved, #15634
nuget/nuget/-/Newtonsoft.Json/13.0.1, MIT AND BSD-3-Clause, approved, #3266
nuget/nuget/-/Newtonsoft.Json/13.0.3, MIT AND BSD-3-Clause, approved, #3266
-nuget/nuget/-/Npgsql.EntityFrameworkCore.PostgreSQL/8.0.10, PostgreSQL AND MIT, approved, #13972
-nuget/nuget/-/Npgsql/8.0.5, PostgreSQL, approved, #13963
+nuget/nuget/-/Npgsql.EntityFrameworkCore.PostgreSQL/8.0.11, PostgreSQL AND MIT, approved, #13972
+nuget/nuget/-/Npgsql/8.0.6, PostgreSQL, approved, #13963
nuget/nuget/-/PasswordGenerator/2.1.0, MIT, approved, #3192
nuget/nuget/-/ReportPortal.Client/3.9.0, Apache-2.0, approved, #16853
nuget/nuget/-/ReportPortal.Shared/3.9.0, Apache-2.0, approved, #16854
@@ -35,19 +35,20 @@ nuget/nuget/-/RestAssured.Net/4.4.0, Apache-2.0, approved, #16855
nuget/nuget/-/SSH.NET/2023.0.0, MIT AND (MIT AND MS-PL) AND ISC, approved, #13965
nuget/nuget/-/Serilog.AspNetCore/8.0.3, Apache-2.0 AND MIT, approved, #13967
nuget/nuget/-/Serilog.Enrichers.CorrelationId/3.0.1, MIT, approved, clearlydefined
-nuget/nuget/-/Serilog.Enrichers.Environment/2.3.0, Apache-2.0, approved, #13959
-nuget/nuget/-/Serilog.Enrichers.Process/2.0.2, Apache-2.0, approved, clearlydefined
+nuget/nuget/-/Serilog.Enrichers.Environment/3.0.1, Apache-2.0, approved, #17052
+nuget/nuget/-/Serilog.Enrichers.Process/3.0.0, Apache-2.0, approved, #17053
nuget/nuget/-/Serilog.Enrichers.Sensitive/1.7.3, MIT, approved, clearlydefined
-nuget/nuget/-/Serilog.Enrichers.Thread/3.1.0, Apache-2.0, approved, clearlydefined
+nuget/nuget/-/Serilog.Enrichers.Thread/4.0.0, Apache-2.0, approved, #17050
nuget/nuget/-/Serilog.Extensions.Hosting/8.0.0, Apache-2.0, approved, #13962
nuget/nuget/-/Serilog.Extensions.Logging/8.0.0, Apache-2.0, approved, #13985
nuget/nuget/-/Serilog.Formatting.Compact/2.0.0, Apache-2.0, approved, #13981
nuget/nuget/-/Serilog.Settings.Configuration/8.0.4, Apache-2.0, approved, #13988
nuget/nuget/-/Serilog.Sinks.Console/5.0.0, Apache-2.0, approved, #13980
-nuget/nuget/-/Serilog.Sinks.Console/5.0.1, Apache-2.0, approved, #13980
+nuget/nuget/-/Serilog.Sinks.Console/6.0.0, Apache-2.0, approved, #17054
nuget/nuget/-/Serilog.Sinks.Debug/2.0.0, Apache-2.0, approved, clearlydefined
nuget/nuget/-/Serilog.Sinks.File/5.0.0, Apache-2.0, approved, #11116
nuget/nuget/-/Serilog/3.1.1, Apache-2.0, approved, #13978
+nuget/nuget/-/Serilog/4.1.0, Apache-2.0, approved, #17051
nuget/nuget/-/SharpZipLib/1.4.2, MIT AND GFDL-1.3-or-later AND (Apache-2.0 AND MIT) AND WTFPL AND bzip2-1.0.6 AND LicenseRef-Permissive-license-with-conditions AND LicenseRef-Permission-Notice, approved, #10058
nuget/nuget/-/SshNet.Security.Cryptography/1.3.0, MIT, approved, clearlydefined
nuget/nuget/-/Stubble.Core/1.10.8, MIT AND BSD-2-Clause, approved, #9297
@@ -56,15 +57,15 @@ nuget/nuget/-/Swashbuckle.AspNetCore.Swagger/6.9.0, MIT AND Apache-2.0, approved
nuget/nuget/-/Swashbuckle.AspNetCore.SwaggerGen/6.9.0, MIT AND Apache-2.0, approved, #16820
nuget/nuget/-/Swashbuckle.AspNetCore.SwaggerUI/6.9.0, MIT AND Apache-2.0, approved, #16818
nuget/nuget/-/Swashbuckle.AspNetCore/6.9.0, MIT AND Apache-2.0, approved, #16816
-nuget/nuget/-/Testcontainers.PostgreSql/3.10.0, MIT, approved, #16241
-nuget/nuget/-/Testcontainers/3.10.0, MIT, approved, #16236
-nuget/nuget/-/Xunit.Extensions.AssemblyFixture/2.4.1, MIT, approved, #3502
+nuget/nuget/-/Testcontainers.PostgreSql/4.0.0, MIT, approved, #17048
+nuget/nuget/-/Testcontainers/4.0.0, MIT, approved, #17049
+nuget/nuget/-/Xunit.Extensions.AssemblyFixture/2.6.0, MIT, approved, #17055
nuget/nuget/-/coverlet.collector/6.0.2, MIT, approved, #10075
nuget/nuget/-/xunit.abstractions/2.0.3, Apache-2.0, approved, clearlydefined
-nuget/nuget/-/xunit.analyzers/1.11.0, Apache-2.0 AND MIT, approved, #14197
-nuget/nuget/-/xunit.assert/2.7.0, Apache-2.0 AND MIT, approved, #13971
-nuget/nuget/-/xunit.core/2.7.0, Apache-2.0, approved, #13979
-nuget/nuget/-/xunit.extensibility.core/2.7.0, Apache-2.0 AND MIT, approved, #13974
-nuget/nuget/-/xunit.extensibility.execution/2.7.0, Apache-2.0, approved, #13977
-nuget/nuget/-/xunit.runner.visualstudio/2.5.7, Apache-2.0 AND MIT, approved, #10065
-nuget/nuget/-/xunit/2.7.0, Apache-2.0 AND MIT, approved, #13969
+nuget/nuget/-/xunit.analyzers/1.16.0, Apache-2.0 AND MIT, approved, #16332
+nuget/nuget/-/xunit.assert/2.9.2, Apache-2.0, approved, #16331
+nuget/nuget/-/xunit.core/2.9.2, Apache-2.0, approved, #16330
+nuget/nuget/-/xunit.extensibility.core/2.9.2, Apache-2.0 AND MIT, approved, #16334
+nuget/nuget/-/xunit.extensibility.execution/2.9.2, Apache-2.0 AND MIT, approved, #16333
+nuget/nuget/-/xunit.runner.visualstudio/2.8.2, Apache-2.0 AND MIT, approved, #15181
+nuget/nuget/-/xunit/2.9.2, Apache-2.0 AND MIT, approved, #16327
diff --git a/docs/api/apps-service.yaml b/docs/api/apps-service.yaml
index 1f07cee06b..f3f08e4eab 100644
--- a/docs/api/apps-service.yaml
+++ b/docs/api/apps-service.yaml
@@ -2168,7 +2168,7 @@ paths:
content:
application/json:
schema:
- $ref: '#/components/schemas/AppProviderSubscriptionDetailData'
+ $ref: '#/components/schemas/OfferProviderSubscriptionDetailData'
'403':
description: User's company does not provide the app.
content:
@@ -2828,44 +2828,6 @@ components:
description: the technicalUser Profile
additionalProperties: false
description: Response for the app creation
- AppProviderSubscriptionDetailData:
- type: object
- properties:
- id:
- type: string
- format: uuid
- offerSubscriptionStatus:
- $ref: '#/components/schemas/OfferSubscriptionStatusId'
- name:
- type: string
- nullable: true
- customer:
- type: string
- bpn:
- type: string
- nullable: true
- contact:
- type: array
- items:
- type: string
- technicalUserData:
- type: array
- items:
- $ref: '#/components/schemas/SubscriptionTechnicalUserData'
- connectorData:
- type: array
- items:
- $ref: '#/components/schemas/SubscriptionAssignedConnectorData'
- tenantUrl:
- type: string
- nullable: true
- appInstanceId:
- type: string
- processStepTypeId:
- $ref: '#/components/schemas/ProcessStepTypeId'
- externalService:
- $ref: '#/components/schemas/SubscriptionExternalServiceData'
- additionalProperties: false
AppRequestModel:
type: object
properties:
@@ -3435,6 +3397,45 @@ components:
message:
type: string
additionalProperties: false
+ OfferProviderSubscriptionDetailData:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ offerSubscriptionStatus:
+ $ref: '#/components/schemas/OfferSubscriptionStatusId'
+ name:
+ type: string
+ nullable: true
+ customer:
+ type: string
+ bpn:
+ type: string
+ nullable: true
+ contact:
+ type: array
+ items:
+ type: string
+ technicalUserData:
+ type: array
+ items:
+ $ref: '#/components/schemas/SubscriptionTechnicalUserData'
+ connectorData:
+ type: array
+ items:
+ $ref: '#/components/schemas/SubscriptionAssignedConnectorData'
+ tenantUrl:
+ type: string
+ nullable: true
+ appInstanceId:
+ type: string
+ nullable: true
+ processStepTypeId:
+ $ref: '#/components/schemas/ProcessStepTypeId'
+ externalService:
+ $ref: '#/components/schemas/SubscriptionExternalServiceData'
+ additionalProperties: false
OfferSorting:
enum:
- DateAsc
diff --git a/docs/api/services-service.yaml b/docs/api/services-service.yaml
index ffdcd6301a..23fb44d3df 100644
--- a/docs/api/services-service.yaml
+++ b/docs/api/services-service.yaml
@@ -2216,26 +2216,42 @@ components:
properties:
id:
type: string
+ description: Id of the Offer
format: uuid
offerSubscriptionStatus:
$ref: '#/components/schemas/OfferSubscriptionStatusId'
name:
type: string
+ description: Name of the Offer
nullable: true
customer:
type: string
+ description: Name of the company subscribing the offer
bpn:
type: string
+ description: 'When called from /provider bpn of the company subscribing the offer, otherwise the provider company''s bpn'
nullable: true
contact:
type: array
items:
type: string
+ description: 'When called from /provider the company admins of the subscribing company, otherwise the salesmanagers of the offer provider'
technicalUserData:
type: array
items:
$ref: '#/components/schemas/SubscriptionTechnicalUserData'
+ description: Information about the technical user
+ connectorData:
+ type: array
+ items:
+ $ref: '#/components/schemas/SubscriptionAssignedConnectorData'
+ description: ''
+ processStepTypeId:
+ $ref: '#/components/schemas/ProcessStepTypeId'
+ externalService:
+ $ref: '#/components/schemas/SubscriptionExternalServiceData'
additionalProperties: false
+ description: Detail data for a offer subscription
ServiceData:
type: object
properties:
@@ -2380,6 +2396,10 @@ components:
price:
type: string
description: Pricing information of the app.
+ providerUri:
+ type: string
+ description: Provider's homepage url or marketing url
+ nullable: true
offerSubscriptionDetailData:
type: array
items:
@@ -2766,6 +2786,25 @@ components:
status:
$ref: '#/components/schemas/OfferSubscriptionStatusId'
additionalProperties: false
+ SubscriptionExternalServiceData:
+ type: object
+ properties:
+ trusted_issuer:
+ type: string
+ participant_id:
+ type: string
+ nullable: true
+ iatp_id:
+ type: string
+ nullable: true
+ did_resolver:
+ type: string
+ decentralIdentityManagementAuthUrl:
+ type: string
+ decentralIdentityManagementServiceUrl:
+ type: string
+ nullable: true
+ additionalProperties: false
SubscriptionStatusSorting:
enum:
- CompanyNameAsc
diff --git a/src/Portal.Backend.sln b/src/Portal.Backend.sln
index 802022cfad..812fc38be1 100644
--- a/src/Portal.Backend.sln
+++ b/src/Portal.Backend.sln
@@ -1680,10 +1680,14 @@ Global
{D666EADA-770A-42FF-B891-5745F7A6BC2F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D666EADA-770A-42FF-B891-5745F7A6BC2F}.Release|x86.ActiveCfg = Release|Any CPU
{D666EADA-770A-42FF-B891-5745F7A6BC2F}.Release|x86.Build.0 = Release|Any CPU
+ {D666EADA-770A-42FF-B891-5745F7A6BC2F}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {D666EADA-770A-42FF-B891-5745F7A6BC2F}.Debug|x64.Build.0 = Debug|Any CPU
{D666EADA-770A-42FF-B891-5745F7A6BC2F}.Debug|x86.ActiveCfg = Debug|Any CPU
{D666EADA-770A-42FF-B891-5745F7A6BC2F}.Debug|x86.Build.0 = Debug|Any CPU
{D666EADA-770A-42FF-B891-5745F7A6BC2F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D666EADA-770A-42FF-B891-5745F7A6BC2F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D666EADA-770A-42FF-B891-5745F7A6BC2F}.Release|x64.ActiveCfg = Release|Any CPU
+ {D666EADA-770A-42FF-B891-5745F7A6BC2F}.Release|x64.Build.0 = Release|Any CPU
{59E4B63B-BEA2-4CDA-98F0-13962146AEA5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{59E4B63B-BEA2-4CDA-98F0-13962146AEA5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{59E4B63B-BEA2-4CDA-98F0-13962146AEA5}.Debug|x64.ActiveCfg = Debug|Any CPU
diff --git a/src/administration/Administration.Service/Administration.Service.csproj b/src/administration/Administration.Service/Administration.Service.csproj
index d2cbb469cd..fabf070f18 100644
--- a/src/administration/Administration.Service/Administration.Service.csproj
+++ b/src/administration/Administration.Service/Administration.Service.csproj
@@ -39,7 +39,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/src/administration/Administration.Service/BusinessLogic/ConnectorsBusinessLogic.cs b/src/administration/Administration.Service/BusinessLogic/ConnectorsBusinessLogic.cs
index 0de31768de..ad4daa13ab 100644
--- a/src/administration/Administration.Service/BusinessLogic/ConnectorsBusinessLogic.cs
+++ b/src/administration/Administration.Service/BusinessLogic/ConnectorsBusinessLogic.cs
@@ -78,9 +78,9 @@ public async Task GetCompanyConnectorData(Guid connectorId)
throw NotFoundException.Create(AdministrationConnectorErrors.CONNECTOR_NOT_FOUND, new ErrorParameter[] { new("connectorId", connectorId.ToString()) });
}
- if (!result.IsProviderCompany)
+ if (!result.IsProvidingOrHostCompany)
{
- throw ForbiddenException.Create(AdministrationConnectorErrors.CONNECTOR_NOT_PROVIDER_COMPANY, new ErrorParameter[] { new("companyId", companyId.ToString()), new("connectorId", connectorId.ToString()) });
+ throw ForbiddenException.Create(AdministrationConnectorErrors.CONNECTOR_NOT_PROVIDER_COMPANY_NOR_HOST, new ErrorParameter[] { new("companyId", companyId.ToString()), new("connectorId", connectorId.ToString()) });
}
return result.ConnectorData;
diff --git a/src/administration/Administration.Service/BusinessLogic/NetworkBusinessLogic.cs b/src/administration/Administration.Service/BusinessLogic/NetworkBusinessLogic.cs
index 67b6957102..203f14a787 100644
--- a/src/administration/Administration.Service/BusinessLogic/NetworkBusinessLogic.cs
+++ b/src/administration/Administration.Service/BusinessLogic/NetworkBusinessLogic.cs
@@ -141,6 +141,7 @@ private Guid CreatePartnerCompany(ICompanyRepository companyRepository, PartnerR
{
c.AddressId = address.Id;
c.BusinessPartnerNumber = data.BusinessPartnerNumber?.ToUpper();
+ c.Shortname = data.ShortName;
});
companyRepository.CreateUpdateDeleteIdentifiers(company.Id, Enumerable.Empty<(UniqueIdentifierId, string)>(), data.UniqueIds.Select(x => (x.UniqueIdentifierId, x.Value)));
diff --git a/src/administration/Administration.Service/Models/PartnerRegistrationData.cs b/src/administration/Administration.Service/Models/PartnerRegistrationData.cs
index 54f5169564..3b539e923b 100644
--- a/src/administration/Administration.Service/Models/PartnerRegistrationData.cs
+++ b/src/administration/Administration.Service/Models/PartnerRegistrationData.cs
@@ -27,6 +27,7 @@ public record PartnerRegistrationData
(
string ExternalId,
string Name,
+ string? ShortName,
[property: JsonPropertyName("bpn")] string? BusinessPartnerNumber,
string City,
string StreetName,
@@ -37,7 +38,7 @@ public record PartnerRegistrationData
IEnumerable UniqueIds,
IEnumerable UserDetails,
IEnumerable CompanyRoles
-) : RegistrationData(Name, City, StreetName, CountryAlpha2Code, BusinessPartnerNumber, null, Region, null, StreetNumber, ZipCode, UniqueIds);
+) : RegistrationData(Name, City, StreetName, CountryAlpha2Code, BusinessPartnerNumber, ShortName, Region, null, StreetNumber, ZipCode, UniqueIds);
public record UserDetailData(
Guid? IdentityProviderId,
diff --git a/src/externalsystems/Dim.Library/Dim.Library.csproj b/src/externalsystems/Dim.Library/Dim.Library.csproj
index e3f7417854..9d09809d1d 100644
--- a/src/externalsystems/Dim.Library/Dim.Library.csproj
+++ b/src/externalsystems/Dim.Library/Dim.Library.csproj
@@ -35,7 +35,7 @@
-
+
diff --git a/src/externalsystems/IssuerComponent.Library/IssuerComponent.Library.csproj b/src/externalsystems/IssuerComponent.Library/IssuerComponent.Library.csproj
index 98b759eadb..d69579af1f 100644
--- a/src/externalsystems/IssuerComponent.Library/IssuerComponent.Library.csproj
+++ b/src/externalsystems/IssuerComponent.Library/IssuerComponent.Library.csproj
@@ -35,7 +35,7 @@
-
+
diff --git a/src/framework/Framework.DBAccess/Framework.DBAccess.csproj b/src/framework/Framework.DBAccess/Framework.DBAccess.csproj
index dc541dd473..3d9091f695 100644
--- a/src/framework/Framework.DBAccess/Framework.DBAccess.csproj
+++ b/src/framework/Framework.DBAccess/Framework.DBAccess.csproj
@@ -61,6 +61,6 @@
-
+
diff --git a/src/framework/Framework.ErrorHandling.Web/Framework.ErrorHandling.Web.csproj b/src/framework/Framework.ErrorHandling.Web/Framework.ErrorHandling.Web.csproj
index 160b181b48..cba0095092 100644
--- a/src/framework/Framework.ErrorHandling.Web/Framework.ErrorHandling.Web.csproj
+++ b/src/framework/Framework.ErrorHandling.Web/Framework.ErrorHandling.Web.csproj
@@ -68,7 +68,7 @@
-
+
diff --git a/src/framework/Framework.HttpClientExtensions/HttpAsyncResponseMessageExtension.cs b/src/framework/Framework.HttpClientExtensions/HttpAsyncResponseMessageExtension.cs
index 1a841ab0de..f4110e507b 100644
--- a/src/framework/Framework.HttpClientExtensions/HttpAsyncResponseMessageExtension.cs
+++ b/src/framework/Framework.HttpClientExtensions/HttpAsyncResponseMessageExtension.cs
@@ -18,6 +18,7 @@
********************************************************************************/
using Org.Eclipse.TractusX.Portal.Backend.Framework.ErrorHandling;
+using System.Net.Sockets;
namespace Org.Eclipse.TractusX.Portal.Backend.Framework.HttpClientExtensions;
@@ -64,6 +65,10 @@ public static async ValueTask CatchingIntoServiceExceptionF
? new ServiceException($"call to external system {systemName} failed", e, (recoverOptions & RecoverOptions.REQUEST_EXCEPTION) == RecoverOptions.REQUEST_EXCEPTION)
: new ServiceException($"call to external system {systemName} failed with statuscode {(int)e.StatusCode.Value}", e, e.StatusCode.Value, (recoverOptions & RecoverOptions.REQUEST_EXCEPTION) == RecoverOptions.REQUEST_EXCEPTION);
}
+ catch (SystemException e) when (e is SocketException or IOException)
+ {
+ throw new ServiceException($"call to external system {systemName} failed due to network io", e, (recoverOptions & RecoverOptions.NETWORK) == RecoverOptions.NETWORK);
+ }
catch (TaskCanceledException e)
{
throw new ServiceException($"call to external system {systemName} failed due to timeout", e, (recoverOptions & RecoverOptions.TIMEOUT) == RecoverOptions.TIMEOUT);
@@ -82,7 +87,8 @@ public enum RecoverOptions
REQUEST_EXCEPTION = 0b_0000_0010,
TIMEOUT = 0b_0000_0100,
OTHER_EXCEPTION = 0b_0000_1000,
- INFRASTRUCTURE = REQUEST_EXCEPTION | TIMEOUT,
- ALLWAYS = RESPONSE_RECEIVED | REQUEST_EXCEPTION | TIMEOUT | OTHER_EXCEPTION
+ NETWORK = 0b_0001_0000,
+ INFRASTRUCTURE = REQUEST_EXCEPTION | TIMEOUT | NETWORK,
+ ALLWAYS = RESPONSE_RECEIVED | REQUEST_EXCEPTION | TIMEOUT | NETWORK | OTHER_EXCEPTION
}
}
diff --git a/src/framework/Framework.Logging/Framework.Logging.csproj b/src/framework/Framework.Logging/Framework.Logging.csproj
index 1ba63f68eb..910fff45df 100644
--- a/src/framework/Framework.Logging/Framework.Logging.csproj
+++ b/src/framework/Framework.Logging/Framework.Logging.csproj
@@ -64,14 +64,14 @@
-
-
-
+
+
+
-
+
-
+
diff --git a/src/framework/Framework.Seeding/Framework.Seeding.csproj b/src/framework/Framework.Seeding/Framework.Seeding.csproj
index aef8ac3388..e8ae444e9e 100644
--- a/src/framework/Framework.Seeding/Framework.Seeding.csproj
+++ b/src/framework/Framework.Seeding/Framework.Seeding.csproj
@@ -65,8 +65,8 @@
-
-
+
+
diff --git a/src/framework/Framework.Web/Framework.Web.csproj b/src/framework/Framework.Web/Framework.Web.csproj
index d10bc1bbde..1d5437f9e9 100644
--- a/src/framework/Framework.Web/Framework.Web.csproj
+++ b/src/framework/Framework.Web/Framework.Web.csproj
@@ -72,7 +72,7 @@
-
+
diff --git a/src/keycloak/Keycloak.Authentication/Keycloak.Authentication.csproj b/src/keycloak/Keycloak.Authentication/Keycloak.Authentication.csproj
index 1aef72f653..1b9cd18ecc 100644
--- a/src/keycloak/Keycloak.Authentication/Keycloak.Authentication.csproj
+++ b/src/keycloak/Keycloak.Authentication/Keycloak.Authentication.csproj
@@ -31,8 +31,8 @@
-
-
+
+
diff --git a/src/keycloak/Keycloak.Seeding/Keycloak.Seeding.csproj b/src/keycloak/Keycloak.Seeding/Keycloak.Seeding.csproj
index 15933251fc..5b4f3dc1e4 100644
--- a/src/keycloak/Keycloak.Seeding/Keycloak.Seeding.csproj
+++ b/src/keycloak/Keycloak.Seeding/Keycloak.Seeding.csproj
@@ -39,7 +39,7 @@
-
+
diff --git a/src/maintenance/Maintenance.App/Maintenance.App.csproj b/src/maintenance/Maintenance.App/Maintenance.App.csproj
index 398dbbacad..0a2eab6d2a 100644
--- a/src/maintenance/Maintenance.App/Maintenance.App.csproj
+++ b/src/maintenance/Maintenance.App/Maintenance.App.csproj
@@ -32,7 +32,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
@@ -42,7 +42,7 @@
-
+
diff --git a/src/marketplace/Apps.Service/Apps.Service.csproj b/src/marketplace/Apps.Service/Apps.Service.csproj
index 7bc6712516..5287a1cf9d 100644
--- a/src/marketplace/Apps.Service/Apps.Service.csproj
+++ b/src/marketplace/Apps.Service/Apps.Service.csproj
@@ -41,7 +41,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/src/marketplace/Apps.Service/BusinessLogic/AppsBusinessLogic.cs b/src/marketplace/Apps.Service/BusinessLogic/AppsBusinessLogic.cs
index 557a2ee413..79d4f41d5e 100644
--- a/src/marketplace/Apps.Service/BusinessLogic/AppsBusinessLogic.cs
+++ b/src/marketplace/Apps.Service/BusinessLogic/AppsBusinessLogic.cs
@@ -227,8 +227,8 @@ public IAsyncEnumerable GetAppAgreement(Guid appId) =>
_offerService.GetOfferDocumentContentAsync(appId, documentId, _settings.AppImageDocumentTypeIds, OfferTypeId.APP, cancellationToken);
///
- public Task GetSubscriptionDetailForProvider(Guid appId, Guid subscriptionId) =>
- _offerService.GetAppSubscriptionDetailsForProviderAsync(appId, subscriptionId, OfferTypeId.APP, _settings.CompanyAdminRoles, new WalletConfigData(_settings.IssuerDid, _settings.BpnDidResolverUrl, _settings.DecentralIdentityManagementAuthUrl));
+ public Task GetSubscriptionDetailForProvider(Guid appId, Guid subscriptionId) =>
+ _offerService.GetOfferSubscriptionDetailsForProviderAsync(appId, subscriptionId, OfferTypeId.APP, _settings.CompanyAdminRoles, new WalletConfigData(_settings.IssuerDid, _settings.BpnDidResolverUrl, _settings.DecentralIdentityManagementAuthUrl));
///
public Task GetSubscriptionDetailForSubscriber(Guid appId, Guid subscriptionId) =>
diff --git a/src/marketplace/Apps.Service/BusinessLogic/IAppsBusinessLogic.cs b/src/marketplace/Apps.Service/BusinessLogic/IAppsBusinessLogic.cs
index ec3739ed97..763b523e67 100644
--- a/src/marketplace/Apps.Service/BusinessLogic/IAppsBusinessLogic.cs
+++ b/src/marketplace/Apps.Service/BusinessLogic/IAppsBusinessLogic.cs
@@ -162,7 +162,7 @@ public interface IAppsBusinessLogic
/// Id of the app
/// Id of the subscription
/// Returns the details of the subscription
- Task GetSubscriptionDetailForProvider(Guid appId, Guid subscriptionId);
+ Task GetSubscriptionDetailForProvider(Guid appId, Guid subscriptionId);
///
/// Gets the information for the subscription
diff --git a/src/marketplace/Apps.Service/Controllers/AppsController.cs b/src/marketplace/Apps.Service/Controllers/AppsController.cs
index ca4f0388ae..7cbaed274f 100644
--- a/src/marketplace/Apps.Service/Controllers/AppsController.cs
+++ b/src/marketplace/Apps.Service/Controllers/AppsController.cs
@@ -381,11 +381,11 @@ public async Task GetAppDocumentContentAsync([FromRoute] Guid appId,
[Authorize(Roles = "app_management")]
[Authorize(Policy = PolicyTypes.ValidCompany)]
[Route("{appId}/subscription/{subscriptionId}/provider")]
- [ProducesResponseType(typeof(AppProviderSubscriptionDetailData), StatusCodes.Status200OK)]
+ [ProducesResponseType(typeof(OfferProviderSubscriptionDetailData), StatusCodes.Status200OK)]
[ProducesResponseType(typeof(ErrorResponse), StatusCodes.Status403Forbidden)]
[ProducesResponseType(typeof(ErrorResponse), StatusCodes.Status404NotFound)]
[PublicUrl(CompanyRoleId.APP_PROVIDER)]
- public Task GetSubscriptionDetailForProvider([FromRoute] Guid appId, [FromRoute] Guid subscriptionId) =>
+ public Task GetSubscriptionDetailForProvider([FromRoute] Guid appId, [FromRoute] Guid subscriptionId) =>
_appsBusinessLogic.GetSubscriptionDetailForProvider(appId, subscriptionId);
///
diff --git a/src/marketplace/Offers.Library/Models/OfferProviderSubscriptionDetailData.cs b/src/marketplace/Offers.Library/Models/OfferProviderSubscriptionDetailData.cs
new file mode 100644
index 0000000000..90aab1bada
--- /dev/null
+++ b/src/marketplace/Offers.Library/Models/OfferProviderSubscriptionDetailData.cs
@@ -0,0 +1,59 @@
+/********************************************************************************
+ * Copyright (c) 2024 Contributors to the Eclipse Foundation
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Apache License, Version 2.0 which is available at
+ * https://www.apache.org/licenses/LICENSE-2.0.
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ ********************************************************************************/
+
+using Org.Eclipse.TractusX.Portal.Backend.PortalBackend.DBAccess.Models;
+using Org.Eclipse.TractusX.Portal.Backend.PortalBackend.PortalEntities.Enums;
+using System.Text.Json.Serialization;
+
+namespace Org.Eclipse.TractusX.Portal.Backend.Offers.Library.Models;
+
+///
+/// Detail data for a offer subscription
+///
+/// Id of the Offer
+/// Status of the offer subscription
+/// Name of the Offer
+/// Name of the company subscribing the offer
+/// When called from /provider bpn of the company subscribing the offer, otherwise the provider company's bpn
+/// When called from /provider the company admins of the subscribing company, otherwise the salesmanagers of the offer provider
+/// Information about the technical user
+/// Url of Tenant
+/// Id of the app instance
+public record OfferProviderSubscriptionDetailData(
+ Guid Id,
+ OfferSubscriptionStatusId OfferSubscriptionStatus,
+ string? Name,
+ string Customer,
+ string? Bpn,
+ IEnumerable Contact,
+ IEnumerable TechnicalUserData,
+ IEnumerable ConnectorData,
+ string? TenantUrl,
+ string? AppInstanceId,
+ ProcessStepTypeId? ProcessStepTypeId,
+ SubscriptionExternalServiceData ExternalService
+);
+public record SubscriptionExternalServiceData(
+ [property: JsonPropertyName("trusted_issuer")] string TrustedIssuer,
+ [property: JsonPropertyName("participant_id")] string? ParticipantId,
+ [property: JsonPropertyName("iatp_id")] string? IatpId,
+ [property: JsonPropertyName("did_resolver")] string DidResolver,
+ [property: JsonPropertyName("decentralIdentityManagementAuthUrl")] string DecentralIdentityManagementAuthUrl,
+ [property: JsonPropertyName("decentralIdentityManagementServiceUrl")] string? DecentralIdentityManagementServiceUrl
+);
diff --git a/src/marketplace/Offers.Library/Service/IOfferService.cs b/src/marketplace/Offers.Library/Service/IOfferService.cs
index 15697e083f..169193d4c5 100644
--- a/src/marketplace/Offers.Library/Service/IOfferService.cs
+++ b/src/marketplace/Offers.Library/Service/IOfferService.cs
@@ -213,16 +213,6 @@ Task CreateOrUpdateOfferSubscriptionAgreementConsentAsync(Guid subscriptionId,
/// Client to get the technicalUserProfiles
Task UpdateTechnicalUserProfiles(Guid offerId, OfferTypeId offerTypeId, IEnumerable data, string technicalUserProfileClient);
- ///
- /// Gets the information for the subscription for the provider
- ///
- /// Id of the offer
- /// Id of the subscription
- /// Offer type
- /// The roles of the users that will be listed as contact
- /// Returns the details of the subscription
- Task GetSubscriptionDetailsForProviderAsync(Guid offerId, Guid subscriptionId, OfferTypeId offerTypeId, IEnumerable contactUserRoles);
-
///
/// Gets the information for the subscription for the subscriber
///
@@ -254,7 +244,7 @@ Task CreateOrUpdateOfferSubscriptionAgreementConsentAsync(Guid subscriptionId,
/// The roles of the users that will be listed as contact
/// The information for the external service data
/// Returns the details of the subscription
- Task GetAppSubscriptionDetailsForProviderAsync(Guid offerId, Guid subscriptionId, OfferTypeId offerTypeId, IEnumerable contactUserRoles, WalletConfigData walletData);
+ Task GetOfferSubscriptionDetailsForProviderAsync(Guid offerId, Guid subscriptionId, OfferTypeId offerTypeId, IEnumerable contactUserRoles, WalletConfigData walletData);
///
/// Unsubscribe the Offer subscription by subscriptionId
diff --git a/src/marketplace/Offers.Library/Service/OfferService.cs b/src/marketplace/Offers.Library/Service/OfferService.cs
index d6bd98a8d0..436fb6441a 100644
--- a/src/marketplace/Offers.Library/Service/OfferService.cs
+++ b/src/marketplace/Offers.Library/Service/OfferService.cs
@@ -788,16 +788,12 @@ public async Task UpdateTechnicalUserProfiles(Guid offerId, OfferTypeId offerTyp
}
///
- public Task GetSubscriptionDetailsForProviderAsync(Guid offerId, Guid subscriptionId, OfferTypeId offerTypeId, IEnumerable contactUserRoles) =>
- GetOfferSubscriptionDetailsInternal(offerId, subscriptionId, offerTypeId, contactUserRoles, OfferCompanyRole.Provider, portalRepositories.GetInstance().GetSubscriptionDetailsForProviderAsync);
-
- ///
- public async Task GetAppSubscriptionDetailsForProviderAsync(Guid offerId, Guid subscriptionId, OfferTypeId offerTypeId, IEnumerable contactUserRoles, WalletConfigData walletData)
+ public async Task GetOfferSubscriptionDetailsForProviderAsync(Guid offerId, Guid subscriptionId, OfferTypeId offerTypeId, IEnumerable contactUserRoles, WalletConfigData walletData)
{
- var data = await GetOfferSubscriptionDetailsInternal(offerId, subscriptionId, offerTypeId, contactUserRoles, OfferCompanyRole.Provider, portalRepositories.GetInstance().GetAppSubscriptionDetailsForProviderAsync)
+ var data = await GetOfferSubscriptionDetailsInternal(offerId, subscriptionId, offerTypeId, contactUserRoles, OfferCompanyRole.Provider, portalRepositories.GetInstance().GetOfferSubscriptionDetailsForProviderAsync)
.ConfigureAwait(ConfigureAwaitOptions.None);
- return new AppProviderSubscriptionDetailData(
+ return new OfferProviderSubscriptionDetailData(
data.Id,
data.OfferSubscriptionStatus,
data.Name,
diff --git a/src/marketplace/Services.Service/BusinessLogic/IServiceBusinessLogic.cs b/src/marketplace/Services.Service/BusinessLogic/IServiceBusinessLogic.cs
index c45304a0c9..64a3245e42 100644
--- a/src/marketplace/Services.Service/BusinessLogic/IServiceBusinessLogic.cs
+++ b/src/marketplace/Services.Service/BusinessLogic/IServiceBusinessLogic.cs
@@ -130,9 +130,10 @@ public interface IServiceBusinessLogic
///
/// Retrieves subscription statuses of subscribed Service of the provided user's company.
///
- /// page
- /// size
- ///
+ /// page
+ /// size
+ /// optional status to filter by
+ /// optional name to filter by
/// Returns the details of the subscription status for Service user
Task> GetCompanySubscribedServiceSubscriptionStatusesForUserAsync(int page, int size, OfferSubscriptionStatusId? statusId, string? name);
diff --git a/src/marketplace/Services.Service/BusinessLogic/ServiceBusinessLogic.cs b/src/marketplace/Services.Service/BusinessLogic/ServiceBusinessLogic.cs
index fdb1cfabd1..3d982e6132 100644
--- a/src/marketplace/Services.Service/BusinessLogic/ServiceBusinessLogic.cs
+++ b/src/marketplace/Services.Service/BusinessLogic/ServiceBusinessLogic.cs
@@ -99,6 +99,7 @@ public async Task GetServiceDetailsAsync(Guid serviceId,
result.Description,
result.LicenseTypeId,
result.Price,
+ result.ProviderUri,
result.OfferSubscriptionDetailData,
result.ServiceTypeIds,
result.Documents.GroupBy(doc => doc.DocumentTypeId).ToDictionary(d => d.Key, d => d.Select(x => new DocumentData(x.DocumentId, x.DocumentName))),
@@ -210,8 +211,22 @@ private static IEnumerable GetOfferStatusIds(ServiceStatusIdFilte
}
///
- public Task GetSubscriptionDetailForProvider(Guid serviceId, Guid subscriptionId) =>
- _offerService.GetSubscriptionDetailsForProviderAsync(serviceId, subscriptionId, OfferTypeId.SERVICE, _settings.CompanyAdminRoles);
+ public async Task GetSubscriptionDetailForProvider(Guid serviceId, Guid subscriptionId)
+ {
+ var offerSubscriptionDetails = await _offerService.GetOfferSubscriptionDetailsForProviderAsync(serviceId, subscriptionId, OfferTypeId.SERVICE, _settings.CompanyAdminRoles, new WalletConfigData(_settings.IssuerDid, _settings.BpnDidResolverUrl, _settings.DecentralIdentityManagementAuthUrl)).ConfigureAwait(ConfigureAwaitOptions.None);
+ return new(
+ offerSubscriptionDetails.Id,
+ offerSubscriptionDetails.OfferSubscriptionStatus,
+ offerSubscriptionDetails.Name,
+ offerSubscriptionDetails.Customer,
+ offerSubscriptionDetails.Bpn,
+ offerSubscriptionDetails.Contact,
+ offerSubscriptionDetails.TechnicalUserData,
+ offerSubscriptionDetails.ConnectorData,
+ offerSubscriptionDetails.ProcessStepTypeId,
+ offerSubscriptionDetails.ExternalService
+ );
+ }
///
public Task GetSubscriptionDetailForSubscriber(Guid serviceId, Guid subscriptionId) =>
diff --git a/src/marketplace/Services.Service/ServiceSettings.cs b/src/marketplace/Services.Service/ServiceSettings.cs
index d90ae22f4d..9cb40b718b 100644
--- a/src/marketplace/Services.Service/ServiceSettings.cs
+++ b/src/marketplace/Services.Service/ServiceSettings.cs
@@ -168,6 +168,15 @@ public class ServiceSettings
[Required]
[DistinctValues("x => x.ClientId")]
public IEnumerable DimUserRoles { get; set; } = null!;
+
+ [Required(AllowEmptyStrings = true)]
+ public string DecentralIdentityManagementAuthUrl { get; set; } = null!;
+
+ [Required(AllowEmptyStrings = true)]
+ public string IssuerDid { get; set; } = null!;
+
+ [Required(AllowEmptyStrings = true)]
+ public string BpnDidResolverUrl { get; set; } = null!;
}
public static class ServiceSettingsExtension
diff --git a/src/marketplace/Services.Service/ViewModels/ProviderSubscriptionDetailData.cs b/src/marketplace/Services.Service/ViewModels/ProviderSubscriptionDetailData.cs
new file mode 100644
index 0000000000..95b97dd579
--- /dev/null
+++ b/src/marketplace/Services.Service/ViewModels/ProviderSubscriptionDetailData.cs
@@ -0,0 +1,50 @@
+/********************************************************************************
+ * Copyright (c) 2024 Contributors to the Eclipse Foundation
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Apache License, Version 2.0 which is available at
+ * https://www.apache.org/licenses/LICENSE-2.0.
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ ********************************************************************************/
+
+using Org.Eclipse.TractusX.Portal.Backend.Offers.Library.Models;
+using Org.Eclipse.TractusX.Portal.Backend.PortalBackend.DBAccess.Models;
+using Org.Eclipse.TractusX.Portal.Backend.PortalBackend.PortalEntities.Enums;
+
+namespace Org.Eclipse.TractusX.Portal.Backend.Services.Service;
+
+///
+/// Detail data for a offer subscription
+///
+/// Id of the Offer
+/// Status of the offer subscription
+/// Name of the Offer
+/// Name of the company subscribing the offer
+/// When called from /provider bpn of the company subscribing the offer, otherwise the provider company's bpn
+/// When called from /provider the company admins of the subscribing company, otherwise the salesmanagers of the offer provider
+/// Information about the technical user
+///
+///
+///
+public record ProviderSubscriptionDetailData(
+ Guid Id,
+ OfferSubscriptionStatusId OfferSubscriptionStatus,
+ string? Name,
+ string Customer,
+ string? Bpn,
+ IEnumerable Contact,
+ IEnumerable TechnicalUserData,
+ IEnumerable ConnectorData,
+ ProcessStepTypeId? ProcessStepTypeId,
+ SubscriptionExternalServiceData ExternalService
+);
diff --git a/src/marketplace/Services.Service/ViewModels/ServiceDetailResponse.cs b/src/marketplace/Services.Service/ViewModels/ServiceDetailResponse.cs
index 5d58306b09..acc9563f56 100644
--- a/src/marketplace/Services.Service/ViewModels/ServiceDetailResponse.cs
+++ b/src/marketplace/Services.Service/ViewModels/ServiceDetailResponse.cs
@@ -34,6 +34,7 @@ namespace Org.Eclipse.TractusX.Portal.Backend.Services.Service.ViewModels;
/// The description of the service.
/// LicenseType for offer
/// Pricing information of the app.
+/// Provider's homepage url or marketing url
/// Detail Data of the offer subscription
/// Collection of the assigned serviceTypeIds.
/// documents assigned to offer
@@ -48,6 +49,7 @@ public record ServiceDetailResponse(
string? Description,
LicenseTypeId LicenseType,
string Price,
+ string? ProviderUri,
IEnumerable OfferSubscriptionDetailData,
IEnumerable ServiceTypes,
IDictionary> Documents,
diff --git a/src/marketplace/Services.Service/appsettings.json b/src/marketplace/Services.Service/appsettings.json
index c8812dfc86..26e2f4f03c 100644
--- a/src/marketplace/Services.Service/appsettings.json
+++ b/src/marketplace/Services.Service/appsettings.json
@@ -56,6 +56,9 @@
},
"Services": {
"BasePortalAddress": "https://portal.example.org",
+ "DecentralIdentityManagementAuthUrl": "",
+ "IssuerDid": "",
+ "BpnDidResolverUrl": "",
"ServiceOverviewAddress": "https://portal.example.org",
"CatenaAdminRoles": [],
"ServiceAccountRoles": [],
diff --git a/src/notifications/Notifications.Service/Notifications.Service.csproj b/src/notifications/Notifications.Service/Notifications.Service.csproj
index f438ae6657..191e16e72e 100644
--- a/src/notifications/Notifications.Service/Notifications.Service.csproj
+++ b/src/notifications/Notifications.Service/Notifications.Service.csproj
@@ -19,16 +19,17 @@
-
- Org.Eclipse.TractusX.Portal.Backend.Notifications.Service
- net8.0
- enable
- enable
- Linux
- ..\..\..
- True
- 53be9d36-5a45-441f-8f48-772ae6e64ca2
- Org.Eclipse.TractusX.Portal.Backend.Notifications.Service
+
+ Org.Eclipse.TractusX.Portal.Backend.Notifications.Service
+ Org.Eclipse.TractusX.Portal.Backend.Notifications.Service
+ net8.0
+ enable
+ enable
+ Linux
+ ..\..\..
+ True
+ 53be9d36-5a45-441f-8f48-772ae6e64ca2
+ CS1591
diff --git a/src/portalbackend/PortalBackend.DBAccess/Models/OfferDetailData.cs b/src/portalbackend/PortalBackend.DBAccess/Models/OfferDetailData.cs
index 7df8446477..63b1b9395f 100644
--- a/src/portalbackend/PortalBackend.DBAccess/Models/OfferDetailData.cs
+++ b/src/portalbackend/PortalBackend.DBAccess/Models/OfferDetailData.cs
@@ -51,6 +51,7 @@ public record OfferDetailData(
/// Contact email address.
/// The description of the service.
/// Pricing information of the app.
+/// Provider's homepage url or marketing url
/// Detail Data of the offer subscription
/// Collection of the assigned serviceTypeIds.
/// Collections of the Document type Data.
@@ -64,6 +65,7 @@ public record ServiceDetailData(
string? ContactEmail,
string? Description,
string Price,
+ string? ProviderUri,
IEnumerable OfferSubscriptionDetailData,
IEnumerable ServiceTypeIds,
IEnumerable Documents,
diff --git a/src/portalbackend/PortalBackend.DBAccess/Models/OfferSubscriptionDetailData.cs b/src/portalbackend/PortalBackend.DBAccess/Models/OfferSubscriptionDetailData.cs
index f7b8ca48d4..162ff7dfea 100644
--- a/src/portalbackend/PortalBackend.DBAccess/Models/OfferSubscriptionDetailData.cs
+++ b/src/portalbackend/PortalBackend.DBAccess/Models/OfferSubscriptionDetailData.cs
@@ -29,62 +29,6 @@ public record SubscriptionTechnicalUserData(
IEnumerable Permissions
);
-///
-/// Detail data for a offer subscription
-///
-/// Id of the Offer
-/// Status of the offer subscription
-/// Name of the Offer
-/// Name of the company subscribing the offer
-/// When called from /provider bpn of the company subscribing the offer, otherwise the provider company's bpn
-/// When called from /provider the company admins of the subscribing company, otherwise the salesmanagers of the offer provider
-/// Information about the technical user
-public record ProviderSubscriptionDetailData(
- Guid Id,
- OfferSubscriptionStatusId OfferSubscriptionStatus,
- string? Name,
- string Customer,
- string? Bpn,
- IEnumerable Contact,
- IEnumerable TechnicalUserData
-);
-
-///
-/// Detail data for a offer subscription
-///
-/// Id of the Offer
-/// Status of the offer subscription
-/// Name of the Offer
-/// Name of the company subscribing the offer
-/// When called from /provider bpn of the company subscribing the offer, otherwise the provider company's bpn
-/// When called from /provider the company admins of the subscribing company, otherwise the salesmanagers of the offer provider
-/// Information about the technical user
-/// Url of Tenant
-/// Id of the app instance
-public record AppProviderSubscriptionDetailData(
- Guid Id,
- OfferSubscriptionStatusId OfferSubscriptionStatus,
- string? Name,
- string Customer,
- string? Bpn,
- IEnumerable Contact,
- IEnumerable TechnicalUserData,
- IEnumerable ConnectorData,
- string? TenantUrl,
- string AppInstanceId,
- ProcessStepTypeId? ProcessStepTypeId,
- SubscriptionExternalServiceData ExternalService
-);
-
-public record SubscriptionExternalServiceData(
- [property: JsonPropertyName("trusted_issuer")] string TrustedIssuer,
- [property: JsonPropertyName("participant_id")] string? ParticipantId,
- [property: JsonPropertyName("iatp_id")] string? IatpId,
- [property: JsonPropertyName("did_resolver")] string DidResolver,
- [property: JsonPropertyName("decentralIdentityManagementAuthUrl")] string DecentralIdentityManagementAuthUrl,
- [property: JsonPropertyName("decentralIdentityManagementServiceUrl")] string? DecentralIdentityManagementServiceUrl
-);
-
///
/// Detail data for a offer subscription
///
@@ -127,7 +71,7 @@ public record SubscriptionAssignedConnectorData(
/// Information about the technical user
/// Url of Tenant
/// Id of the app instance
-public record AppProviderSubscriptionDetail(
+public record OfferProviderSubscriptionDetail(
Guid Id,
OfferSubscriptionStatusId OfferSubscriptionStatus,
string? Name,
@@ -136,7 +80,7 @@ public record AppProviderSubscriptionDetail(
IEnumerable Contact,
IEnumerable TechnicalUserData,
string? TenantUrl,
- string AppInstanceId,
+ string? AppInstanceId,
IEnumerable<(ProcessStepTypeId ProcessStepTypeId, ProcessStepStatusId ProcessStepStatusId)> ProcessSteps,
IEnumerable ConnectorData,
ExternalServiceData? ExternalServiceData
diff --git a/src/portalbackend/PortalBackend.DBAccess/PortalBackend.DBAccess.csproj b/src/portalbackend/PortalBackend.DBAccess/PortalBackend.DBAccess.csproj
index 9717dcffd8..1e0b8f9e53 100644
--- a/src/portalbackend/PortalBackend.DBAccess/PortalBackend.DBAccess.csproj
+++ b/src/portalbackend/PortalBackend.DBAccess/PortalBackend.DBAccess.csproj
@@ -33,7 +33,7 @@
-
+
diff --git a/src/portalbackend/PortalBackend.DBAccess/Repositories/ConnectorsRepository.cs b/src/portalbackend/PortalBackend.DBAccess/Repositories/ConnectorsRepository.cs
index e6bcbf1796..e6e84fdf09 100644
--- a/src/portalbackend/PortalBackend.DBAccess/Repositories/ConnectorsRepository.cs
+++ b/src/portalbackend/PortalBackend.DBAccess/Repositories/ConnectorsRepository.cs
@@ -84,7 +84,7 @@ public class ConnectorsRepository(PortalDbContext dbContext) : IConnectorsReposi
c.ConnectorUrl)
).SingleOrDefaultAsync();
- public Task<(ConnectorData ConnectorData, bool IsProviderCompany)> GetConnectorByIdForCompany(Guid connectorId, Guid companyId) =>
+ public Task<(ConnectorData ConnectorData, bool IsProvidingOrHostCompany)> GetConnectorByIdForCompany(Guid connectorId, Guid companyId) =>
dbContext.Connectors
.AsNoTracking()
.Where(connector => connector.Id == connectorId && connector.StatusId != ConnectorStatusId.INACTIVE)
@@ -104,7 +104,7 @@ public class ConnectorsRepository(PortalDbContext dbContext) : IConnectorsReposi
connector.TechnicalUser.ClientClientId,
connector.TechnicalUser.Description),
connector.ConnectorUrl),
- connector.ProviderId == companyId
+ connector.ProviderId == companyId || connector.HostId == companyId
))
.SingleOrDefaultAsync();
@@ -130,11 +130,11 @@ public Connector CreateConnector(string name, string location, string connectorU
public IAsyncEnumerable<(string BusinessPartnerNumber, string ConnectorEndpoint)> GetConnectorEndPointDataAsync(IEnumerable bpns) =>
dbContext.Connectors
.AsNoTracking()
- .Where(connector => connector.StatusId == ConnectorStatusId.ACTIVE && (!bpns.Any() || bpns.Contains(connector.Provider!.BusinessPartnerNumber)))
- .OrderBy(connector => connector.ProviderId)
+ .Where(connector => connector.StatusId == ConnectorStatusId.ACTIVE && (!bpns.Any() || bpns.Contains(connector.Host!.BusinessPartnerNumber)))
+ .OrderBy(connector => connector.HostId)
.Select(connector => new ValueTuple
(
- connector.Provider!.BusinessPartnerNumber!,
+ connector.Host!.BusinessPartnerNumber!,
connector.ConnectorUrl
))
.AsAsyncEnumerable();
diff --git a/src/portalbackend/PortalBackend.DBAccess/Repositories/IConnectorsRepository.cs b/src/portalbackend/PortalBackend.DBAccess/Repositories/IConnectorsRepository.cs
index d8180de151..66de561158 100644
--- a/src/portalbackend/PortalBackend.DBAccess/Repositories/IConnectorsRepository.cs
+++ b/src/portalbackend/PortalBackend.DBAccess/Repositories/IConnectorsRepository.cs
@@ -43,7 +43,7 @@ public interface IConnectorsRepository
/// Pagination.Source of connectors that allows transformation.
Func?>> GetManagedConnectorsForCompany(Guid companyId);
- Task<(ConnectorData ConnectorData, bool IsProviderCompany)> GetConnectorByIdForCompany(Guid connectorId, Guid companyId);
+ public Task<(ConnectorData ConnectorData, bool IsProvidingOrHostCompany)> GetConnectorByIdForCompany(Guid connectorId, Guid companyId);
Task<(ConnectorInformationData ConnectorInformationData, bool IsProviderUser)> GetConnectorInformationByIdForIamUser(Guid connectorId, Guid userCompanyId);
diff --git a/src/portalbackend/PortalBackend.DBAccess/Repositories/IOfferSubscriptionsRepository.cs b/src/portalbackend/PortalBackend.DBAccess/Repositories/IOfferSubscriptionsRepository.cs
index d29a9cb2c1..2b569b793b 100644
--- a/src/portalbackend/PortalBackend.DBAccess/Repositories/IOfferSubscriptionsRepository.cs
+++ b/src/portalbackend/PortalBackend.DBAccess/Repositories/IOfferSubscriptionsRepository.cs
@@ -83,17 +83,6 @@ public interface IOfferSubscriptionsRepository
/// Returns an IAsyncEnumerable of app data
IAsyncEnumerable<(Guid OfferId, Guid SubscriptionId, string? OfferName, string SubscriptionUrl, Guid LeadPictureId, string Provider)> GetAllBusinessAppDataForUserIdAsync(Guid userId);
- ///
- /// Gets the offer details for the offer subscription for a provider company user
- ///
- /// Id of the offer
- /// Id of the subscription
- /// Id of the user company
- /// Offer type
- /// Ids of the user roles the contacts should be in
- /// Returns details for the offer subscription
- Task<(bool Exists, bool IsUserOfCompany, ProviderSubscriptionDetailData? Details)> GetSubscriptionDetailsForProviderAsync(Guid offerId, Guid subscriptionId, Guid userCompanyId, OfferTypeId offerTypeId, IEnumerable userRoleIds);
-
///
/// Gets the app details for the offer subscription for a provider company user
///
@@ -103,7 +92,7 @@ public interface IOfferSubscriptionsRepository
/// Offer type
/// Ids of the user roles the contacts should be in
/// Returns details for the offer subscription
- Task<(bool Exists, bool IsUserOfCompany, AppProviderSubscriptionDetail? Details)> GetAppSubscriptionDetailsForProviderAsync(Guid offerId, Guid subscriptionId, Guid userCompanyId, OfferTypeId offerTypeId, IEnumerable userRoleIds);
+ Task<(bool Exists, bool IsUserOfCompany, OfferProviderSubscriptionDetail? Details)> GetOfferSubscriptionDetailsForProviderAsync(Guid offerId, Guid subscriptionId, Guid userCompanyId, OfferTypeId offerTypeId, IEnumerable userRoleIds);
///
/// Gets the offer details for the offer subscription for a subscribing company user
diff --git a/src/portalbackend/PortalBackend.DBAccess/Repositories/OfferRepository.cs b/src/portalbackend/PortalBackend.DBAccess/Repositories/OfferRepository.cs
index 350e0fdc56..4e1e84ed5d 100644
--- a/src/portalbackend/PortalBackend.DBAccess/Repositories/OfferRepository.cs
+++ b/src/portalbackend/PortalBackend.DBAccess/Repositories/OfferRepository.cs
@@ -68,6 +68,7 @@ public IAsyncEnumerable GetAllActiveAppsAsync(string? languageSho
dbContext.Offers.AsNoTracking()
.AsSplitQuery()
.Where(offer => offer.DateReleased.HasValue && offer.DateReleased <= DateTime.UtcNow && offer.OfferTypeId == OfferTypeId.APP && offer.OfferStatusId == OfferStatusId.ACTIVE)
+ .OrderByDescending(x => x.DateReleased)
.Select(a => new ActiveAppData(
a.Id,
a.Name,
@@ -278,6 +279,7 @@ public void RemoveAppLanguages(IEnumerable<(Guid appId, string languageShortName
offer.ContactEmail,
offer.OfferDescriptions.SingleOrDefault(d => d.LanguageShortName == languageShortName)!.DescriptionLong,
offer.OfferLicenses.FirstOrDefault()!.Licensetext,
+ offer.MarketingUrl,
offer.OfferSubscriptions
.Where(os => os.CompanyId == userCompanyId)
.Select(x => new OfferSubscriptionStateDetailData(x.Id, x.OfferSubscriptionStatusId)),
diff --git a/src/portalbackend/PortalBackend.DBAccess/Repositories/OfferSubscriptionsRepository.cs b/src/portalbackend/PortalBackend.DBAccess/Repositories/OfferSubscriptionsRepository.cs
index e9975890e8..04edf67fec 100644
--- a/src/portalbackend/PortalBackend.DBAccess/Repositories/OfferSubscriptionsRepository.cs
+++ b/src/portalbackend/PortalBackend.DBAccess/Repositories/OfferSubscriptionsRepository.cs
@@ -166,9 +166,10 @@ public OfferSubscription AttachAndModifyOfferSubscription(Guid offerSubscription
///
public IAsyncEnumerable<(Guid OfferId, Guid SubscriptionId, string? OfferName, string SubscriptionUrl, Guid LeadPictureId, string Provider)> GetAllBusinessAppDataForUserIdAsync(Guid userId) =>
dbContext.CompanyUsers.AsNoTracking()
- .Where(user => user.Id == userId)
+ .Where(user => user.Id == userId && user.Identity!.IdentityTypeId == IdentityTypeId.COMPANY_USER)
.SelectMany(user => user.Identity!.Company!.OfferSubscriptions.Where(subscription =>
- subscription.Offer!.UserRoles.Any(ur => ur.IdentityAssignedRoles.Any(cu => cu.IdentityId == user.Id && cu.Identity!.IdentityTypeId == IdentityTypeId.COMPANY_USER)) &&
+ subscription.Offer!.OfferTypeId == OfferTypeId.APP &&
+ subscription.Offer.UserRoles.Any(ur => ur.IdentityAssignedRoles.Any(iar => iar.IdentityId == userId)) &&
subscription.AppSubscriptionDetail!.AppInstance != null &&
subscription.AppSubscriptionDetail.AppSubscriptionUrl != null))
.Select(offerSubscription => new ValueTuple(
@@ -180,33 +181,7 @@ public OfferSubscription AttachAndModifyOfferSubscription(Guid offerSubscription
offerSubscription.Offer!.ProviderCompany!.Name
)).ToAsyncEnumerable();
- ///
- public Task<(bool Exists, bool IsUserOfCompany, ProviderSubscriptionDetailData? Details)> GetSubscriptionDetailsForProviderAsync(Guid offerId, Guid subscriptionId, Guid userCompanyId, OfferTypeId offerTypeId, IEnumerable userRoleIds) =>
- dbContext.OfferSubscriptions
- .AsSplitQuery()
- .Where(os => os.Id == subscriptionId && os.OfferId == offerId && os.Offer!.OfferTypeId == offerTypeId)
- .Select(os => new
- {
- IsProviderCompany = os.Offer!.ProviderCompanyId == userCompanyId,
- Subscription = os,
- Company = os.Company
- })
- .Select(x => new ValueTuple(
- true,
- x.IsProviderCompany,
- x.IsProviderCompany
- ? new ProviderSubscriptionDetailData(
- x.Subscription.OfferId,
- x.Subscription.OfferSubscriptionStatusId,
- x.Subscription.Offer!.Name,
- x.Company!.Name,
- x.Company.BusinessPartnerNumber,
- x.Company.Identities.Where(x => x.IdentityTypeId == IdentityTypeId.COMPANY_USER).Select(i => i.CompanyUser!).Where(cu => cu.Email != null && cu.Identity!.IdentityAssignedRoles.Select(ur => ur.UserRole!).Any(ur => userRoleIds.Contains(ur.Id))).Select(cu => cu.Email!),
- x.Subscription.Technicalusers.Select(sa => new SubscriptionTechnicalUserData(sa.Id, sa.ClientClientId, sa.Identity!.IdentityAssignedRoles.Select(ur => ur.UserRole!).Select(ur => ur.UserRoleText))))
- : null))
- .SingleOrDefaultAsync();
-
- public Task<(bool Exists, bool IsUserOfCompany, AppProviderSubscriptionDetail? Details)> GetAppSubscriptionDetailsForProviderAsync(Guid offerId, Guid subscriptionId, Guid userCompanyId, OfferTypeId offerTypeId, IEnumerable userRoleIds) =>
+ public Task<(bool Exists, bool IsUserOfCompany, OfferProviderSubscriptionDetail? Details)> GetOfferSubscriptionDetailsForProviderAsync(Guid offerId, Guid subscriptionId, Guid userCompanyId, OfferTypeId offerTypeId, IEnumerable userRoleIds) =>
dbContext.OfferSubscriptions
.AsSplitQuery()
.Where(os => os.Id == subscriptionId && os.OfferId == offerId && os.Offer!.OfferTypeId == offerTypeId)
@@ -216,11 +191,11 @@ public OfferSubscription AttachAndModifyOfferSubscription(Guid offerSubscription
Subscription = os,
Company = os.Company
})
- .Select(x => new ValueTuple(
+ .Select(x => new ValueTuple(
true,
x.IsProviderCompany,
x.IsProviderCompany
- ? new AppProviderSubscriptionDetail(
+ ? new OfferProviderSubscriptionDetail(
x.Subscription.OfferId,
x.Subscription.OfferSubscriptionStatusId,
x.Subscription.Offer!.Name,
@@ -228,8 +203,8 @@ public OfferSubscription AttachAndModifyOfferSubscription(Guid offerSubscription
x.Company.BusinessPartnerNumber,
x.Company.Identities.Where(i => i.IdentityTypeId == IdentityTypeId.COMPANY_USER).Select(id => id.CompanyUser!).Where(cu => cu.Email != null && cu.Identity!.IdentityAssignedRoles.Select(ur => ur.UserRole!).Any(ur => userRoleIds.Contains(ur.Id))).Select(cu => cu.Email!),
x.Subscription.Technicalusers.Select(sa => new SubscriptionTechnicalUserData(sa.Id, sa.Name, sa.Identity!.IdentityAssignedRoles.Select(ur => ur.UserRole!).Select(ur => ur.UserRoleText))),
- x.Subscription.AppSubscriptionDetail!.AppSubscriptionUrl,
- x.Subscription.AppSubscriptionDetail!.AppInstance!.IamClient!.ClientClientId,
+ offerTypeId == OfferTypeId.APP ? x.Subscription.AppSubscriptionDetail!.AppSubscriptionUrl : null,
+ offerTypeId == OfferTypeId.APP ? x.Subscription.AppSubscriptionDetail!.AppInstance!.IamClient!.ClientClientId : null,
x.Subscription.Process!.ProcessSteps
.Where(ps => ps.ProcessStepStatusId == ProcessStepStatusId.TODO)
.Select(ps => new ValueTuple(
diff --git a/src/portalbackend/PortalBackend.Migrations/PortalBackend.Migrations.csproj b/src/portalbackend/PortalBackend.Migrations/PortalBackend.Migrations.csproj
index 8b6e3c81d3..d97efb9367 100644
--- a/src/portalbackend/PortalBackend.Migrations/PortalBackend.Migrations.csproj
+++ b/src/portalbackend/PortalBackend.Migrations/PortalBackend.Migrations.csproj
@@ -33,7 +33,7 @@
CS1591
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/src/portalbackend/PortalBackend.PortalEntities/Auditing/EntityTypeBuilderV1Extension.cs b/src/portalbackend/PortalBackend.PortalEntities/Auditing/EntityTypeBuilderV1Extension.cs
index 5c059a2f61..42c9bee168 100644
--- a/src/portalbackend/PortalBackend.PortalEntities/Auditing/EntityTypeBuilderV1Extension.cs
+++ b/src/portalbackend/PortalBackend.PortalEntities/Auditing/EntityTypeBuilderV1Extension.cs
@@ -101,9 +101,9 @@ private static MemberInitExpression CreateAuditEntityExpression(IE
{
var memberBindings = sourceProperties.Select(p =>
CreateMemberAssignment(typeof(TAuditEntity).GetMember(p.Name)[0], Expression.Property(entity, p)))
- .Append(CreateMemberAssignment(typeof(TAuditEntity).GetMember(AuditPropertyV1Names.AuditV1Id.ToString())[0], Expression.New(typeof(Guid))))
+ .Append(CreateMemberAssignment(typeof(TAuditEntity).GetMember(AuditPropertyV1Names.AuditV1Id.ToString())[0], Expression.Call(typeof(Guid).GetMethod(nameof(Guid.NewGuid), BindingFlags.Public | BindingFlags.Static)!)))
.Append(CreateMemberAssignment(typeof(TAuditEntity).GetMember(AuditPropertyV1Names.AuditV1OperationId.ToString())[0], Expression.Constant(auditOperationId)))
- .Append(CreateMemberAssignment(typeof(TAuditEntity).GetMember(AuditPropertyV1Names.AuditV1DateLastChanged.ToString())[0], Expression.New(typeof(DateTimeOffset))));
+ .Append(CreateMemberAssignment(typeof(TAuditEntity).GetMember(AuditPropertyV1Names.AuditV1DateLastChanged.ToString())[0], Expression.MakeMemberAccess(null, typeof(DateTimeOffset).GetProperty(nameof(DateTimeOffset.UtcNow))!)));
if (lastEditorProperty != null)
{
diff --git a/src/portalbackend/PortalBackend.PortalEntities/Entities/CompanyUserAssignedRole.cs b/src/portalbackend/PortalBackend.PortalEntities/Entities/IdentityAssignedRole.cs
similarity index 98%
rename from src/portalbackend/PortalBackend.PortalEntities/Entities/CompanyUserAssignedRole.cs
rename to src/portalbackend/PortalBackend.PortalEntities/Entities/IdentityAssignedRole.cs
index f53873078c..a67199dbca 100644
--- a/src/portalbackend/PortalBackend.PortalEntities/Entities/CompanyUserAssignedRole.cs
+++ b/src/portalbackend/PortalBackend.PortalEntities/Entities/IdentityAssignedRole.cs
@@ -1,5 +1,4 @@
/********************************************************************************
- * Copyright (c) 2022 BMW Group AG
* Copyright (c) 2022 Contributors to the Eclipse Foundation
*
* See the NOTICE file(s) distributed with this work for additional
diff --git a/src/portalbackend/PortalBackend.PortalEntities/Enums/CompanyServiceAccountKindId.cs b/src/portalbackend/PortalBackend.PortalEntities/Enums/TechnicalUserKindId.cs
similarity index 100%
rename from src/portalbackend/PortalBackend.PortalEntities/Enums/CompanyServiceAccountKindId.cs
rename to src/portalbackend/PortalBackend.PortalEntities/Enums/TechnicalUserKindId.cs
diff --git a/src/portalbackend/PortalBackend.PortalEntities/Enums/CompanyServiceAccountTypeId.cs b/src/portalbackend/PortalBackend.PortalEntities/Enums/TechnicalUserTypeId.cs
similarity index 96%
rename from src/portalbackend/PortalBackend.PortalEntities/Enums/CompanyServiceAccountTypeId.cs
rename to src/portalbackend/PortalBackend.PortalEntities/Enums/TechnicalUserTypeId.cs
index 031114d321..723b027088 100644
--- a/src/portalbackend/PortalBackend.PortalEntities/Enums/CompanyServiceAccountTypeId.cs
+++ b/src/portalbackend/PortalBackend.PortalEntities/Enums/TechnicalUserTypeId.cs
@@ -1,5 +1,4 @@
/********************************************************************************
- * Copyright (c) 2022 BMW Group AG
* Copyright (c) 2022 Contributors to the Eclipse Foundation
*
* See the NOTICE file(s) distributed with this work for additional
diff --git a/src/portalbackend/PortalBackend.PortalEntities/PortalBackend.PortalEntities.csproj b/src/portalbackend/PortalBackend.PortalEntities/PortalBackend.PortalEntities.csproj
index b585ab0669..692bac8315 100644
--- a/src/portalbackend/PortalBackend.PortalEntities/PortalBackend.PortalEntities.csproj
+++ b/src/portalbackend/PortalBackend.PortalEntities/PortalBackend.PortalEntities.csproj
@@ -28,11 +28,11 @@
-
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
-
+
diff --git a/src/processes/Processes.ProcessIdentity/Processes.ProcessIdentity.csproj b/src/processes/Processes.ProcessIdentity/Processes.ProcessIdentity.csproj
index d5e64a20b1..bf3547b4d2 100644
--- a/src/processes/Processes.ProcessIdentity/Processes.ProcessIdentity.csproj
+++ b/src/processes/Processes.ProcessIdentity/Processes.ProcessIdentity.csproj
@@ -25,7 +25,7 @@
Org.Eclipse.TractusX.Portal.Backend.Processes.ProcessIdentity
-
+
diff --git a/src/processes/Processes.Worker.Library/ProcessExecutionService.cs b/src/processes/Processes.Worker.Library/ProcessExecutionService.cs
index 03aae8ac07..d2a00a32d0 100644
--- a/src/processes/Processes.Worker.Library/ProcessExecutionService.cs
+++ b/src/processes/Processes.Worker.Library/ProcessExecutionService.cs
@@ -106,6 +106,11 @@ public async Task ExecuteAsync(CancellationToken stoppingToken)
}
_logger.LogInformation("finished processing process {processId}", process.Id);
}
+ catch (SystemException ex) when (ex is not OutOfMemoryException)
+ {
+ _logger.LogCritical(ex, "Critical error : processing process {processId} type {processType}: {message}", process.Id, process.ProcessTypeId, ex.Message);
+ executorRepositories.Clear();
+ }
catch (Exception ex) when (ex is not SystemException)
{
_logger.LogInformation(ex, "error processing process {processId} type {processType}: {message}", process.Id, process.ProcessTypeId, ex.Message);
diff --git a/src/processes/Processes.Worker/Processes.Worker.csproj b/src/processes/Processes.Worker/Processes.Worker.csproj
index 280177612f..01be76f0f2 100644
--- a/src/processes/Processes.Worker/Processes.Worker.csproj
+++ b/src/processes/Processes.Worker/Processes.Worker.csproj
@@ -33,7 +33,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/src/provisioning/Provisioning.DBAccess/Provisioning.DBAccess.csproj b/src/provisioning/Provisioning.DBAccess/Provisioning.DBAccess.csproj
index 8e5a5b7952..29fad7f1b5 100644
--- a/src/provisioning/Provisioning.DBAccess/Provisioning.DBAccess.csproj
+++ b/src/provisioning/Provisioning.DBAccess/Provisioning.DBAccess.csproj
@@ -27,11 +27,11 @@
-
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
-
+
diff --git a/src/provisioning/Provisioning.Migrations/Provisioning.Migrations.csproj b/src/provisioning/Provisioning.Migrations/Provisioning.Migrations.csproj
index 8606aa6fdd..bfaa7efd9f 100644
--- a/src/provisioning/Provisioning.Migrations/Provisioning.Migrations.csproj
+++ b/src/provisioning/Provisioning.Migrations/Provisioning.Migrations.csproj
@@ -32,10 +32,11 @@
Exe
true
+ CS1591
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/src/provisioning/Provisioning.ProvisioningEntities/Provisioning.ProvisioningEntities.csproj b/src/provisioning/Provisioning.ProvisioningEntities/Provisioning.ProvisioningEntities.csproj
index 9e8b1880dc..289ba3d910 100644
--- a/src/provisioning/Provisioning.ProvisioningEntities/Provisioning.ProvisioningEntities.csproj
+++ b/src/provisioning/Provisioning.ProvisioningEntities/Provisioning.ProvisioningEntities.csproj
@@ -28,11 +28,11 @@
-
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
-
+
diff --git a/src/registration/Registration.Service/Registration.Service.csproj b/src/registration/Registration.Service/Registration.Service.csproj
index 08198b877b..7b985d9592 100644
--- a/src/registration/Registration.Service/Registration.Service.csproj
+++ b/src/registration/Registration.Service/Registration.Service.csproj
@@ -44,7 +44,7 @@
-
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/src/web/Web.Identity/Web.Identity.csproj b/src/web/Web.Identity/Web.Identity.csproj
index 8a9ceea340..901fe35a95 100644
--- a/src/web/Web.Identity/Web.Identity.csproj
+++ b/src/web/Web.Identity/Web.Identity.csproj
@@ -27,7 +27,7 @@
-
+
diff --git a/tests/administration/Administration.Service.Tests/BusinessLogic/ConnectorsBusinessLogicTests.cs b/tests/administration/Administration.Service.Tests/BusinessLogic/ConnectorsBusinessLogicTests.cs
index 3058beee70..fd3bb36f3f 100644
--- a/tests/administration/Administration.Service.Tests/BusinessLogic/ConnectorsBusinessLogicTests.cs
+++ b/tests/administration/Administration.Service.Tests/BusinessLogic/ConnectorsBusinessLogicTests.cs
@@ -1261,7 +1261,7 @@ public async Task GetConnectorOfferSubscriptionData_ReturnsList()
#endregion
- #region GetCompanyConnectorData
+ #region GetCompanyConnectorData
[Fact]
public async Task GetCompanyConnectorData_WithInvalid_ThrowsForbiddenException()
@@ -1277,7 +1277,7 @@ public async Task GetCompanyConnectorData_WithInvalid_ThrowsForbiddenException()
// Assert
var ex = await Assert.ThrowsAsync(Act);
- ex.Message.Should().Be(AdministrationConnectorErrors.CONNECTOR_NOT_PROVIDER_COMPANY.ToString());
+ ex.Message.Should().Be(AdministrationConnectorErrors.CONNECTOR_NOT_PROVIDER_COMPANY_NOR_HOST.ToString());
}
[Fact]
@@ -1286,7 +1286,7 @@ public async Task GetCompanyConnectorData_WithNotExisting_ThrowsNotFoundExceptio
// Arrange
var connectorId = Guid.NewGuid();
A.CallTo(() => _connectorsRepository.GetConnectorByIdForCompany(connectorId, _identity.CompanyId))
- .Returns<(ConnectorData, bool)>(default);
+ .Returns<(ConnectorData, bool)>(default);
// Act
async Task Act() => await _logic.GetCompanyConnectorData(connectorId);
@@ -1305,7 +1305,7 @@ public async Task GetCompanyConnectorData_WithValid_ReturnsExpected()
.With(x => x.Name, "Test Connector")
.Create();
A.CallTo(() => _connectorsRepository.GetConnectorByIdForCompany(connectorId, _identity.CompanyId))
- .Returns((connectorData, true));
+ .Returns((connectorData, true));
// Act
var result = await _logic.GetCompanyConnectorData(connectorId);
@@ -1435,7 +1435,7 @@ private void SetupRepositoryMethods()
A.CallTo(() => _companyRepository.GetCompanyBpnAndSelfDescriptionDocumentByIdAsync(A.That.Not.Matches(x => x == ValidCompanyId || x == CompanyIdWithoutSdDocument)))
.Returns((null, null));
A.CallTo(() => _offerSubscriptionRepository.CheckOfferSubscriptionWithOfferProvider(_validOfferSubscriptionId, ValidCompanyId))
- .Returns((true, true, false, OfferSubscriptionStatusId.ACTIVE, Guid.NewGuid(), ProviderCompanyId: HostCompanyId, ValidCompanyBpn));
+ .Returns((true, true, false, OfferSubscriptionStatusId.ACTIVE, Guid.NewGuid(), HostCompanyId, ValidCompanyBpn));
A.CallTo(() => _connectorsRepository.CreateConnector(A._, A._, A._, A?>._))
.Invokes((string name, string location, string connectorUrl, Action? setupOptionalFields) =>
diff --git a/tests/administration/Administration.Service.Tests/BusinessLogic/NetworkBusinessLogicTests.cs b/tests/administration/Administration.Service.Tests/BusinessLogic/NetworkBusinessLogicTests.cs
index 7736ccf8fd..021ded7494 100644
--- a/tests/administration/Administration.Service.Tests/BusinessLogic/NetworkBusinessLogicTests.cs
+++ b/tests/administration/Administration.Service.Tests/BusinessLogic/NetworkBusinessLogicTests.cs
@@ -363,6 +363,7 @@ public async Task HandlePartnerRegistration_WithUserCreationThrowsException_Thro
var data = new PartnerRegistrationData(
Guid.NewGuid().ToString(),
"Test N2N",
+ null,
Bpn,
"Munich",
"Street",
@@ -398,6 +399,7 @@ public async Task HandlePartnerRegistration_WithSingleIdpWithoutAlias_ThrowsServ
var data = new PartnerRegistrationData(
Guid.NewGuid().ToString(),
"Test N2N",
+ "N2N",
Bpn,
"Munich",
"Street",
@@ -438,6 +440,7 @@ public async Task HandlePartnerRegistration_WithIdpNotSetAndOnlyOneIdp_CallsExpe
var data = new PartnerRegistrationData(
Guid.NewGuid().ToString(),
"Test N2N",
+ null,
Bpn,
"Munich",
"Street",
@@ -522,6 +525,7 @@ public async Task HandlePartnerRegistration_WithIdpNotSetAndOnlyOneIdp_CallsExpe
companies.Should().ContainSingle()
.Which.Should().Match(x =>
x.Name == data.Name &&
+ x.Shortname == data.ShortName &&
x.CompanyStatusId == CompanyStatusId.PENDING);
processes.Should().ContainSingle()
.Which.Should().Match(
@@ -572,6 +576,7 @@ public async Task HandlePartnerRegistration_WithValidData_CallsExpected(string?
var data = new PartnerRegistrationData(
Guid.NewGuid().ToString(),
"Test N2N",
+ "N2N",
businessPartnerNumber,
"Munich",
"Street",
@@ -661,6 +666,7 @@ public async Task HandlePartnerRegistration_WithValidData_CallsExpected(string?
companies.Should().ContainSingle()
.Which.Should().Match(x =>
x.Name == data.Name &&
+ x.Shortname == data.ShortName &&
x.CompanyStatusId == CompanyStatusId.PENDING);
processes.Should().ContainSingle()
.Which.Should().Match(x =>
diff --git a/tests/endtoend/CreateAppScenario/CreateNewTestAppScenario.cs b/tests/endtoend/CreateAppScenario/CreateNewTestAppScenario.cs
index c380c48649..90bad2d926 100644
--- a/tests/endtoend/CreateAppScenario/CreateNewTestAppScenario.cs
+++ b/tests/endtoend/CreateAppScenario/CreateNewTestAppScenario.cs
@@ -32,7 +32,7 @@
[assembly: CollectionBehavior(DisableTestParallelization = true)]
[assembly: TestCollectionOrderer(
ordererTypeName: "Org.Eclipse.TractusX.Portal.Backend.EndToEnd.Tests.DisplayNameOrderer",
- ordererAssemblyName: "EndToEnd.Tests")]
+ ordererAssemblyName: "Org.Eclipse.TractusX.Portal.Backend.EndToEnd.Tests")]
namespace Org.Eclipse.TractusX.Portal.Backend.EndToEnd.Tests;
diff --git a/tests/endtoend/EndToEnd.Tests.csproj b/tests/endtoend/EndToEnd.Tests.csproj
index 590ee4ed27..dd75a81693 100644
--- a/tests/endtoend/EndToEnd.Tests.csproj
+++ b/tests/endtoend/EndToEnd.Tests.csproj
@@ -35,10 +35,10 @@
-
+
-
-
+
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/tests/endtoend/PortalHealthCheck/BaseDataLoadCheck.cs b/tests/endtoend/PortalHealthCheck/BaseDataLoadCheck.cs
index 73f5a4a9d1..cf86614fa5 100644
--- a/tests/endtoend/PortalHealthCheck/BaseDataLoadCheck.cs
+++ b/tests/endtoend/PortalHealthCheck/BaseDataLoadCheck.cs
@@ -26,7 +26,7 @@
namespace Org.Eclipse.TractusX.Portal.Backend.EndToEnd.Tests;
[Trait("Category", "PortalHC")]
-[TestCaseOrderer("Org.Eclipse.TractusX.Portal.Backend.EndToEnd.Tests.AlphabeticalOrderer", "EndToEnd.Tests")]
+[TestCaseOrderer("Org.Eclipse.TractusX.Portal.Backend.EndToEnd.Tests.AlphabeticalOrderer", "Org.Eclipse.TractusX.Portal.Backend.EndToEnd.Tests")]
[Collection("PortalHC")]
public class BaseDataLoadCheck : EndToEndTestBase, IAsyncLifetime
{
diff --git a/tests/endtoend/PortalHealthCheck/RegistrationHealthCheck.cs b/tests/endtoend/PortalHealthCheck/RegistrationHealthCheck.cs
index 4e63b76f4f..2013c9084b 100644
--- a/tests/endtoend/PortalHealthCheck/RegistrationHealthCheck.cs
+++ b/tests/endtoend/PortalHealthCheck/RegistrationHealthCheck.cs
@@ -25,7 +25,7 @@
namespace Org.Eclipse.TractusX.Portal.Backend.EndToEnd.Tests;
[Trait("Category", "PortalHC")]
-[TestCaseOrderer("Org.Eclipse.TractusX.Portal.Backend.EndToEnd.Tests.AlphabeticalOrderer", "EndToEnd.Tests")]
+[TestCaseOrderer("Org.Eclipse.TractusX.Portal.Backend.EndToEnd.Tests.AlphabeticalOrderer", "Org.Eclipse.TractusX.Portal.Backend.EndToEnd.Tests")]
[Collection("PortalHC")]
public class RegistrationHealthCheck : EndToEndTestBase, IAsyncLifetime
{
diff --git a/tests/endtoend/RegistrationScenarios/RegistrationScenarios.cs b/tests/endtoend/RegistrationScenarios/RegistrationScenarios.cs
index bc92a2e814..3ea7b34cc2 100644
--- a/tests/endtoend/RegistrationScenarios/RegistrationScenarios.cs
+++ b/tests/endtoend/RegistrationScenarios/RegistrationScenarios.cs
@@ -26,7 +26,7 @@ namespace Org.Eclipse.TractusX.Portal.Backend.EndToEnd.Tests;
[Trait("Category", "Registration")]
[TestCaseOrderer("Org.Eclipse.TractusX.Portal.Backend.EndToEnd.Tests.AlphabeticalOrderer",
- "EndToEnd.Tests")]
+ "Org.Eclipse.TractusX.Portal.Backend.EndToEnd.Tests")]
[Collection("Registration")]
public class RegistrationScenarios : EndToEndTestBase
{
diff --git a/tests/endtoend/ServiceAccountCUDScenarios/ServiceAccountCUDScenarios.cs b/tests/endtoend/ServiceAccountCUDScenarios/ServiceAccountCUDScenarios.cs
index 9502dd3143..32c49468be 100644
--- a/tests/endtoend/ServiceAccountCUDScenarios/ServiceAccountCUDScenarios.cs
+++ b/tests/endtoend/ServiceAccountCUDScenarios/ServiceAccountCUDScenarios.cs
@@ -28,7 +28,7 @@ namespace Org.Eclipse.TractusX.Portal.Backend.EndToEnd.Tests;
[Trait("Category", "Portal")]
[TestCaseOrderer("Org.Eclipse.TractusX.Portal.Backend.EndToEnd.Tests.AlphabeticalOrderer",
- "EndToEnd.Tests")]
+ "Org.Eclipse.TractusX.Portal.Backend.EndToEnd.Tests")]
[Collection("Portal")]
public class ServiceAccountCUDScenarios : EndToEndTestBase
{
diff --git a/tests/endtoend/xunit.runner.json b/tests/endtoend/xunit.runner.json
index 74d96d6192..0d5b6bf018 100644
--- a/tests/endtoend/xunit.runner.json
+++ b/tests/endtoend/xunit.runner.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://xunit.net/schema/current/xunit.runner.schema.json",
"methodDisplay": "method",
"methodDisplayOptions": "replaceUnderscoreWithSpace"
}
\ No newline at end of file
diff --git a/tests/externalsystems/Bpdm.Library/Bpdm.Library.csproj b/tests/externalsystems/Bpdm.Library/Bpdm.Library.csproj
index c5e88af4ce..759c83d80d 100644
--- a/tests/externalsystems/Bpdm.Library/Bpdm.Library.csproj
+++ b/tests/externalsystems/Bpdm.Library/Bpdm.Library.csproj
@@ -28,7 +28,7 @@
-
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/tests/externalsystems/BpnDidResolver.Library.Tests/BpnDidResolver.Library.Tests.csproj b/tests/externalsystems/BpnDidResolver.Library.Tests/BpnDidResolver.Library.Tests.csproj
index d8003dedc9..5d1ed67839 100644
--- a/tests/externalsystems/BpnDidResolver.Library.Tests/BpnDidResolver.Library.Tests.csproj
+++ b/tests/externalsystems/BpnDidResolver.Library.Tests/BpnDidResolver.Library.Tests.csproj
@@ -28,7 +28,7 @@
-
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/tests/externalsystems/Clearinghouse.Library.Tests/Clearinghouse.Library.Tests.csproj b/tests/externalsystems/Clearinghouse.Library.Tests/Clearinghouse.Library.Tests.csproj
index 05a83fa116..72846a5c50 100644
--- a/tests/externalsystems/Clearinghouse.Library.Tests/Clearinghouse.Library.Tests.csproj
+++ b/tests/externalsystems/Clearinghouse.Library.Tests/Clearinghouse.Library.Tests.csproj
@@ -28,7 +28,7 @@
-
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/tests/externalsystems/Custodian.Library.Tests/Custodian.Library.Tests.csproj b/tests/externalsystems/Custodian.Library.Tests/Custodian.Library.Tests.csproj
index 61a848dfee..31eba4cddc 100644
--- a/tests/externalsystems/Custodian.Library.Tests/Custodian.Library.Tests.csproj
+++ b/tests/externalsystems/Custodian.Library.Tests/Custodian.Library.Tests.csproj
@@ -28,7 +28,7 @@
-
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/tests/externalsystems/Dim.Library.Tests/Dim.Library.Tests.csproj b/tests/externalsystems/Dim.Library.Tests/Dim.Library.Tests.csproj
index e6bcd8e268..93e725b7d8 100644
--- a/tests/externalsystems/Dim.Library.Tests/Dim.Library.Tests.csproj
+++ b/tests/externalsystems/Dim.Library.Tests/Dim.Library.Tests.csproj
@@ -28,7 +28,7 @@
-
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/tests/externalsystems/ExternalSystems.Provisioning.Library.Tests/ExternalSystems.Provisioning.Library.Tests.csproj b/tests/externalsystems/ExternalSystems.Provisioning.Library.Tests/ExternalSystems.Provisioning.Library.Tests.csproj
index 09216a6dad..ddca18dd5f 100644
--- a/tests/externalsystems/ExternalSystems.Provisioning.Library.Tests/ExternalSystems.Provisioning.Library.Tests.csproj
+++ b/tests/externalsystems/ExternalSystems.Provisioning.Library.Tests/ExternalSystems.Provisioning.Library.Tests.csproj
@@ -27,8 +27,8 @@
-
-
+
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/tests/externalsystems/IssuerComponent.Library.Tests/IssuerComponent.Library.Tests.csproj b/tests/externalsystems/IssuerComponent.Library.Tests/IssuerComponent.Library.Tests.csproj
index 74ab07be5e..d423a25a15 100644
--- a/tests/externalsystems/IssuerComponent.Library.Tests/IssuerComponent.Library.Tests.csproj
+++ b/tests/externalsystems/IssuerComponent.Library.Tests/IssuerComponent.Library.Tests.csproj
@@ -29,8 +29,8 @@
-
-
+
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/tests/externalsystems/OfferProvider.Library/OfferProvider.Library.csproj b/tests/externalsystems/OfferProvider.Library/OfferProvider.Library.csproj
index 06f2fc49b8..7897915c82 100644
--- a/tests/externalsystems/OfferProvider.Library/OfferProvider.Library.csproj
+++ b/tests/externalsystems/OfferProvider.Library/OfferProvider.Library.csproj
@@ -29,8 +29,8 @@
-
-
+
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/tests/externalsystems/OnboardingServiceProvider.Library.Tests/OnboardingServiceProvider.Library.Tests.csproj b/tests/externalsystems/OnboardingServiceProvider.Library.Tests/OnboardingServiceProvider.Library.Tests.csproj
index 3a3b7d818e..5864e24a76 100644
--- a/tests/externalsystems/OnboardingServiceProvider.Library.Tests/OnboardingServiceProvider.Library.Tests.csproj
+++ b/tests/externalsystems/OnboardingServiceProvider.Library.Tests/OnboardingServiceProvider.Library.Tests.csproj
@@ -29,8 +29,8 @@
-
-
+
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/tests/externalsystems/SdFactory.Library.Tests/SdFactory.Library.Tests.csproj b/tests/externalsystems/SdFactory.Library.Tests/SdFactory.Library.Tests.csproj
index ec80689d4c..66cbbd63e3 100644
--- a/tests/externalsystems/SdFactory.Library.Tests/SdFactory.Library.Tests.csproj
+++ b/tests/externalsystems/SdFactory.Library.Tests/SdFactory.Library.Tests.csproj
@@ -28,8 +28,8 @@
-
-
+
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/tests/framework/Framework.Async.Tests/Framework.Async.Tests.csproj b/tests/framework/Framework.Async.Tests/Framework.Async.Tests.csproj
index dc09eb0e1e..63cc7ae342 100644
--- a/tests/framework/Framework.Async.Tests/Framework.Async.Tests.csproj
+++ b/tests/framework/Framework.Async.Tests/Framework.Async.Tests.csproj
@@ -33,8 +33,8 @@
runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
+
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/tests/framework/Framework.DBAccess.Tests/Framework.DBAccess.Tests.csproj b/tests/framework/Framework.DBAccess.Tests/Framework.DBAccess.Tests.csproj
index 0e117731a5..2467b02c82 100644
--- a/tests/framework/Framework.DBAccess.Tests/Framework.DBAccess.Tests.csproj
+++ b/tests/framework/Framework.DBAccess.Tests/Framework.DBAccess.Tests.csproj
@@ -33,8 +33,8 @@
runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
+
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/tests/framework/Framework.ErrorHandling.Web.Tests/Framework.ErrorHandling.Web.Tests.csproj b/tests/framework/Framework.ErrorHandling.Web.Tests/Framework.ErrorHandling.Web.Tests.csproj
index b0efa22972..2c4aa94c59 100644
--- a/tests/framework/Framework.ErrorHandling.Web.Tests/Framework.ErrorHandling.Web.Tests.csproj
+++ b/tests/framework/Framework.ErrorHandling.Web.Tests/Framework.ErrorHandling.Web.Tests.csproj
@@ -34,8 +34,8 @@
runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
+
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/tests/framework/Framework.IO.Tests/AsyncEnumerableStringStreamTest.cs b/tests/framework/Framework.IO.Tests/AsyncEnumerableStringStreamTest.cs
index e298c21ac3..03032db7c5 100644
--- a/tests/framework/Framework.IO.Tests/AsyncEnumerableStringStreamTest.cs
+++ b/tests/framework/Framework.IO.Tests/AsyncEnumerableStringStreamTest.cs
@@ -54,7 +54,7 @@ public void TestMetadata()
}
[Fact]
- public async void TestAsyncCopyToSuccess()
+ public async Task TestAsyncCopyToSuccess()
{
using var expected = GetExpected();
diff --git a/tests/framework/Framework.IO.Tests/CancelableStreamTest.cs b/tests/framework/Framework.IO.Tests/CancelableStreamTest.cs
index 2d6f2fd8c6..ab0b190bcf 100644
--- a/tests/framework/Framework.IO.Tests/CancelableStreamTest.cs
+++ b/tests/framework/Framework.IO.Tests/CancelableStreamTest.cs
@@ -21,7 +21,6 @@ namespace Org.Eclipse.TractusX.Portal.Backend.Framework.IO.Tests;
public class CancelableStreamTest
{
- private readonly IFixture _fixture;
private readonly Stream _stream;
private readonly Memory _memory;
private readonly int _numBytesFirstRead;
@@ -32,24 +31,24 @@ public class CancelableStreamTest
public CancelableStreamTest()
{
- _fixture = new Fixture().Customize(new AutoFakeItEasyCustomization { ConfigureMembers = true });
- _fixture.Behaviors.OfType().ToList()
- .ForEach(b => _fixture.Behaviors.Remove(b));
- _fixture.Behaviors.Add(new OmitOnRecursionBehavior());
+ var fixture = new Fixture().Customize(new AutoFakeItEasyCustomization { ConfigureMembers = true });
+ fixture.Behaviors.OfType().ToList()
+ .ForEach(b => fixture.Behaviors.Remove(b));
+ fixture.Behaviors.Add(new OmitOnRecursionBehavior());
_stream = A.Fake();
- _memory = _fixture.Create>();
- _numBytesFirstRead = _fixture.Create();
- _numBytesSecondRead = _fixture.Create();
+ _memory = fixture.Create>();
+ _numBytesFirstRead = fixture.Create();
+ _numBytesSecondRead = fixture.Create();
_getNumBytes = A.Fake>();
- _sourceTokenCanceledException = _fixture.Create();
- _otherTokenCanceledException = _fixture.Create();
+ _sourceTokenCanceledException = fixture.Create();
+ _otherTokenCanceledException = fixture.Create();
}
#region Tests
[Fact]
- public async void TestReadAsyncNoOtherTokenSuccess()
+ public async Task TestReadAsyncNoOtherTokenSuccess()
{
var (sut, source) = SetupForRead();
var firstResult = await sut.ReadAsync(_memory);
@@ -60,7 +59,7 @@ public async void TestReadAsyncNoOtherTokenSuccess()
}
[Fact]
- public async void TestReadAsyncWithUncancelledOtherTokenSuccess()
+ public async Task TestReadAsyncWithUncancelledOtherTokenSuccess()
{
var (sut, source) = SetupForRead();
using var firstSource = new CancellationTokenSource();
@@ -73,7 +72,7 @@ public async void TestReadAsyncWithUncancelledOtherTokenSuccess()
}
[Fact]
- public async void TestReadAsyncSourceCancelledWithUncancelledOtherTokenSuccess()
+ public async Task TestReadAsyncSourceCancelledWithUncancelledOtherTokenSuccess()
{
var (sut, source) = SetupForRead();
var firstResult = await sut.ReadAsync(_memory);
@@ -86,7 +85,7 @@ public async void TestReadAsyncSourceCancelledWithUncancelledOtherTokenSuccess()
}
[Fact]
- public async void TestReadAsyncWithCancelledOtherTokenThrows()
+ public async Task TestReadAsyncWithCancelledOtherTokenThrows()
{
var (sut, source) = SetupForRead();
var firstResult = await sut.ReadAsync(_memory);
@@ -100,7 +99,7 @@ public async void TestReadAsyncWithCancelledOtherTokenThrows()
}
[Fact]
- public async void TestReadAsyncSourceCancelledThrows()
+ public async Task TestReadAsyncSourceCancelledThrows()
{
var (sut, source) = SetupForRead();
var firstResult = await sut.ReadAsync(_memory);
diff --git a/tests/framework/Framework.IO.Tests/Framework.IO.Tests.csproj b/tests/framework/Framework.IO.Tests/Framework.IO.Tests.csproj
index 9ffecccf6b..232e356f8b 100644
--- a/tests/framework/Framework.IO.Tests/Framework.IO.Tests.csproj
+++ b/tests/framework/Framework.IO.Tests/Framework.IO.Tests.csproj
@@ -34,8 +34,8 @@
-
-
+
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/tests/framework/Framework.Linq.Tests/Framework.Linq.Tests.csproj b/tests/framework/Framework.Linq.Tests/Framework.Linq.Tests.csproj
index 64705e7199..57f43f0d8f 100644
--- a/tests/framework/Framework.Linq.Tests/Framework.Linq.Tests.csproj
+++ b/tests/framework/Framework.Linq.Tests/Framework.Linq.Tests.csproj
@@ -28,8 +28,8 @@
-
-
+
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/tests/framework/Framework.Logging.Tests/Framework.Logging.Tests.csproj b/tests/framework/Framework.Logging.Tests/Framework.Logging.Tests.csproj
index e34fbc46a9..23d0f084f4 100644
--- a/tests/framework/Framework.Logging.Tests/Framework.Logging.Tests.csproj
+++ b/tests/framework/Framework.Logging.Tests/Framework.Logging.Tests.csproj
@@ -33,8 +33,8 @@
runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
+
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/tests/framework/Framework.Models.Tests/Framework.Models.Tests.csproj b/tests/framework/Framework.Models.Tests/Framework.Models.Tests.csproj
index ad0890e4b1..1153bb12c5 100644
--- a/tests/framework/Framework.Models.Tests/Framework.Models.Tests.csproj
+++ b/tests/framework/Framework.Models.Tests/Framework.Models.Tests.csproj
@@ -30,8 +30,8 @@
-
-
+
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/tests/framework/Framework.Tests.Shared/Framework.Tests.Shared.csproj b/tests/framework/Framework.Tests.Shared/Framework.Tests.Shared.csproj
index 5d301b7bde..57d980dbd9 100644
--- a/tests/framework/Framework.Tests.Shared/Framework.Tests.Shared.csproj
+++ b/tests/framework/Framework.Tests.Shared/Framework.Tests.Shared.csproj
@@ -32,13 +32,13 @@
-
-
+
+
-
-
+
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/tests/framework/Framework.Token.Tests/Framework.Token.Tests.csproj b/tests/framework/Framework.Token.Tests/Framework.Token.Tests.csproj
index c90e20b38b..4fab94692d 100644
--- a/tests/framework/Framework.Token.Tests/Framework.Token.Tests.csproj
+++ b/tests/framework/Framework.Token.Tests/Framework.Token.Tests.csproj
@@ -26,8 +26,8 @@
-
-
+
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/tests/framework/Framework.Web.Tests/Framework.Web.Tests.csproj b/tests/framework/Framework.Web.Tests/Framework.Web.Tests.csproj
index 8b9c05758f..5c9c57ffc5 100644
--- a/tests/framework/Framework.Web.Tests/Framework.Web.Tests.csproj
+++ b/tests/framework/Framework.Web.Tests/Framework.Web.Tests.csproj
@@ -27,10 +27,10 @@
false
-
+
-
-
+
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/tests/keycloak/Keycloak.Authentication.Tests/Keycloak.Authentication.Tests.csproj b/tests/keycloak/Keycloak.Authentication.Tests/Keycloak.Authentication.Tests.csproj
index 9b4094836a..eb0122f5ae 100644
--- a/tests/keycloak/Keycloak.Authentication.Tests/Keycloak.Authentication.Tests.csproj
+++ b/tests/keycloak/Keycloak.Authentication.Tests/Keycloak.Authentication.Tests.csproj
@@ -29,8 +29,8 @@
-
-
+
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/tests/keycloak/Keycloak.Seeding.Tests/Keycloak.Seeding.Tests.csproj b/tests/keycloak/Keycloak.Seeding.Tests/Keycloak.Seeding.Tests.csproj
index 07f07bae1d..c6cdd92663 100644
--- a/tests/keycloak/Keycloak.Seeding.Tests/Keycloak.Seeding.Tests.csproj
+++ b/tests/keycloak/Keycloak.Seeding.Tests/Keycloak.Seeding.Tests.csproj
@@ -28,8 +28,8 @@
-
-
+
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/tests/maintenance/Maintenance.App.Tests/Maintenance.App.Tests.csproj b/tests/maintenance/Maintenance.App.Tests/Maintenance.App.Tests.csproj
index ce781dc3ec..d00d1dac5c 100644
--- a/tests/maintenance/Maintenance.App.Tests/Maintenance.App.Tests.csproj
+++ b/tests/maintenance/Maintenance.App.Tests/Maintenance.App.Tests.csproj
@@ -30,10 +30,10 @@
-
-
-
-
+
+
+
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/tests/marketplace/Apps.Service.Tests/Apps.Service.Tests.csproj b/tests/marketplace/Apps.Service.Tests/Apps.Service.Tests.csproj
index ce7a3567a0..3082c3d08c 100644
--- a/tests/marketplace/Apps.Service.Tests/Apps.Service.Tests.csproj
+++ b/tests/marketplace/Apps.Service.Tests/Apps.Service.Tests.csproj
@@ -34,7 +34,7 @@
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/tests/marketplace/Apps.Service.Tests/BusinessLogic/AppBusinessLogicTests.cs b/tests/marketplace/Apps.Service.Tests/BusinessLogic/AppBusinessLogicTests.cs
index cdd5c1807a..cd3d661409 100644
--- a/tests/marketplace/Apps.Service.Tests/BusinessLogic/AppBusinessLogicTests.cs
+++ b/tests/marketplace/Apps.Service.Tests/BusinessLogic/AppBusinessLogicTests.cs
@@ -495,7 +495,7 @@ public async Task GetSubscriptionDetailForProvider_ReturnsExpected()
// Arrange
var appId = Guid.NewGuid();
var subscriptionId = Guid.NewGuid();
- var data = _fixture.Create();
+ var data = _fixture.Create();
var settings = new AppsSettings
{
CompanyAdminRoles = new[]
@@ -503,7 +503,7 @@ public async Task GetSubscriptionDetailForProvider_ReturnsExpected()
new UserRoleConfig("ClientTest", new[] {"Test"})
}
};
- A.CallTo(() => _offerService.GetAppSubscriptionDetailsForProviderAsync(A._, A._, A._, A>._, A._))
+ A.CallTo(() => _offerService.GetOfferSubscriptionDetailsForProviderAsync(A._, A._, A._, A>._, A._))
.Returns(data);
var sut = new AppsBusinessLogic(null!, null!, _offerService, null!, Options.Create(settings), _identityService);
@@ -512,7 +512,7 @@ public async Task GetSubscriptionDetailForProvider_ReturnsExpected()
// Assert
result.Should().Be(data);
- A.CallTo(() => _offerService.GetAppSubscriptionDetailsForProviderAsync(appId, subscriptionId, OfferTypeId.APP, A>._, A._))
+ A.CallTo(() => _offerService.GetOfferSubscriptionDetailsForProviderAsync(appId, subscriptionId, OfferTypeId.APP, A>._, A._))
.MustHaveHappenedOnceExactly();
}
diff --git a/tests/marketplace/Apps.Service.Tests/Controllers/AppsControllerTests.cs b/tests/marketplace/Apps.Service.Tests/Controllers/AppsControllerTests.cs
index f998dbe29d..a79f72de3d 100644
--- a/tests/marketplace/Apps.Service.Tests/Controllers/AppsControllerTests.cs
+++ b/tests/marketplace/Apps.Service.Tests/Controllers/AppsControllerTests.cs
@@ -379,7 +379,7 @@ public async Task GetSubscriptionDetailForProvider_ReturnsExpected()
// Arrange
var appId = _fixture.Create();
var subscriptionId = _fixture.Create();
- var data = _fixture.Create();
+ var data = _fixture.Create();
A.CallTo(() => _logic.GetSubscriptionDetailForProvider(appId, subscriptionId))
.Returns(data);
diff --git a/tests/marketplace/Offer.Library.Web.Tests/Offer.Library.Web.Tests.csproj b/tests/marketplace/Offer.Library.Web.Tests/Offer.Library.Web.Tests.csproj
index 4bdf6687a8..a6ff37dfa1 100644
--- a/tests/marketplace/Offer.Library.Web.Tests/Offer.Library.Web.Tests.csproj
+++ b/tests/marketplace/Offer.Library.Web.Tests/Offer.Library.Web.Tests.csproj
@@ -28,8 +28,8 @@
-
-
+
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/tests/marketplace/Offers.Library.Tests/Offers.Library.Tests.csproj b/tests/marketplace/Offers.Library.Tests/Offers.Library.Tests.csproj
index 4009b7d709..52325c0c73 100644
--- a/tests/marketplace/Offers.Library.Tests/Offers.Library.Tests.csproj
+++ b/tests/marketplace/Offers.Library.Tests/Offers.Library.Tests.csproj
@@ -28,8 +28,8 @@
-
-
+
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/tests/marketplace/Offers.Library.Tests/Service/OfferServiceTests.cs b/tests/marketplace/Offers.Library.Tests/Service/OfferServiceTests.cs
index c4abeaf861..72f32ed745 100644
--- a/tests/marketplace/Offers.Library.Tests/Service/OfferServiceTests.cs
+++ b/tests/marketplace/Offers.Library.Tests/Service/OfferServiceTests.cs
@@ -2090,117 +2090,10 @@ public async Task UpdateTechnicalUserProfiles_WithoutTechnicalUserProfileAndUser
}
#endregion
- #region GetSubscriptionDetailForProvider
+ #region GetOfferSubscriptionDetailForProvider
[Fact]
- public async Task GetSubscriptionDetailForProvider_WithNotMatchingUserRoles_ThrowsConfigurationException()
- {
- // Arrange
- var offerId = Guid.NewGuid();
- var subscriptionId = Guid.NewGuid();
- var companyAdminRoles = _fixture.CreateMany().ToImmutableArray();
-
- SetupGetSubscriptionDetailForProvider();
-
- // Act
- async Task Act() => await _sut.GetSubscriptionDetailsForProviderAsync(offerId, subscriptionId, OfferTypeId.SERVICE, companyAdminRoles);
-
- // Assert
- var ex = await Assert.ThrowsAsync(Act);
- ex.Message.Should().Contain("invalid configuration, at least one of the configured roles does not exist in the database:");
- A.CallTo(() => _userRolesRepository.GetUserRoleIdsUntrackedAsync(A>.That.IsSameSequenceAs(companyAdminRoles)))
- .MustHaveHappenedOnceExactly();
- A.CallTo(() => _offerSubscriptionsRepository.GetSubscriptionDetailsForProviderAsync(A._, A._, A._, A._, A>._))
- .MustNotHaveHappened();
- }
-
- [Fact]
- public async Task GetSubscriptionDetailForProvider_WithNotExistingOffer_ThrowsNotFoundException()
- {
- // Arrange
- var serviceId = Guid.NewGuid();
- var subscriptionId = Guid.NewGuid();
- var companyAdminRoles = new[]
- {
- new UserRoleConfig("ClientTest", new[] {"Test"})
- };
- SetupGetSubscriptionDetailForProvider();
-
- A.CallTo(() => _offerSubscriptionsRepository.GetSubscriptionDetailsForProviderAsync(A._, A._, A._, A._, A>._))
- .Returns<(bool, bool, ProviderSubscriptionDetailData?)>(default);
-
- // Act
- async Task Act() => await _sut.GetSubscriptionDetailsForProviderAsync(serviceId, subscriptionId, OfferTypeId.SERVICE, companyAdminRoles);
-
- // Assert
- var ex = await Assert.ThrowsAsync(Act);
- ex.Message.Should().Contain($"subscription {subscriptionId} for offer {serviceId} of type {OfferTypeId.SERVICE} does not exist");
- A.CallTo(() => _userRolesRepository.GetUserRoleIdsUntrackedAsync(A>.That.IsSameSequenceAs(companyAdminRoles)))
- .MustHaveHappenedOnceExactly();
- A.CallTo(() => _offerSubscriptionsRepository.GetSubscriptionDetailsForProviderAsync(serviceId, subscriptionId, _companyId, OfferTypeId.SERVICE, A>.That.IsSameSequenceAs(new[] { _validUserRoleId })))
- .MustHaveHappenedOnceExactly();
- }
-
- [Fact]
- public async Task GetSubscriptionDetailForProvider_WithUserNotInProvidingCompany_ThrowsForbiddenException()
- {
- // Arrange
- var serviceId = Guid.NewGuid();
- var subscriptionId = Guid.NewGuid();
- var companyAdminRoles = new[]
- {
- new UserRoleConfig("ClientTest", new[] {"Test"})
- };
- SetupGetSubscriptionDetailForProvider();
-
- A.CallTo(() => _offerSubscriptionsRepository.GetSubscriptionDetailsForProviderAsync(A._, A._, A._, A._, A>._))
- .Returns((true, false, _fixture.Create()));
-
- // Act
- async Task Act() => await _sut.GetSubscriptionDetailsForProviderAsync(serviceId, subscriptionId, OfferTypeId.SERVICE, companyAdminRoles);
-
- // Assert
- var ex = await Assert.ThrowsAsync(Act);
- ex.Message.Should().Contain($"Company {_companyId} is not part of the Provider company");
- A.CallTo(() => _userRolesRepository.GetUserRoleIdsUntrackedAsync(A>.That.IsSameSequenceAs(companyAdminRoles)))
- .MustHaveHappenedOnceExactly();
- A.CallTo(() => _offerSubscriptionsRepository.GetSubscriptionDetailsForProviderAsync(serviceId, subscriptionId, _companyId, OfferTypeId.SERVICE, A>.That.IsSameSequenceAs(new[] { _validUserRoleId })))
- .MustHaveHappenedOnceExactly();
- }
-
- [Fact]
- public async Task GetSubscriptionDetailForProvider_WithValidData_ReturnsExpected()
- {
- // Arrange
- var serviceId = Guid.NewGuid();
- var subscriptionId = Guid.NewGuid();
- var companyAdminRoles = new[]
- {
- new UserRoleConfig("ClientTest", new[] {"Test"})
- };
- SetupGetSubscriptionDetailForProvider();
-
- var data = _fixture.Create();
-
- A.CallTo(() => _offerSubscriptionsRepository.GetSubscriptionDetailsForProviderAsync(A._, A._, A._, A._, A>._))
- .Returns((true, true, data));
- // Act
- var result = await _sut.GetSubscriptionDetailsForProviderAsync(serviceId, subscriptionId, OfferTypeId.SERVICE, companyAdminRoles);
-
- // Assert
- result.Should().Be(data);
- A.CallTo(() => _userRolesRepository.GetUserRoleIdsUntrackedAsync(A>.That.IsSameSequenceAs(companyAdminRoles)))
- .MustHaveHappenedOnceExactly();
- A.CallTo(() => _offerSubscriptionsRepository.GetSubscriptionDetailsForProviderAsync(serviceId, subscriptionId, _companyId, OfferTypeId.SERVICE, A>.That.IsSameSequenceAs(new[] { _validUserRoleId })))
- .MustHaveHappenedOnceExactly();
- }
-
- #endregion
-
- #region GetAppSubscriptionDetailForProvider
-
- [Fact]
- public async Task GetAppSubscriptionDetailForProvider_WithNotMatchingUserRoles_ThrowsConfigurationException()
+ public async Task GetOfferSubscriptionDetailForProvider_WithNotMatchingUserRoles_ThrowsConfigurationException()
{
// Arrange
var offerId = Guid.NewGuid();
@@ -2211,19 +2104,19 @@ public async Task GetAppSubscriptionDetailForProvider_WithNotMatchingUserRoles_T
SetupGetSubscriptionDetailForProvider();
// Act
- async Task Act() => await _sut.GetAppSubscriptionDetailsForProviderAsync(offerId, subscriptionId, OfferTypeId.APP, companyAdminRoles, walletData);
+ async Task Act() => await _sut.GetOfferSubscriptionDetailsForProviderAsync(offerId, subscriptionId, OfferTypeId.APP, companyAdminRoles, walletData);
// Assert
var ex = await Assert.ThrowsAsync(Act);
ex.Message.Should().Contain("invalid configuration, at least one of the configured roles does not exist in the database:");
A.CallTo(() => _userRolesRepository.GetUserRoleIdsUntrackedAsync(A>.That.IsSameSequenceAs(companyAdminRoles)))
.MustHaveHappenedOnceExactly();
- A.CallTo(() => _offerSubscriptionsRepository.GetSubscriptionDetailsForProviderAsync(A._, A._, A._, A._, A>._))
+ A.CallTo(() => _offerSubscriptionsRepository.GetOfferSubscriptionDetailsForProviderAsync(A._, A._, A._, A._, A>._))
.MustNotHaveHappened();
}
[Fact]
- public async Task GetAppSubscriptionDetailForProvider_WithNotExistingOffer_ThrowsNotFoundException()
+ public async Task GetOfferSubscriptionDetailForProvider_WithNotExistingOffer_ThrowsNotFoundException()
{
// Arrange
var appId = Guid.NewGuid();
@@ -2235,23 +2128,23 @@ public async Task GetAppSubscriptionDetailForProvider_WithNotExistingOffer_Throw
var walletData = _fixture.Create();
SetupGetSubscriptionDetailForProvider();
- A.CallTo(() => _offerSubscriptionsRepository.GetAppSubscriptionDetailsForProviderAsync(A._, A._, A._, A._, A>._))
- .Returns<(bool, bool, AppProviderSubscriptionDetail?)>(default);
+ A.CallTo(() => _offerSubscriptionsRepository.GetOfferSubscriptionDetailsForProviderAsync(A._, A._, A._, A._, A>._))
+ .Returns<(bool, bool, OfferProviderSubscriptionDetail?)>(default);
// Act
- async Task Act() => await _sut.GetAppSubscriptionDetailsForProviderAsync(appId, subscriptionId, OfferTypeId.APP, companyAdminRoles, walletData);
+ async Task Act() => await _sut.GetOfferSubscriptionDetailsForProviderAsync(appId, subscriptionId, OfferTypeId.APP, companyAdminRoles, walletData);
// Assert
var ex = await Assert.ThrowsAsync(Act);
ex.Message.Should().Contain($"subscription {subscriptionId} for offer {appId} of type {OfferTypeId.APP} does not exist");
A.CallTo(() => _userRolesRepository.GetUserRoleIdsUntrackedAsync(A>.That.IsSameSequenceAs(companyAdminRoles)))
.MustHaveHappenedOnceExactly();
- A.CallTo(() => _offerSubscriptionsRepository.GetAppSubscriptionDetailsForProviderAsync(appId, subscriptionId, _companyId, OfferTypeId.APP, A>.That.IsSameSequenceAs(new[] { _validUserRoleId })))
+ A.CallTo(() => _offerSubscriptionsRepository.GetOfferSubscriptionDetailsForProviderAsync(appId, subscriptionId, _companyId, OfferTypeId.APP, A>.That.IsSameSequenceAs(new[] { _validUserRoleId })))
.MustHaveHappenedOnceExactly();
}
[Fact]
- public async Task GetAppSubscriptionDetailForProvider_WithUserNotInProvidingCompany_ThrowsForbiddenException()
+ public async Task GetOfferSubscriptionDetailForProvider_WithUserNotInProvidingCompany_ThrowsForbiddenException()
{
// Arrange
var appId = Guid.NewGuid();
@@ -2263,23 +2156,23 @@ public async Task GetAppSubscriptionDetailForProvider_WithUserNotInProvidingComp
var walletData = _fixture.Create();
SetupGetSubscriptionDetailForProvider();
- A.CallTo(() => _offerSubscriptionsRepository.GetAppSubscriptionDetailsForProviderAsync(A._, A._, A._, A._, A>._))
- .Returns((true, false, _fixture.Create()));
+ A.CallTo(() => _offerSubscriptionsRepository.GetOfferSubscriptionDetailsForProviderAsync(A._, A._, A._, A._, A>._))
+ .Returns((true, false, _fixture.Create()));
// Act
- async Task Act() => await _sut.GetAppSubscriptionDetailsForProviderAsync(appId, subscriptionId, OfferTypeId.APP, companyAdminRoles, walletData);
+ async Task Act() => await _sut.GetOfferSubscriptionDetailsForProviderAsync(appId, subscriptionId, OfferTypeId.APP, companyAdminRoles, walletData);
// Assert
var ex = await Assert.ThrowsAsync(Act);
ex.Message.Should().Contain($"Company {_companyId} is not part of the Provider company");
A.CallTo(() => _userRolesRepository.GetUserRoleIdsUntrackedAsync(A>.That.IsSameSequenceAs(companyAdminRoles)))
.MustHaveHappenedOnceExactly();
- A.CallTo(() => _offerSubscriptionsRepository.GetAppSubscriptionDetailsForProviderAsync(appId, subscriptionId, _companyId, OfferTypeId.APP, A>.That.IsSameSequenceAs(new[] { _validUserRoleId })))
+ A.CallTo(() => _offerSubscriptionsRepository.GetOfferSubscriptionDetailsForProviderAsync(appId, subscriptionId, _companyId, OfferTypeId.APP, A>.That.IsSameSequenceAs(new[] { _validUserRoleId })))
.MustHaveHappenedOnceExactly();
}
[Fact]
- public async Task GetAppSubscriptionDetailForProvider_WithValidData_ReturnsExpected()
+ public async Task GetOfferSubscriptionDetailForProvider_WithValidData_ReturnsExpected()
{
// Arrange
var appId = Guid.NewGuid();
@@ -2291,13 +2184,13 @@ public async Task GetAppSubscriptionDetailForProvider_WithValidData_ReturnsExpec
var walletData = _fixture.Create();
SetupGetSubscriptionDetailForProvider();
- var data = _fixture.Create();
+ var data = _fixture.Create();
- A.CallTo(() => _offerSubscriptionsRepository.GetAppSubscriptionDetailsForProviderAsync(A._, A._, A._, A._, A>._))
+ A.CallTo(() => _offerSubscriptionsRepository.GetOfferSubscriptionDetailsForProviderAsync(A._, A._, A._, A._, A>._))
.Returns((true, true, data));
// Act
- var result = await _sut.GetAppSubscriptionDetailsForProviderAsync(appId, subscriptionId, OfferTypeId.APP, companyAdminRoles, walletData);
+ var result = await _sut.GetOfferSubscriptionDetailsForProviderAsync(appId, subscriptionId, OfferTypeId.APP, companyAdminRoles, walletData);
// Assert
result.Id.Should().Be(data.Id);
@@ -2309,7 +2202,7 @@ public async Task GetAppSubscriptionDetailForProvider_WithValidData_ReturnsExpec
result.OfferSubscriptionStatus.Should().Be(data.OfferSubscriptionStatus);
A.CallTo(() => _userRolesRepository.GetUserRoleIdsUntrackedAsync(A>.That.IsSameSequenceAs(companyAdminRoles)))
.MustHaveHappenedOnceExactly();
- A.CallTo(() => _offerSubscriptionsRepository.GetAppSubscriptionDetailsForProviderAsync(appId, subscriptionId, _companyId, OfferTypeId.APP, A>.That.IsSameSequenceAs(new[] { _validUserRoleId })))
+ A.CallTo(() => _offerSubscriptionsRepository.GetOfferSubscriptionDetailsForProviderAsync(appId, subscriptionId, _companyId, OfferTypeId.APP, A>.That.IsSameSequenceAs(new[] { _validUserRoleId })))
.MustHaveHappenedOnceExactly();
}
diff --git a/tests/marketplace/Services.Service.Tests/BusinessLogic/ServiceBusinessLogicTests.cs b/tests/marketplace/Services.Service.Tests/BusinessLogic/ServiceBusinessLogicTests.cs
index f809da348c..bc08ba4b3c 100644
--- a/tests/marketplace/Services.Service.Tests/BusinessLogic/ServiceBusinessLogicTests.cs
+++ b/tests/marketplace/Services.Service.Tests/BusinessLogic/ServiceBusinessLogicTests.cs
@@ -295,6 +295,7 @@ public async Task GetServiceDetailsAsync_WithExistingServiceAndLanguageCode_Retu
result.TechnicalUserProfile.Should().ContainSingle().Which.Should().Match>>(
x => x.Value.SequenceEqual(new[] { "role1", "role2" }));
result.LeadPictureId.Should().NotBeEmpty();
+ result.ProviderUri.Should().NotBeEmpty();
}
[Fact]
@@ -524,7 +525,10 @@ public async Task GetSubscriptionDetailForProvider_WithNotMatchingUserRoles_Thro
// Arrange
var offerId = _fixture.Create();
var subscriptionId = _fixture.Create();
- var data = _fixture.Create();
+ var data = _fixture.Build()
+ .With(x => x.AppInstanceId, default(string?))
+ .With(x => x.TenantUrl, default(string?))
+ .Create();
var settings = new ServiceSettings
{
CompanyAdminRoles = new[]
@@ -532,7 +536,7 @@ public async Task GetSubscriptionDetailForProvider_WithNotMatchingUserRoles_Thro
new UserRoleConfig("ClientTest", new[] {"Test"})
}
};
- A.CallTo(() => _offerService.GetSubscriptionDetailsForProviderAsync(offerId, subscriptionId, OfferTypeId.SERVICE, A>._))
+ A.CallTo(() => _offerService.GetOfferSubscriptionDetailsForProviderAsync(A._, A._, A._, A>._, A._))
.Returns(data);
var sut = new ServiceBusinessLogic(null!, _offerService, null!, null!, _identityService, Options.Create(settings));
@@ -540,7 +544,21 @@ public async Task GetSubscriptionDetailForProvider_WithNotMatchingUserRoles_Thro
var result = await sut.GetSubscriptionDetailForProvider(offerId, subscriptionId);
// Assert
- result.Should().Be(data);
+ result.Should().Match(x =>
+ x.Id == data.Id &&
+ x.OfferSubscriptionStatus == data.OfferSubscriptionStatus &&
+ x.Name == data.Name &&
+ x.Customer == data.Customer &&
+ x.Bpn == data.Bpn &&
+ x.Contact.SequenceEqual(data.Contact) &&
+ x.TechnicalUserData.SequenceEqual(data.TechnicalUserData) &&
+ x.ConnectorData.SequenceEqual(data.ConnectorData) &&
+ x.ProcessStepTypeId == data.ProcessStepTypeId &&
+ x.ExternalService == data.ExternalService
+ );
+
+ A.CallTo(() => _offerService.GetOfferSubscriptionDetailsForProviderAsync(offerId, subscriptionId, OfferTypeId.SERVICE, A>._, A._))
+ .MustHaveHappenedOnceExactly();
}
#endregion
diff --git a/tests/marketplace/Services.Service.Tests/Services.Service.Tests.csproj b/tests/marketplace/Services.Service.Tests/Services.Service.Tests.csproj
index 1779b2f970..8e69508163 100644
--- a/tests/marketplace/Services.Service.Tests/Services.Service.Tests.csproj
+++ b/tests/marketplace/Services.Service.Tests/Services.Service.Tests.csproj
@@ -30,8 +30,8 @@
-
-
+
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/tests/notifications/Notifications.Library.Tests/Notifications.Library.Tests.csproj b/tests/notifications/Notifications.Library.Tests/Notifications.Library.Tests.csproj
index 4d24d22436..d6a451f4f6 100644
--- a/tests/notifications/Notifications.Library.Tests/Notifications.Library.Tests.csproj
+++ b/tests/notifications/Notifications.Library.Tests/Notifications.Library.Tests.csproj
@@ -29,8 +29,8 @@
-
-
+
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/tests/notifications/Notifications.Service.Tests/Notifications.Service.Tests.csproj b/tests/notifications/Notifications.Service.Tests/Notifications.Service.Tests.csproj
index ae33ad2028..78fcf66943 100644
--- a/tests/notifications/Notifications.Service.Tests/Notifications.Service.Tests.csproj
+++ b/tests/notifications/Notifications.Service.Tests/Notifications.Service.Tests.csproj
@@ -29,8 +29,8 @@
-
-
+
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/tests/portalbackend/PortalBackend.DBAccess.Tests/CompanyConnectorViewTests.cs b/tests/portalbackend/PortalBackend.DBAccess.Tests/CompanyConnectorViewTests.cs
index cb027364a3..99eb4a3de0 100644
--- a/tests/portalbackend/PortalBackend.DBAccess.Tests/CompanyConnectorViewTests.cs
+++ b/tests/portalbackend/PortalBackend.DBAccess.Tests/CompanyConnectorViewTests.cs
@@ -46,7 +46,7 @@ public async Task CompanyConnectorView_GetAll_ReturnsExpected()
// Act
var result = await sut.CompanyConnectorView.ToListAsync();
- result.Should().HaveCount(10);
+ result.Should().HaveCount(11);
}
[Fact]
@@ -62,7 +62,7 @@ public async Task CompanyConnectorView_GetSpecific_ReturnsExpected()
result!.CompanyId.Should().Be(companyId);
result.CompanyName.Should().Be("CX-Test-Access");
result.ConnectorStatus.Should().Be("PENDING");
- result.ConnectorUrl.Should().Be("www.google.de");
+ result.ConnectorUrl.Should().Be("www.connector123.de");
}
private async Task CreateContext()
diff --git a/tests/portalbackend/PortalBackend.DBAccess.Tests/ConnectorRepositoryTests.cs b/tests/portalbackend/PortalBackend.DBAccess.Tests/ConnectorRepositoryTests.cs
index 1fd8f8de4b..51f3f72e6b 100644
--- a/tests/portalbackend/PortalBackend.DBAccess.Tests/ConnectorRepositoryTests.cs
+++ b/tests/portalbackend/PortalBackend.DBAccess.Tests/ConnectorRepositoryTests.cs
@@ -73,10 +73,10 @@ public async Task GetAllCompanyConnectorsForCompanyId_ReturnsExpectedAppCount()
x => x.Name == "Test Connector 6"
&& x.TechnicalUser!.Id == new Guid("cd436931-8399-4c1d-bd81-7dffb298c7ca")
&& x.TechnicalUser.Name == "test-user-service-accounts"
- && x.ConnectorUrl == "www.google.de",
+ && x.ConnectorUrl == "www.connector6.de",
x => x.Name == "Test Connector 1"
&& x.TechnicalUser == null
- && x.ConnectorUrl == "www.google.de");
+ && x.ConnectorUrl == "www.connector1.de");
}
#endregion
@@ -159,21 +159,24 @@ public async Task AttachAndModify_ReturnsExpected()
#region GetConnectorByIdForIamUser
- [Fact]
- public async Task GetConnectorByIdForIamUser_ReturnsExpectedAppCount()
+ [Theory]
+ [InlineData("7e86a0b8-6903-496b-96d1-0ef508206839", "41fd2ab8-71cd-4546-9bef-a388d91b2542", true)]
+ [InlineData("7e86a0b8-6903-496b-96d1-0ef508206839", "2dc4249f-b5ca-4d42-bef1-7a7a950a4f87", true)]
+ [InlineData("7e86a0b8-6903-496b-96d1-0ef508206839", "deadbeef-dead-beef-dead-beefdeadbeef", false)]
+ public async Task GetConnectorByIdForIamUser_ReturnsExpected(Guid connectorId, Guid companyId, bool isProviderOrHost)
{
// Arrange
var (sut, _) = await CreateSut();
// Act
- var result = await sut.GetConnectorByIdForCompany(new Guid("7e86a0b8-6903-496b-96d1-0ef508206833"), _userCompanyId);
+ var result = await sut.GetConnectorByIdForCompany(connectorId, companyId);
// Assert
result.Should().NotBeNull();
- result.IsProviderCompany.Should().BeTrue();
- result.ConnectorData.Name.Should().Be("Test Connector 1");
+ result.IsProvidingOrHostCompany.Should().Be(isProviderOrHost);
+ result.ConnectorData.Name.Should().Be("Test Connector 2");
result.ConnectorData.TechnicalUser.Should().BeNull();
- result.ConnectorData.ConnectorUrl.Should().Be("www.google.de");
+ result.ConnectorData.ConnectorUrl.Should().Be("www.connector2.de");
}
[Fact]
@@ -189,20 +192,6 @@ public async Task GetConnectorByIdForIamUser_WithoutExistingId_ReturnsDefault()
result.Should().Be(default);
}
- [Fact]
- public async Task GetConnectorByIdForIamUser_WithoutMatchingUser_ReturnsIsProviderUserFalse()
- {
- // Arrange
- var (sut, _) = await CreateSut();
-
- // Act
- var result = await sut.GetConnectorByIdForCompany(new Guid("5aea3711-cc54-47b4-b7eb-ba9f3bf1cb15"), Guid.NewGuid());
-
- // Assert
- result.Should().NotBeNull();
- result.IsProviderCompany.Should().BeFalse();
- }
-
#endregion
#region GetConnectorInformationByIdForIamUser
@@ -382,7 +371,7 @@ public async Task GetManagedConnectorsForIamUser_ReturnsExpectedAppCount()
x.TechnicalUser!.Id == new Guid("d0c8ae19-d4f3-49cc-9cb4-6c766d4680f4") &&
x.TechnicalUser.Name == "sa-test" &&
x.TechnicalUser.Description == "SA with connector" &&
- x.ConnectorUrl == "www.google.de");
+ x.ConnectorUrl == "www.connector3.de");
}
[Fact]
@@ -436,7 +425,7 @@ public async Task GetConnectorUpdateInformation_WithoutExistingConnector_Returns
[Theory]
[InlineData(new[] { "BPNL00000003AYRE", "BPNL00000003CRHK" }, 3, 2)]
- [InlineData(new string[] { }, 4, 3)]
+ [InlineData(new string[] { }, 5, 3)]
[InlineData(new[] { "not a bpn" }, 0, 0)]
public async Task GetConnectorEndPointDataAsync_WithExistingConnector_ReturnsExpectedResult(IEnumerable bpns, int numResults, int numGroups)
{
@@ -463,6 +452,24 @@ public async Task GetConnectorEndPointDataAsync_WithExistingConnector_ReturnsExp
}
}
}
+ [Fact]
+ public async Task GetConnectorEndPointDataAsync_CheckHostBPN_ReturnsExpectedResult()
+ {
+ // Arrange
+ var (sut, _) = await CreateSut();
+ var hostBpn = new[] { "BPNL00000003LLHA", "BPNL00000003CRHK" };
+
+ // Act
+ var result = await sut.GetConnectorEndPointDataAsync(hostBpn).ToListAsync();
+
+ // Assert
+ result.Should().NotBeNull().And.HaveCount(3);
+ result.Where(x => x.BusinessPartnerNumber == "BPNL00000003LLHA").Should().HaveCount(2).And.Satisfy(
+ x => x.ConnectorEndpoint == "www.connector7.de",
+ x => x.ConnectorEndpoint == "www.connector43.de");
+ result.Where(x => x.BusinessPartnerNumber == "BPNL00000003CRHK").Should().HaveCount(1).And.Satisfy(
+ x => x.ConnectorEndpoint == "www.connector6.de");
+ }
#endregion
@@ -569,11 +576,12 @@ public async Task GetConnectorsWithMissingSdDocument_ReturnsExpectedConnectors()
// Assert
result.Should().NotBeNull();
- result.Content.Should().HaveCount(4).And.Satisfy(
+ result.Content.Should().HaveCount(5).And.Satisfy(
x => x.Name == "Test Connector 7",
x => x.Name == "Test Connector 6",
x => x.Name == "Test Connector 5",
- x => x.Name == "Test Connector 4");
+ x => x.Name == "Test Connector 4",
+ x => x.Name == "Test Connector 43");
}
#endregion
@@ -604,7 +612,7 @@ public async Task CheckConnectorExists_WithExisting_ReturnsTrue()
var (sut, _) = await CreateSut();
// Act
- var result = await sut.CheckConnectorExists("Test Connector 6", "www.google.de").ConfigureAwait(false);
+ var result = await sut.CheckConnectorExists("Test Connector 6", "www.connector6.de").ConfigureAwait(false);
// Assert
result.Should().BeTrue();
diff --git a/tests/portalbackend/PortalBackend.DBAccess.Tests/OfferRepositoryTests.cs b/tests/portalbackend/PortalBackend.DBAccess.Tests/OfferRepositoryTests.cs
index 516e08e59e..37a8cad302 100644
--- a/tests/portalbackend/PortalBackend.DBAccess.Tests/OfferRepositoryTests.cs
+++ b/tests/portalbackend/PortalBackend.DBAccess.Tests/OfferRepositoryTests.cs
@@ -450,6 +450,7 @@ public async Task GetServiceDetailByIdUntrackedAsync_ReturnsExpectedResult()
x => technicalUserRoleDatas.Single(t => t.TechnicalUserProfileId == x.TechnicalUserProfileId).UserRoles.Count() == 1,
x => technicalUserRoleDatas.Single(t => t.TechnicalUserProfileId == x.TechnicalUserProfileId).UserRoles.Count() == 2);
offerDetail.LeadPictureId.Should().Be(new Guid("9685f744-9d90-4102-a949-fcd0bb86f951"));
+ offerDetail.ProviderUri.Should().Be("https://google.com");
}
#endregion
diff --git a/tests/portalbackend/PortalBackend.DBAccess.Tests/OfferSubscriptionRepositoryTest.cs b/tests/portalbackend/PortalBackend.DBAccess.Tests/OfferSubscriptionRepositoryTest.cs
index 14c62f1310..95f6ca272c 100644
--- a/tests/portalbackend/PortalBackend.DBAccess.Tests/OfferSubscriptionRepositoryTest.cs
+++ b/tests/portalbackend/PortalBackend.DBAccess.Tests/OfferSubscriptionRepositoryTest.cs
@@ -122,13 +122,13 @@ public async Task GetAllBusinessAppDataForUserIdAsync_WithValidUser_ReturnsExpec
var (sut, _) = await CreateSut();
// Act
- var result = await sut.GetAllBusinessAppDataForUserIdAsync(new("ac1cf001-7fbc-1f2f-817f-bce058020006")).ToListAsync();
+ var result = await sut.GetAllBusinessAppDataForUserIdAsync(new("8b42e6de-7b59-4217-a63c-198e83d93776")).ToListAsync();
// Assert
- result.Should().NotBeNullOrEmpty();
- result.Should().HaveCount(1);
- result.First().SubscriptionUrl.Should().Be("https://ec-qas.d13fe27.kyma.ondemand.com");
- result.First().OfferId.Should().Be(new Guid("a16e73b9-5277-4b69-9f8d-3b227495dfea"));
+ result.Should().ContainSingle().Which.Should().Match<(Guid OfferId, Guid SubscriptionId, string? OfferName, string SubscriptionUrl, Guid LeadPictureId, string Provider)>(x =>
+ x.SubscriptionUrl == "https://ec-qas.d13fe27.kyma.ondemand.com" &&
+ x.OfferId == new Guid("ac1cf001-7fbc-1f2f-817f-bce05744000b")
+ );
}
#endregion
@@ -243,93 +243,62 @@ public async Task GetOfferDetailsAndCheckUser_WithSubscriptionForOfferWithoutApp
#endregion
- #region GetSubscriptionDetailForProviderAsync
+ #region GetOfferSubscriptionDetailForProviderAsync
[Fact]
- public async Task GetSubscriptionDetailForProviderAsync_ReturnsExpected()
+ public async Task GetOfferSubscriptionDetailForAppProviderAsync_ReturnsExpected()
{
// Arrange
var (sut, _) = await CreateSut();
// Act
- var result = await sut.GetSubscriptionDetailsForProviderAsync(new Guid("a16e73b9-5277-4b69-9f8d-3b227495dfea"), new Guid("3DE6A31F-A5D1-4F60-AA3A-4B1A769BECBF"), _userCompanyId, OfferTypeId.SERVICE, new[] { new Guid("58f897ec-0aad-4588-8ffa-5f45d6638632") });
+ var result = await sut.GetOfferSubscriptionDetailsForProviderAsync(new Guid("ac1cf001-7fbc-1f2f-817f-bce05744000b"), new Guid("0b2ca541-206d-48ad-bc02-fb61fbcb5552"), new Guid("0dcd8209-85e2-4073-b130-ac094fb47106"), OfferTypeId.APP, new[] { new Guid("7410693c-c893-409e-852f-9ee886ce94a6") });
// Assert
result.Exists.Should().BeTrue();
result.IsUserOfCompany.Should().BeTrue();
- result.Details.Should().NotBeNull().And.Match(x =>
- x.Name == "SDE with EDC" &&
- x.Customer == "CX-Operator" &&
- x.Contact.SequenceEqual(new[] { "tobeadded@cx.com" }) &&
- x.OfferSubscriptionStatus == OfferSubscriptionStatusId.ACTIVE
- && x.TechnicalUserData.All(x => x.Id == new Guid("d0c8ae19-d4f3-49cc-9cb4-6c766d4680f2") && x.Name == "sa-x-4"));
- }
-
- [Fact]
- public async Task GetSubscriptionDetailForProviderAsync_WithNotExistingId_ReturnsExpected()
- {
- // Arrange
- var (sut, _) = await CreateSut();
-
- // Act
- var result = await sut.GetSubscriptionDetailsForProviderAsync(Guid.NewGuid(), new Guid("3DE6A31F-A5D1-4F60-AA3A-4B1A769BECBF"), _userCompanyId, OfferTypeId.SERVICE, new List());
-
- // Assert
- result.Exists.Should().BeFalse();
- result.IsUserOfCompany.Should().BeFalse();
- result.Details.Should().BeNull();
- }
-
- [Fact]
- public async Task GetSubscriptionDetailForProviderAsync_WithWrongUser_ReturnsExpected()
- {
- // Arrange
- var (sut, _) = await CreateSut();
-
- // Act
- var result = await sut.GetSubscriptionDetailsForProviderAsync(new Guid("a16e73b9-5277-4b69-9f8d-3b227495dfea"), new Guid("3DE6A31F-A5D1-4F60-AA3A-4B1A769BECBF"), Guid.NewGuid(), OfferTypeId.SERVICE, new List());
-
- // Assert
- result.Exists.Should().BeTrue();
- result.IsUserOfCompany.Should().BeFalse();
- result.Details.Should().BeNull();
+ result.Details.Should().NotBeNull().And.Match(x =>
+ x.Name == "Project Implementation: Earth Commerce" &&
+ x.Customer == "Bayerische Motorenwerke AG" &&
+ x.Bpn == "BPNL00000003AYRE" &&
+ x.Contact.SequenceEqual(new[] { "test@email.com" }) &&
+ x.OfferSubscriptionStatus == OfferSubscriptionStatusId.ACTIVE &&
+ x.TenantUrl == "https://ec-qas.d13fe27.kyma.ondemand.com" &&
+ x.AppInstanceId == "https://catenax-int-dismantler-s66pftcc.authentication.eu10.hana.ondemand.com" &&
+ x.ProcessSteps.Count() == 0);
}
- #endregion
-
- #region GetAppSubscriptionDetailForProviderAsync
-
[Fact]
- public async Task GetAppSubscriptionDetailForProviderAsync_ReturnsExpected()
+ public async Task GetOfferSubscriptionDetailForServiceProviderAsync_ReturnsExpected()
{
// Arrange
var (sut, _) = await CreateSut();
// Act
- var result = await sut.GetAppSubscriptionDetailsForProviderAsync(new Guid("a16e73b9-5277-4b69-9f8d-3b227495dfea"), new Guid("3DE6A31F-A5D1-4F60-AA3A-4B1A769BECBF"), _userCompanyId, OfferTypeId.SERVICE, new[] { new Guid("58f897ec-0aad-4588-8ffa-5f45d6638632") });
+ var result = await sut.GetOfferSubscriptionDetailsForProviderAsync(new Guid("a16e73b9-5277-4b69-9f8d-3b227495dfea"), new Guid("3DE6A31F-A5D1-4F60-AA3A-4B1A769BECBF"), _userCompanyId, OfferTypeId.SERVICE, new[] { new Guid("58f897ec-0aad-4588-8ffa-5f45d6638632") });
// Assert
result.Exists.Should().BeTrue();
result.IsUserOfCompany.Should().BeTrue();
- result.Details.Should().NotBeNull().And.Match(x =>
+ result.Details.Should().NotBeNull().And.Match(x =>
x.Name == "SDE with EDC" &&
x.Customer == "CX-Operator" &&
x.Contact.SequenceEqual(new[] { "tobeadded@cx.com" }) &&
x.OfferSubscriptionStatus == OfferSubscriptionStatusId.ACTIVE &&
- x.TenantUrl == "https://ec-qas.d13fe27.kyma.ondemand.com" &&
- x.AppInstanceId == "https://catenax-int-dismantler-s66pftcc.authentication.eu10.hana.ondemand.com" &&
+ x.TenantUrl == null &&
+ x.AppInstanceId == null &&
x.ProcessSteps.Count() == 3 &&
x.ProcessSteps.Count(y => y.ProcessStepTypeId == ProcessStepTypeId.AWAIT_START_AUTOSETUP && y.ProcessStepStatusId == ProcessStepStatusId.TODO) == 1);
}
[Fact]
- public async Task GetAppSubscriptionDetailForProviderAsync_WithNotExistingId_ReturnsExpected()
+ public async Task GetOfferSubscriptionDetailForProviderAsync_WithNotExistingId_ReturnsExpected()
{
// Arrange
var (sut, _) = await CreateSut();
// Act
- var result = await sut.GetAppSubscriptionDetailsForProviderAsync(Guid.NewGuid(), new Guid("3DE6A31F-A5D1-4F60-AA3A-4B1A769BECBF"), _userCompanyId, OfferTypeId.SERVICE, new List());
+ var result = await sut.GetOfferSubscriptionDetailsForProviderAsync(Guid.NewGuid(), new Guid("3DE6A31F-A5D1-4F60-AA3A-4B1A769BECBF"), _userCompanyId, OfferTypeId.SERVICE, new List());
// Assert
result.Exists.Should().BeFalse();
@@ -338,13 +307,13 @@ public async Task GetAppSubscriptionDetailForProviderAsync_WithNotExistingId_Ret
}
[Fact]
- public async Task GetAppSubscriptionDetailForProviderAsync_WithWrongUserCompany_ReturnsExpected()
+ public async Task GetOfferSubscriptionDetailForProviderAsync_WithWrongUserCompany_ReturnsExpected()
{
// Arrange
var (sut, _) = await CreateSut();
// Act
- var result = await sut.GetAppSubscriptionDetailsForProviderAsync(new Guid("a16e73b9-5277-4b69-9f8d-3b227495dfea"), new Guid("3DE6A31F-A5D1-4F60-AA3A-4B1A769BECBF"), Guid.NewGuid(), OfferTypeId.SERVICE, new[] { new Guid("58f897ec-0aad-4588-8ffa-5f45d6638632") });
+ var result = await sut.GetOfferSubscriptionDetailsForProviderAsync(new Guid("a16e73b9-5277-4b69-9f8d-3b227495dfea"), new Guid("3DE6A31F-A5D1-4F60-AA3A-4B1A769BECBF"), Guid.NewGuid(), OfferTypeId.SERVICE, new[] { new Guid("58f897ec-0aad-4588-8ffa-5f45d6638632") });
// Assert
result.Exists.Should().BeTrue();
@@ -376,7 +345,7 @@ public async Task GetSubscriptionDetailForSubscriberAsync_ReturnsExpected()
x.ConnectorData.SequenceEqual(new[]{ new SubscriptionAssignedConnectorData(
new Guid("bd644d9c-ca12-4488-ae38-6eb902c9bec0"),
"Test Connector 123",
- "www.google.de")}));
+ "www.connector123.de")}));
}
[Fact]
diff --git a/tests/portalbackend/PortalBackend.DBAccess.Tests/OfferSubscriptionViewTests.cs b/tests/portalbackend/PortalBackend.DBAccess.Tests/OfferSubscriptionViewTests.cs
index a21fb09929..3b9ae1f273 100644
--- a/tests/portalbackend/PortalBackend.DBAccess.Tests/OfferSubscriptionViewTests.cs
+++ b/tests/portalbackend/PortalBackend.DBAccess.Tests/OfferSubscriptionViewTests.cs
@@ -56,16 +56,20 @@ public async Task OfferSubscriptionView_GetAll_ReturnsExpected()
public async Task OfferSubscriptionView_GetSpecific_ReturnsExpected()
{
// Arrange
- var subscriptionId = new Guid("3de6a31f-a5d1-4f60-aa3a-4b1a769becbf");
+ var subscriptionId = new Guid("0b2ca541-206d-48ad-bc02-fb61fbcb5552");
var sut = await CreateContext();
// Act
- var result = await sut.OfferSubscriptionView.SingleOrDefaultAsync(x => x.SubscriptionId == subscriptionId);
- result.Should().NotBeNull();
- result!.SubscriptionId.Should().Be(subscriptionId);
- result.OfferTypeId.Should().Be(OfferTypeId.SERVICE);
- result.TechnicalUser.Should().Be(new Guid("d0c8ae19-d4f3-49cc-9cb4-6c766d4680f2"));
- result.AppInstance.Should().Be(new Guid("ab25c218-9ab3-4f1a-b6f4-6394fbc33c5b"));
+ var result = await sut.OfferSubscriptionView.Where(x => x.SubscriptionId == subscriptionId).ToListAsync();
+ result.Should().HaveCount(2)
+ .And.AllSatisfy(x =>
+ x.Should().Match(x =>
+ x.SubscriptionId == subscriptionId &&
+ x.OfferTypeId == OfferTypeId.APP &&
+ x.AppInstance == new Guid("ab25c218-9ab3-4f1a-b6f4-6394fbc33c5a")))
+ .And.Satisfy(
+ x => x.TechnicalUser == new Guid("93eecd4e-ca47-4dd2-85bf-775ea72eb000"),
+ x => x.TechnicalUser == new Guid("d0c8ae19-d4f3-49cc-9cb4-6c766d4680f3"));
}
#endregion
diff --git a/tests/portalbackend/PortalBackend.DBAccess.Tests/PortalBackend.DBAccess.Tests.csproj b/tests/portalbackend/PortalBackend.DBAccess.Tests/PortalBackend.DBAccess.Tests.csproj
index fe9cd0a0e3..f4dceb5b8e 100644
--- a/tests/portalbackend/PortalBackend.DBAccess.Tests/PortalBackend.DBAccess.Tests.csproj
+++ b/tests/portalbackend/PortalBackend.DBAccess.Tests/PortalBackend.DBAccess.Tests.csproj
@@ -28,11 +28,11 @@
xUnit1030;xUnit1041
-
+
-
-
-
+
+
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/tests/portalbackend/PortalBackend.DBAccess.Tests/PortalDbContextTests.cs b/tests/portalbackend/PortalBackend.DBAccess.Tests/PortalDbContextTests.cs
index e7ffdd4caa..2ddb707b04 100644
--- a/tests/portalbackend/PortalBackend.DBAccess.Tests/PortalDbContextTests.cs
+++ b/tests/portalbackend/PortalBackend.DBAccess.Tests/PortalDbContextTests.cs
@@ -94,7 +94,7 @@ public async Task SaveCreatedAuditableEntity_SetsLastEditorId()
ca.DateLastChanged.Should().Be(now);
var auditEntries = await sut.AuditCompanyApplication20231115.Where(x => x.Id == id).ToListAsync();
auditEntries.Should().ContainSingle().Which.Should().Match(
- x => x.ApplicationStatusId == CompanyApplicationStatusId.CREATED && (x.DateCreated - before) < TimeSpan.FromSeconds(1) && x.AuditV1OperationId == AuditOperationId.INSERT && (x.AuditV1DateLastChanged - now) < TimeSpan.FromSeconds(1) && x.LastEditorId == new Guid("ac1cf001-7fbc-1f2f-817f-bce058020001"));
+ x => x.ApplicationStatusId == CompanyApplicationStatusId.CREATED && (x.DateCreated - before) < TimeSpan.FromSeconds(2) && x.AuditV1OperationId == AuditOperationId.INSERT && (x.AuditV1DateLastChanged - now) < TimeSpan.FromSeconds(2) && x.LastEditorId == new Guid("ac1cf001-7fbc-1f2f-817f-bce058020001"));
await trans.RollbackAsync();
}
@@ -124,8 +124,8 @@ public async Task SaveDeletedAuditableEntity_SetsLastEditorId()
ca.DateLastChanged.Should().Be(later);
var auditEntries = await sut.AuditCompanyApplication20231115.Where(x => x.Id == id).ToListAsync();
auditEntries.Should().HaveCount(2).And.Satisfy(
- x => x.ApplicationStatusId == CompanyApplicationStatusId.CREATED && (x.DateCreated - before) < TimeSpan.FromSeconds(1) && x.AuditV1OperationId == AuditOperationId.INSERT && x.LastEditorId == new Guid("ac1cf001-7fbc-1f2f-817f-bce058020001"),
- x => x.ApplicationStatusId == CompanyApplicationStatusId.CREATED && (x.DateCreated - before) < TimeSpan.FromSeconds(1) && x.AuditV1OperationId == AuditOperationId.DELETE && (x.AuditV1DateLastChanged - later) < TimeSpan.FromSeconds(1) && x.LastEditorId == new Guid("ac1cf001-7fbc-1f2f-817f-bce058020001"));
+ x => x.ApplicationStatusId == CompanyApplicationStatusId.CREATED && (x.DateCreated - before) < TimeSpan.FromSeconds(2) && x.AuditV1OperationId == AuditOperationId.INSERT && x.LastEditorId == new Guid("ac1cf001-7fbc-1f2f-817f-bce058020001"),
+ x => x.ApplicationStatusId == CompanyApplicationStatusId.CREATED && (x.DateCreated - before) < TimeSpan.FromSeconds(2) && x.AuditV1OperationId == AuditOperationId.DELETE && (x.AuditV1DateLastChanged - later) < TimeSpan.FromSeconds(2) && x.LastEditorId == new Guid("ac1cf001-7fbc-1f2f-817f-bce058020001"));
await trans.RollbackAsync();
}
diff --git a/tests/portalbackend/PortalBackend.DBAccess.Tests/Seeder/Data/app_subscription_details.unittest.json b/tests/portalbackend/PortalBackend.DBAccess.Tests/Seeder/Data/app_subscription_details.unittest.json
index 2bdb86932e..c7e15ad196 100644
--- a/tests/portalbackend/PortalBackend.DBAccess.Tests/Seeder/Data/app_subscription_details.unittest.json
+++ b/tests/portalbackend/PortalBackend.DBAccess.Tests/Seeder/Data/app_subscription_details.unittest.json
@@ -6,13 +6,6 @@
"app_subscription_url": "https://ec-qas.d13fe27.kyma.ondemand.com",
"last_editor_id": null
},
- {
- "id": "88b0661c-cc22-4a4a-9721-fc4f3cec21f9",
- "offer_subscription_id": "3de6a31f-a5d1-4f60-aa3a-4b1a769becbf",
- "app_instance_id": "ab25c218-9ab3-4f1a-b6f4-6394fbc33c5b",
- "app_subscription_url": "https://ec-qas.d13fe27.kyma.ondemand.com",
- "last_editor_id": null
- },
{
"id": "bedb45bf-7094-4da0-9e69-0695db782a16",
"offer_subscription_id": "ed4de48d-fd4b-4384-a72f-ecae3c6cc5ba",
diff --git a/tests/portalbackend/PortalBackend.DBAccess.Tests/Seeder/Data/connectors.unittest.json b/tests/portalbackend/PortalBackend.DBAccess.Tests/Seeder/Data/connectors.unittest.json
index 0f53546dce..d09225b721 100644
--- a/tests/portalbackend/PortalBackend.DBAccess.Tests/Seeder/Data/connectors.unittest.json
+++ b/tests/portalbackend/PortalBackend.DBAccess.Tests/Seeder/Data/connectors.unittest.json
@@ -2,7 +2,7 @@
{
"id": "7e86a0b8-6903-496b-96d1-0ef508206836",
"name": "Test Connector 4",
- "connector_url": "www.google.de",
+ "connector_url": "www.connector4.de",
"type_id": 1,
"status_id": 2,
"provider_id": "ac861325-bc54-4583-bcdc-9e9f2a38ff84",
@@ -13,7 +13,7 @@
{
"id": "595a5784-3f28-4ec3-a986-651342d1be81",
"name": "Test Connector 6",
- "connector_url": "www.google.de",
+ "connector_url": "www.connector6.de",
"type_id": 1,
"status_id": 2,
"provider_id": "2dc4249f-b5ca-4d42-bef1-7a7a950a4f87",
@@ -25,7 +25,7 @@
{
"id": "727365d6-5599-4598-a888-58733fa138e7",
"name": "Test Connector 5",
- "connector_url": "www.google.de",
+ "connector_url": "www.connector5.de",
"type_id": 1,
"status_id": 2,
"provider_id": "ac861325-bc54-4583-bcdc-9e9f2a38ff84",
@@ -36,7 +36,7 @@
{
"id": "8e10b910-523c-435e-b700-4a0c7b31f044",
"name": "Test Connector 7",
- "connector_url": "www.google.de",
+ "connector_url": "www.connector7.de",
"type_id": 1,
"status_id": 2,
"provider_id": "41fd2ab8-71cd-4546-9bef-a388d91b2542",
@@ -47,7 +47,7 @@
{
"id": "7e86a0b8-6903-496b-96d1-0ef508206833",
"name": "Test Connector 1",
- "connector_url": "www.google.de",
+ "connector_url": "www.connector1.de",
"type_id": 1,
"status_id": 1,
"provider_id": "2dc4249f-b5ca-4d42-bef1-7a7a950a4f87",
@@ -58,7 +58,7 @@
{
"id": "7e86a0b8-6903-496b-96d1-0ef508206839",
"name": "Test Connector 2",
- "connector_url": "www.google.de",
+ "connector_url": "www.connector2.de",
"type_id": 1,
"status_id": 1,
"provider_id": "41fd2ab8-71cd-4546-9bef-a388d91b2542",
@@ -69,7 +69,7 @@
{
"id": "7e86a0b8-6903-496b-96d1-0ef508206838",
"name": "Test Connector 3",
- "connector_url": "www.google.de",
+ "connector_url": "www.connector3.de",
"type_id": 2,
"status_id": 1,
"provider_id": "41fd2ab8-71cd-4546-9bef-a388d91b2542",
@@ -81,7 +81,7 @@
{
"id": "4618c650-709c-4580-956a-85b76eecd4b8",
"name": "Test Connector 666",
- "connector_url": "www.google.de",
+ "connector_url": "www.connector666.de",
"type_id": 2,
"status_id": 1,
"provider_id": "41fd2ab8-71cd-4546-9bef-a388d91b2542",
@@ -92,7 +92,7 @@
{
"id": "bd644d9c-ca12-4488-ae38-6eb902c9bec0",
"name": "Test Connector 123",
- "connector_url": "www.google.de",
+ "connector_url": "www.connector123.de",
"type_id": 2,
"status_id": 1,
"provider_id": "2dc4249f-b5ca-4d42-bef1-7a7a950a4f88",
@@ -103,7 +103,7 @@
{
"id": "12481a39-ca13-4760-bbbb-f6ff98508007",
"name": "Test Connector 42",
- "connector_url": "www.google.de",
+ "connector_url": "www.connector42.de",
"type_id": 1,
"status_id": 1,
"provider_id": "a45f3b2e-29f7-4b52-8bb2-15b204849d87",
@@ -111,5 +111,16 @@
"location_id": "DE",
"self_description_document_id": null,
"sd_creation_process_id": "4a5059d9-c427-42b7-aa54-5e5a240946d3"
+ },
+ {
+ "id": "12481a39-ca13-4760-bbbb-f6ff98508008",
+ "name": "Test Connector 43",
+ "connector_url": "www.connector43.de",
+ "type_id": 1,
+ "status_id": 2,
+ "provider_id": "a45f3b2e-29f7-4b52-8bb2-15b204849d87",
+ "host_id": "41fd2ab8-71cd-4546-9bef-a388d91b2542",
+ "location_id": "DE",
+ "self_description_document_id": null
}
]
diff --git a/tests/portalbackend/PortalBackend.DBAccess.Tests/Seeder/Data/identity_assigned_roles.unittest.json b/tests/portalbackend/PortalBackend.DBAccess.Tests/Seeder/Data/identity_assigned_roles.unittest.json
index 67e4b02a52..77430f9f61 100644
--- a/tests/portalbackend/PortalBackend.DBAccess.Tests/Seeder/Data/identity_assigned_roles.unittest.json
+++ b/tests/portalbackend/PortalBackend.DBAccess.Tests/Seeder/Data/identity_assigned_roles.unittest.json
@@ -68,5 +68,15 @@
"identity_id": "8b42e6de-7b59-4217-a63c-198e83d93777",
"user_role_id": "7410693c-c893-409e-852f-9ee886ce94a6",
"last_editor_id": null
- }
+ },
+ {
+ "identity_id": "8b42e6de-7b59-4217-a63c-198e83d93776",
+ "user_role_id": "7410693c-c893-409e-852f-9ee886ce94a6",
+ "last_editor_id": null
+ },
+ {
+ "identity_id": "8b42e6de-7b59-4217-a63c-198e83d93776",
+ "user_role_id": "efc20368-9e82-46ff-b88f-6495b9810253",
+ "last_editor_id": null
+ }
]
diff --git a/tests/portalbackend/PortalBackend.DBAccess.Tests/Seeder/Data/offers.unittest.json b/tests/portalbackend/PortalBackend.DBAccess.Tests/Seeder/Data/offers.unittest.json
index fc7e53aab8..4899b0b78c 100644
--- a/tests/portalbackend/PortalBackend.DBAccess.Tests/Seeder/Data/offers.unittest.json
+++ b/tests/portalbackend/PortalBackend.DBAccess.Tests/Seeder/Data/offers.unittest.json
@@ -36,7 +36,7 @@
"name": "Consulting Service - Data Readiness",
"date_created": "2023-01-01 00:00:00.000000 +00:00",
"date_released": "2023-01-01 00:00:00.000001 +00:00",
- "marketing_url": null,
+ "marketing_url": "https://google.com",
"contact_email": null,
"contact_number": "0000",
"provider_company_id": "2dc4249f-b5ca-4d42-bef1-7a7a950a4f87",
diff --git a/tests/portalbackend/PortalBackend.DBAccess.Tests/Seeder/Data/technical_users.unittest.json b/tests/portalbackend/PortalBackend.DBAccess.Tests/Seeder/Data/technical_users.unittest.json
index f6866ec5d7..3049e8ea9d 100644
--- a/tests/portalbackend/PortalBackend.DBAccess.Tests/Seeder/Data/technical_users.unittest.json
+++ b/tests/portalbackend/PortalBackend.DBAccess.Tests/Seeder/Data/technical_users.unittest.json
@@ -1,13 +1,4 @@
[
- {
- "id": "d0c8ae19-d4f3-49cc-9cb4-6c766d4680f2",
- "name": "sa-test",
- "description": "SA for offer subscription",
- "technical_user_type_id": 2,
- "technical_user_kind_id": 1,
- "offer_subscription_id": "3DE6A31F-A5D1-4F60-AA3A-4B1A769BECBF",
- "client_client_id":"sa-x-4"
- },
{
"id": "d0c8ae19-d4f3-49cc-9cb4-6c766d4680f3",
"name": "sa-test",
diff --git a/tests/portalbackend/PortalBackend.DBAccess.Tests/Seeder/Data/user_roles.unittest.json b/tests/portalbackend/PortalBackend.DBAccess.Tests/Seeder/Data/user_roles.unittest.json
index 3bfc0f7f23..c8cf3c65ab 100644
--- a/tests/portalbackend/PortalBackend.DBAccess.Tests/Seeder/Data/user_roles.unittest.json
+++ b/tests/portalbackend/PortalBackend.DBAccess.Tests/Seeder/Data/user_roles.unittest.json
@@ -14,19 +14,19 @@
{
"id": "aabcdfeb-6669-4c74-89f0-19cda090873e",
"user_role": "test",
- "offer_id": "a16e73b9-5277-4b69-9f8d-3b227495dfea",
+ "offer_id": "9b957704-3505-4445-822c-d7ef80f27fcd",
"last_editor_id": null
},
{
"id": "efc20368-9e82-46ff-b88f-6495b9810254",
"user_role": "Company Admin",
- "offer_id": "a16e73b9-5277-4b69-9f8d-3b227495dfea",
+ "offer_id": "9b957704-3505-4445-822c-d7ef80f27fcd",
"last_editor_id": null
},
{
"id": "efc20368-9e82-46ff-b88f-6495b9810255",
"user_role": "IT Admin",
- "offer_id": "a16e73b9-5277-4b69-9f8d-3b227495dfea",
+ "offer_id": "9b957704-3505-4445-822c-d7ef80f27fcd",
"last_editor_id": null
},
{
diff --git a/tests/portalbackend/PortalBackend.DBAccess.Tests/TechnicalUserRepositoryTests.cs b/tests/portalbackend/PortalBackend.DBAccess.Tests/TechnicalUserRepositoryTests.cs
index 257ee388ff..9a2ffbaaa2 100644
--- a/tests/portalbackend/PortalBackend.DBAccess.Tests/TechnicalUserRepositoryTests.cs
+++ b/tests/portalbackend/PortalBackend.DBAccess.Tests/TechnicalUserRepositoryTests.cs
@@ -292,9 +292,9 @@ public async Task GetOwnCompanyServiceAccountsUntracked_WithOwnerTrue_ReturnsExp
// Assert
result.Should().NotBeNull();
- result!.Count.Should().Be(22);
+ result!.Count.Should().Be(21);
result.Data.Should().HaveCount(10)
- .And.AllSatisfy(x => x.Should().Match(y =>
+ .And.AllSatisfy(x => x.Should().Match(y =>
y.TechnicalUserTypeId == TechnicalUserTypeId.OWN &&
y.UserStatusId == UserStatusId.ACTIVE))
.And.BeInAscendingOrder(x => x.Name)
diff --git a/tests/portalbackend/PortalBackend.Migrations.Tests/PortalBackend.Migrations.Tests.csproj b/tests/portalbackend/PortalBackend.Migrations.Tests/PortalBackend.Migrations.Tests.csproj
index 496cad676d..dfd9178e50 100644
--- a/tests/portalbackend/PortalBackend.Migrations.Tests/PortalBackend.Migrations.Tests.csproj
+++ b/tests/portalbackend/PortalBackend.Migrations.Tests/PortalBackend.Migrations.Tests.csproj
@@ -28,11 +28,11 @@
-
+
-
-
-
+
+
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/tests/processes/ApplicationChecklist.Executor.Tests/ApplicationChecklist.Executor.Tests.csproj b/tests/processes/ApplicationChecklist.Executor.Tests/ApplicationChecklist.Executor.Tests.csproj
index 301cc54a2b..0cadb9a7f6 100644
--- a/tests/processes/ApplicationChecklist.Executor.Tests/ApplicationChecklist.Executor.Tests.csproj
+++ b/tests/processes/ApplicationChecklist.Executor.Tests/ApplicationChecklist.Executor.Tests.csproj
@@ -28,8 +28,8 @@
-
-
+
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/tests/processes/ApplicationChecklist.Library.Tests/ApplicationChecklist.Library.Tests.csproj b/tests/processes/ApplicationChecklist.Library.Tests/ApplicationChecklist.Library.Tests.csproj
index 0f82b6639f..c6ab51a762 100644
--- a/tests/processes/ApplicationChecklist.Library.Tests/ApplicationChecklist.Library.Tests.csproj
+++ b/tests/processes/ApplicationChecklist.Library.Tests/ApplicationChecklist.Library.Tests.csproj
@@ -28,8 +28,8 @@
-
-
+
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/tests/processes/DimUserProcess.Executor.Tests/DimUserProcess.Executor.Tests.csproj b/tests/processes/DimUserProcess.Executor.Tests/DimUserProcess.Executor.Tests.csproj
index ccdaae2288..677662815b 100644
--- a/tests/processes/DimUserProcess.Executor.Tests/DimUserProcess.Executor.Tests.csproj
+++ b/tests/processes/DimUserProcess.Executor.Tests/DimUserProcess.Executor.Tests.csproj
@@ -28,7 +28,7 @@
-
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/tests/processes/IdentityProviderProvisioning.Executor.Tests/IdentityProviderProvisioning.Executor.Tests.csproj b/tests/processes/IdentityProviderProvisioning.Executor.Tests/IdentityProviderProvisioning.Executor.Tests.csproj
index 8bb9632eb7..160f4f0374 100644
--- a/tests/processes/IdentityProviderProvisioning.Executor.Tests/IdentityProviderProvisioning.Executor.Tests.csproj
+++ b/tests/processes/IdentityProviderProvisioning.Executor.Tests/IdentityProviderProvisioning.Executor.Tests.csproj
@@ -27,8 +27,8 @@
-
-
+
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/tests/processes/Invitation.Executor.Tests/Invitation.Executor.Tests.csproj b/tests/processes/Invitation.Executor.Tests/Invitation.Executor.Tests.csproj
index 76091e52f7..cc4154e7a5 100644
--- a/tests/processes/Invitation.Executor.Tests/Invitation.Executor.Tests.csproj
+++ b/tests/processes/Invitation.Executor.Tests/Invitation.Executor.Tests.csproj
@@ -29,8 +29,8 @@
-
-
+
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/tests/processes/Mailing.Executor.Tests/Mailing.Executor.Tests.csproj b/tests/processes/Mailing.Executor.Tests/Mailing.Executor.Tests.csproj
index 4a484a767f..e5e4fdf0c8 100644
--- a/tests/processes/Mailing.Executor.Tests/Mailing.Executor.Tests.csproj
+++ b/tests/processes/Mailing.Executor.Tests/Mailing.Executor.Tests.csproj
@@ -29,8 +29,8 @@
-
-
+
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/tests/processes/Mailing.Library.Tests/Mailing.Library.Tests.csproj b/tests/processes/Mailing.Library.Tests/Mailing.Library.Tests.csproj
index d5d11c4592..778c17572d 100644
--- a/tests/processes/Mailing.Library.Tests/Mailing.Library.Tests.csproj
+++ b/tests/processes/Mailing.Library.Tests/Mailing.Library.Tests.csproj
@@ -32,8 +32,8 @@
-
-
+
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/tests/processes/NetworkRegistration.Executor.Tests/NetworkRegistration.Executor.Tests.csproj b/tests/processes/NetworkRegistration.Executor.Tests/NetworkRegistration.Executor.Tests.csproj
index 90c87bc225..780ccb619b 100644
--- a/tests/processes/NetworkRegistration.Executor.Tests/NetworkRegistration.Executor.Tests.csproj
+++ b/tests/processes/NetworkRegistration.Executor.Tests/NetworkRegistration.Executor.Tests.csproj
@@ -28,8 +28,8 @@
-
-
+
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/tests/processes/NetworkRegistration.Library.Tests/NetworkRegistration.Library.Tests.csproj b/tests/processes/NetworkRegistration.Library.Tests/NetworkRegistration.Library.Tests.csproj
index 5b94804cdf..d89a401379 100644
--- a/tests/processes/NetworkRegistration.Library.Tests/NetworkRegistration.Library.Tests.csproj
+++ b/tests/processes/NetworkRegistration.Library.Tests/NetworkRegistration.Library.Tests.csproj
@@ -28,8 +28,8 @@
-
-
+
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/tests/processes/OfferSubscription.Executor.Tests/OfferSubscription.Executor.Tests.csproj b/tests/processes/OfferSubscription.Executor.Tests/OfferSubscription.Executor.Tests.csproj
index 1beca4c7bd..03098dc384 100644
--- a/tests/processes/OfferSubscription.Executor.Tests/OfferSubscription.Executor.Tests.csproj
+++ b/tests/processes/OfferSubscription.Executor.Tests/OfferSubscription.Executor.Tests.csproj
@@ -29,8 +29,8 @@
-
-
+
+