Skip to content

Conversation

@ATimmeh33
Copy link
Collaborator

@ATimmeh33 ATimmeh33 commented Nov 27, 2025

This pull request introduces integration tests for the Signhost API client, updates .NET and editor configurations, and improves documentation and code consistency. The changes focus on adding a dedicated integration test project (excluded from CI/CD), aligning documentation and code samples with the current API surface, and refining coding standards and workflows.

Integration Test Infrastructure:

  • Added a new integration test project (src/SignhostAPIClient.IntegrationTests) with its own configuration, dependencies, and documentation. These tests require live credentials, are excluded from CI/CD, and are not included in the NuGet package. ([[1]](https://github.com/Evidos/SignhostClientLibrary/pull/162/files#diff-7587f28278f43acdb347ea03d2c07cf093e6a6275f3e5908c08b24e3f399044dR1-R31), [[2]](https://github.com/Evidos/SignhostClientLibrary/pull/162/files#diff-162e37e5dd70e17454d9ee6b2c6fb69366440c63c8016b42a552424f95b3d22fR1-R27), [[3]](https://github.com/Evidos/SignhostClientLibrary/pull/162/files#diff-619f5ac4e5e4f011a9a48f40b8d079a0c6cff8c60e2c25f03dd2b4100cb986d1R1-R38), [[4]](https://github.com/Evidos/SignhostClientLibrary/pull/162/files#diff-a1d09ed72a9cbc2ae0e046c20ac4e22b0261f9b22ace9225dd71847e65f598deR56))

Build and Workflow Updates:

  • Updated the GitHub Actions workflow to use .NET 10.x for publishing NuGet packages, ensuring compatibility with the latest .NET version. ([.github/workflows/publish_nuget_package.ymlL18-R18](https://github.com/Evidos/SignhostClientLibrary/pull/162/files#diff-a1d09ed72a9cbc2ae0e046c20ac4e22b0261f9b22ace9225dd71847e65f598deL18-R18))
  • Improved .editorconfig to enforce modern C# code style, formatting, and newline conventions, and added new rules for project and property files. ([.editorconfigR6-R52](https://github.com/Evidos/SignhostClientLibrary/pull/162/files#diff-0947e2727d6bad8cd0ac4122f5314bb5b04e337393075bc4b5ef143b17fcbd5bR6-R52))
  • Cleaned up .gitattributes by removing unused NCrunch project/solution patterns. ([.gitattributesL19-L21](https://github.com/Evidos/SignhostClientLibrary/pull/162/files#diff-618cd5b83d62060ba3d027e314a21ceaf75d36067ff820db126642944145393eL19-L21))

Documentation and Code Consistency:

  • Updated the README.md example to use the correct class names and request models (SignhostApiClient, CreateTransactionRequest, and CreateSignerRequest) to match the current API and codebase. ([README.mdL18-R26](https://github.com/Evidos/SignhostClientLibrary/pull/162/files#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5L18-R26))
  • Added a comprehensive document (docs/components-vs-dataobjects.md) detailing discrepancies between the OpenAPI schema (components.yml) and the C# POCO models, highlighting areas where the codebase does not fully enforce or reflect the schema. ([docs/components-vs-dataobjects.mdR1-R45](https://github.com/Evidos/SignhostClientLibrary/pull/162/files#diff-0691c1c894da077a8591c282188d37d7b9a7ae0b43ec8a7b45e84f50ab68ea05R1-R45))

Test Maintenance:

  • Removed the auto-generated APIResponses.Designer.cs file from the unit tests, likely as part of test cleanup or migration to a new resource management approach. ([src/SignhostAPIClient.Tests/APIResponses.Designer.csL1-L186](https://github.com/Evidos/SignhostClientLibrary/pull/162/files#diff-71e97f2541eac50ae36c52dc5e9901bbb391939f39d9828300e1501cb23d5c9eL1-L186))

Modernizes the codebase by upgrading to .NET 10, enabling use of newer language features and APIs.
Removes legacy netstandard1.4 support and related conditional logic to simplify maintenance.
Improves compatibility with future .NET releases.
- Replaced Newtonsoft.Json with System.Text.Json for JSON serialization and deserialization across the API client.
- Updated interfaces and classes to reflect consistent naming conventions (e.g., ISignHostApiClient to ISignhostApiClient).
- Removed obsolete JsonConverter classes that were specific to Newtonsoft.Json.
- Introduced centralized JSON serializer options in SignhostJsonSerializerOptions for consistent serialization behavior.
- Added new JSON test resources for various transaction scenarios to ensure compatibility with the updated serialization logic.
Also refactor file digest options to use enum for hash algorithms and update related tests
@@ -0,0 +1 @@
{"Signers":{"someSignerId":{"FormSets":["SampleFormSet"]}},"FormSets":{"SampleFormSet":{"SampleCheck":{"Type":"Check","Value":"I agree","Location":{"Search":"test"}}}}}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would expect this file to look the same as the other .json files.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This content is used to compare what our client sends in it's HTTP call; which is unformatted.. Request vs Response

Will look into making this clearer

@maccuaa
Copy link

maccuaa commented Jan 22, 2026

What are the public SDK API changes? Are there breaking changes in this PR which is why we're doing a major version bump?

@ATimmeh33
Copy link
Collaborator Author

ATimmeh33 commented Jan 27, 2026

What are the public SDK API changes? Are there breaking changes in this PR which is why we're doing a major version bump?

Yes, there are a lot of breaking changes:

  • Supported platforms: added new ones, removed netstandard1.4
  • Dependencies: swapped Newtonsoft.Json for System.Text.Json
  • Models: fixed all properties that were inconsistent with our API documentation, and removed legacy properties (undocumented)
  • Methods: removed all outdated methods (which existed only to avoid breaking changes)

Will make a full overview since we need a migration guide anyways

Copy link
Contributor

@BerendJonkman BerendJonkman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved tech & style - 325afbfaa83ff6430a21539128a7803c57bdcdac

@maccuaa
Copy link

maccuaa commented Jan 27, 2026

Should that migration guide be in this repo or on evidos.github.io?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Development

Successfully merging this pull request may close these issues.

4 participants