Skip to content

Commit

Permalink
Feature/add integration test for chunking (#126)
Browse files Browse the repository at this point in the history
* [WiP]

* [WiP] Test does not yet complete

* Update Onboarding response.

* use authenticated http client used for fetching after Capability Update

* update some onboarding responses

* last tweaks

* Remove unused imports.

* Rename methods.

* Rename methods.

* Adapt modifier.

* Rename method.
Adapt modifier for variable.

* Mark field as readonly.

* Update modifier.

* Update file structure.

* Remove missing artifacts.

* Update release version.

* Adapt release workflow to create automated releases.

* Adapt workflow to use latest action.

---------

Co-authored-by: Sascha Doemer <[email protected]>
  • Loading branch information
oliverrahner and saschadoemer authored Jul 19, 2023
1 parent ea2d619 commit f15e600
Show file tree
Hide file tree
Showing 12 changed files with 293 additions and 33 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/continuous-integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
- uses: actions/checkout@v1

- name: Setup .NET Core
uses: actions/setup-dotnet@v1
uses: actions/setup-dotnet@v3
with:
dotnet-version: 3.1.100

Expand Down
20 changes: 16 additions & 4 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,8 @@ name: Release
on:
push:
tags:
- 'v1.*'
- 'v2.*'
- 'v3.*'

- 'v*'

jobs:
deploy_nuget_packages:
runs-on: windows-latest
Expand All @@ -27,3 +25,17 @@ jobs:

- name: Push generated package to GitHub registry
run: nuget push .\out\*.nupkg -Source "GPR" -SkipDuplicate

create-github-release:
name: Create GitHub Release
runs-on: ubuntu-latest
needs: create-docker-image
permissions:
contents: write
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Create Release
run: gh release create ${{ github.ref }} --generate-notes
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@
<PackageProjectUrl>https://github.com/DKE-Data/agrirouter-sdk-dotnet-standard</PackageProjectUrl>
<PackageLicenseUrl>https://github.com/DKE-Data/agrirouter-sdk-dotnet-standard/blob/develop/LICENSE</PackageLicenseUrl>
<RepositoryUrl>https://github.com/DKE-Data/agrirouter-sdk-dotnet-standard</RepositoryUrl>
<PackageVersion>3.6.0</PackageVersion>
<AssemblyVersion>3.6.0</AssemblyVersion>
<PackageVersion>3.7.0</PackageVersion>
<AssemblyVersion>3.7.0</AssemblyVersion>
<Company>DKE-Data GmbH &amp; Co. KG</Company>
</PropertyGroup>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@
<PackageProjectUrl>https://github.com/DKE-Data/agrirouter-sdk-dotnet-standard</PackageProjectUrl>
<PackageLicenseUrl>https://github.com/DKE-Data/agrirouter-sdk-dotnet-standard/blob/develop/LICENSE</PackageLicenseUrl>
<RepositoryUrl>https://github.com/DKE-Data/agrirouter-sdk-dotnet-standard</RepositoryUrl>
<PackageVersion>3.6.0</PackageVersion>
<AssemblyVersion>3.6.0</AssemblyVersion>
<PackageVersion>3.7.0</PackageVersion>
<AssemblyVersion>3.7.0</AssemblyVersion>
<Company>DKE-Data GmbH &amp; Co. KG</Company>
</PropertyGroup>

Expand Down
Binary file not shown.
11 changes: 11 additions & 0 deletions agrirouter-sdk-dotnet-standard-test/Data/DataProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -65,5 +65,16 @@ public static string ReadBase64EncodedSmallTaskData()
var allBytes = File.ReadAllBytes(path);
return Encode.ToMessageContent(allBytes);
}

public static string ReadBase64EncodedBigTaskData()
{
var path = Path.Combine(
Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) ??
throw new InvalidOperationException(),
@"Data/Content/big_taskdata.zip");
var allBytes = File.ReadAllBytes(path);
return Encode.ToMessageContent(allBytes);
}

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -151,15 +151,15 @@ private OnboardResponse Onboard(string uuid, string registrationCode,
return onboardResponse;
}

private void ValidateConnection(OnboardResponse onboardResponse)
private static void ValidateConnection(OnboardResponse onboardResponse)
{
var authenticatedHttpClient = HttpClientFactory.AuthenticatedHttpClient(onboardResponse);
var fetchMessageService = new FetchMessageService(authenticatedHttpClient);
var fetch = fetchMessageService.Fetch(onboardResponse);
Assert.Empty(fetch);
}

private void EnableAllCapabilitiesViaHttp(OnboardResponse onboardResponse)
private static void EnableAllCapabilitiesViaHttp(OnboardResponse onboardResponse)
{
var authenticatedHttpClient = HttpClientFactory.AuthenticatedHttpClient(onboardResponse);
var capabilitiesServices =
Expand All @@ -178,7 +178,7 @@ private void EnableAllCapabilitiesViaHttp(OnboardResponse onboardResponse)

Timer.WaitForTheAgrirouterToProcessTheMessage();

var fetchMessageService = new FetchMessageService(HttpClient);
var fetchMessageService = new FetchMessageService(authenticatedHttpClient);
var fetch = fetchMessageService.Fetch(onboardResponse);
Assert.Single(fetch);

Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
{
"DeviceAlternateId": "fecd7325-96a0-427b-8483-0009de237710",
"DeviceAlternateId": "f8f0008a-d3b6-4fe1-a96d-0ba62a63f18b",
"CapabilityAlternateId": "3035ec70-dca1-4d71-a000-e79eb5891f81",
"SensorAlternateId": "99190fdb-17e8-4983-875b-2199e41b8b8c",
"SensorAlternateId": "d22ad09b-4be2-42e2-a27f-c8fd03ed315b",
"connectionCriteria": {
"GatewayId": "3",
"Measures": "https://dke-qa.eu10.cp.iot.sap/iot/gateway/rest/measures/fecd7325-96a0-427b-8483-0009de237710",
"Commands": "https://dke-qa.eu10.cp.iot.sap/iot/gateway/rest/commands/fecd7325-96a0-427b-8483-0009de237710",
"Measures": "https://dke-qa.eu10.cp.iot.sap/iot/gateway/rest/measures/f8f0008a-d3b6-4fe1-a96d-0ba62a63f18b",
"Commands": "https://dke-qa.eu10.cp.iot.sap/iot/gateway/rest/commands/f8f0008a-d3b6-4fe1-a96d-0ba62a63f18b",
"Host": null,
"Port": null,
"ClientId": null
},
"authentication": {
"Type": "P12",
"Secret": "Q?#zQyVR8m6JnXy4uQTwafNIThhixp0VYttY",
"Certificate": "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"
"Secret": "S#i4Ta4J5AIVz5AXn?e?LJ!x5ezO3!bpOA1B",
"Certificate": "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"
}
}
Loading

0 comments on commit f15e600

Please sign in to comment.