Skip to content

feat: results implement IOptionsProvider{T}#696

Merged
vbreuss merged 2 commits intomainfrom
topic/make-results-implement-ioptionsprovider
Aug 1, 2025
Merged

feat: results implement IOptionsProvider{T}#696
vbreuss merged 2 commits intomainfrom
topic/make-results-implement-ioptionsprovider

Conversation

@vbreuss
Copy link
Copy Markdown
Member

@vbreuss vbreuss commented Aug 1, 2025

This PR enhances extensibility by making result classes implement IOptionsProvider<T> for their respective options classes. This allows consumers to access the underlying options from result objects, providing better programmatic access to configuration.

Key Changes

  • Adds IOptionsProvider<T> interface implementation to multiple result classes
  • Exposes options through explicit interface implementation

In order to enhance extensibility, the result classes now implement `IOptionsProvider{T}` for their respective options.
@vbreuss vbreuss self-assigned this Aug 1, 2025
Copilot AI review requested due to automatic review settings August 1, 2025 07:54
@vbreuss vbreuss added the enhancement New feature or request label Aug 1, 2025
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR enhances extensibility by making result classes implement IOptionsProvider<T> for their respective options classes. This allows consumers to access the underlying options from result objects, providing better programmatic access to configuration.

Key Changes

  • Adds IOptionsProvider<T> interface implementation to multiple result classes
  • Exposes options through explicit interface implementation
  • Updates API surface documentation to reflect the new interface implementations

Reviewed Changes

Copilot reviewed 38 out of 38 changed files in this pull request and generated 1 comment.

File Description
Source files Multiple result classes now implement IOptionsProvider<T> with explicit interface implementations to expose their options
Test files New unit tests verify that result classes correctly implement IOptionsProvider<T> and return the expected options instances
API documentation Updated expected API surface files to reflect the new interface implementations
Comments suppressed due to low confidence (2)

Tests/aweXpect.Internal.Tests/Results/SignalCountResultTests.cs:22

  • The test method name suggests it's testing PredicateOptions, but the test is actually verifying SignalerOptions. The method name should be ShouldBeOptionsProvider_ForSignalerOptions to accurately reflect what is being tested.
	public async Task ShouldBeOptionsProvider_ForPredicateOptions()

Tests/aweXpect.Internal.Tests/Results/SignalCountResultTests.cs:12

  • The test method name suggests it's testing PredicateOptions, but the test is actually verifying SignalerOptions. The method name should be Generic_ShouldBeOptionsProvider_ForSignalerOptions to accurately reflect what is being tested.
	public async Task Generic_ShouldBeOptionsProvider_ForPredicateOptions()

Comment thread Source/aweXpect.Core/Results/ToleranceEqualityResult.cs
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Aug 1, 2025

Test Results

    4 files  ± 0      4 suites  ±0   22s ⏱️ +2s
  915 tests +13    914 ✅ +13  1 💤 ±0  0 ❌ ±0 
2 631 runs  +36  2 630 ✅ +36  1 💤 ±0  0 ❌ ±0 

Results for commit 97b6ab7. ± Comparison against base commit d5b7a30.

This pull request removes 53 and adds 66 tests. Note that renamed tests count towards both.
aweXpect.Core.Tests.Core.Exceptions.FailExceptionTests ‑ Message_ShouldBeSet(message: "message40c42c89-b8c6-452c-9ff8-5c24371801cd")
aweXpect.Core.Tests.Core.Exceptions.FailExceptionTests ‑ Message_ShouldBeSet(message: "message7ca5dc44-8edf-45d8-9a80-6c8356ab6ca8")
aweXpect.Core.Tests.Core.Exceptions.FailExceptionTests ‑ Message_ShouldBeSet(message: "messagede830993-0dcd-480c-b814-9bd5b9f5d608")
aweXpect.Core.Tests.Core.Exceptions.SkipExceptionTests ‑ Message_ShouldBeSet(message: "message067ac131-b6ab-48e4-a0b2-82c5d06f4513")
aweXpect.Core.Tests.Core.Exceptions.SkipExceptionTests ‑ Message_ShouldBeSet(message: "message3a69ad98-7cd8-4dd8-b4af-e690c3c3ddea")
aweXpect.Core.Tests.Core.Exceptions.SkipExceptionTests ‑ Message_ShouldBeSet(message: "message5c2bb88f-581d-4fa0-b86b-8f148cb7d880")
aweXpect.Core.Tests.Equivalency.EquivalencyOptionsExtensionsTests ‑ Generic_For_IgnoringMember_ShouldSetOptionForType(memberToIgnore: "memberToIgnore42a86fd3-0cd7-4a80-8e23-1c87a982e8ad")
aweXpect.Core.Tests.Equivalency.EquivalencyOptionsExtensionsTests ‑ Generic_For_IgnoringMember_ShouldSetOptionForType(memberToIgnore: "memberToIgnore572007a7-43d7-4e8c-a732-ce85443a599e")
aweXpect.Core.Tests.Equivalency.EquivalencyOptionsExtensionsTests ‑ Generic_For_IgnoringMember_ShouldSetOptionForType(memberToIgnore: "memberToIgnore5892323c-4c6c-46d6-9d8a-10e393f2c888")
aweXpect.Core.Tests.FailTests ‑ Test_ShouldThrowException(reason: "reason49052811-7929-40b0-8cab-d6c4d8751fe3")
…
aweXpect.Core.Tests.Core.Exceptions.FailExceptionTests ‑ Message_ShouldBeSet(message: "messageb55c2eb4-e7ac-40fe-ac0e-eda4a8c2d5ec")
aweXpect.Core.Tests.Core.Exceptions.FailExceptionTests ‑ Message_ShouldBeSet(message: "messagee494f630-a1e1-433d-b9e5-0092e20f8d73")
aweXpect.Core.Tests.Core.Exceptions.FailExceptionTests ‑ Message_ShouldBeSet(message: "messagef742c304-f6ad-4311-89bb-edd062601aae")
aweXpect.Core.Tests.Core.Exceptions.SkipExceptionTests ‑ Message_ShouldBeSet(message: "message0416baf4-842b-4b40-bbfa-3621cd9b256d")
aweXpect.Core.Tests.Core.Exceptions.SkipExceptionTests ‑ Message_ShouldBeSet(message: "message9f459a13-4c1e-406f-87f6-1c2410e4ee73")
aweXpect.Core.Tests.Core.Exceptions.SkipExceptionTests ‑ Message_ShouldBeSet(message: "messagefcad662f-3f2d-4b77-9b63-2ecd707029b1")
aweXpect.Core.Tests.Equivalency.EquivalencyOptionsExtensionsTests ‑ Generic_For_IgnoringMember_ShouldSetOptionForType(memberToIgnore: "memberToIgnore7515d195-52bc-40b4-9d99-d1b598a529b0")
aweXpect.Core.Tests.Equivalency.EquivalencyOptionsExtensionsTests ‑ Generic_For_IgnoringMember_ShouldSetOptionForType(memberToIgnore: "memberToIgnored43a1cdb-0306-4b35-ab34-d9be078df8b6")
aweXpect.Core.Tests.Equivalency.EquivalencyOptionsExtensionsTests ‑ Generic_For_IgnoringMember_ShouldSetOptionForType(memberToIgnore: "memberToIgnoredacfbf92-be56-4f89-8113-73fed16ca40c")
aweXpect.Core.Tests.FailTests ‑ Test_ShouldThrowException(reason: "reason69e5b716-3171-4363-ac4e-ef4f3692dd00")
…

♻️ This comment has been updated with latest results.

@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud Bot commented Aug 1, 2025

@vbreuss vbreuss merged commit 4392cf1 into main Aug 1, 2025
13 checks passed
@vbreuss vbreuss deleted the topic/make-results-implement-ioptionsprovider branch August 1, 2025 08:25
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Aug 2, 2025

This is addressed in release v2.21.0.

@github-actions github-actions Bot added the state: released The issue is released label Aug 2, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request state: released The issue is released

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants