Skip to content

Fix 406: Adds tests for disabling source generators - #407

Merged
Keboo merged 5 commits into
masterfrom
fix406
Dec 5, 2025
Merged

Fix 406: Adds tests for disabling source generators#407
Keboo merged 5 commits into
masterfrom
fix406

Conversation

@Keboo

@Keboo Keboo commented Dec 5, 2025

Copy link
Copy Markdown
Collaborator

Summary

Introduces a new test project to thoroughly verify the functionality of disabling individual Moq.AutoMocker source generators via MSBuild properties.

Motivation

Ensures that consumers of the Moq.AutoMock NuGet package can successfully opt-out of specific source generator features by setting dedicated MSBuild properties. This provides flexibility and control over the code generation process.

Changes

  • Introduces a new test project (GeneratorTests/Moq.AutoMock.Generator.DisableTests) configured to build with all Moq.AutoMocker generators explicitly disabled.
  • Adds reflection-based Xunit tests within the new project to confirm the absence of generated extension methods when generators are disabled.
  • Includes a build/Moq.AutoMock.props file within the Moq.AutoMock NuGet package to make generator disable properties visible to the Roslyn compiler during package consumption.
  • Updates the CI workflow (dotnetcore.yml) to integrate and run these new generator disable tests.
  • Adds Microsoft.Extensions.DependencyInjection.Abstractions to Directory.Packages.props for the new test project.
  • Increments the Moq.AutoMock package version.

Fixes #406

Introduces a new test project, `Moq.AutoMock.Generator.DisableTests`, to verify that individual source generators can be correctly disabled using MSBuild properties.

These tests assert that when a generator is explicitly disabled via properties like `EnableMoqAutoMockerOptionsGenerator=false`, its associated generated extension methods are not present in the consuming assembly.

A `Moq.AutoMock.props` file is included in the package to make these disable properties visible to the Roslyn compiler, enabling generators to respect them.

The CI workflow is updated to build and run these new tests, ensuring continuous validation of the generator disable functionality. `Microsoft.Extensions.DependencyInjection.Abstractions` is also added as a package dependency.
@Keboo
Keboo enabled auto-merge (squash) December 5, 2025 19:09
Keboo added 4 commits December 5, 2025 11:12
Updates the `dotnet test` command in the build workflow to explicitly use the `--project` flag, improving command reliability. Also, corrects the configuration key from `target` to `applyTo` in the source generator documentation agent.

Fixes #406
Uses `VersionOverride` for the local `Moq.AutoMock` package reference to bypass Central Package Management. This ensures that locally-built packages, especially those with CI version suffixes, are correctly resolved in the test project without interference from CPM.

Fixes #406
Adjusts NuGet configuration to prioritize local `Moq.AutoMock` package sources, ensuring generator tests consistently use locally-built versions. This setup is crucial for validating generator behavior against specific development builds.

Updates the `PackageReference` `VersionOverride` to `*` to reliably match any local package version, including prerelease suffixes often used in CI builds.

Fixes #406
Updates the `VersionOverride` for the `Moq.AutoMock` package reference from `*` to `*-*`.
This improves matching for both stable and prerelease versions (e.g., `3.6.2-ci0123`) when consuming a locally-built package in CI and local development environments.

Fixes #406
@Keboo
Keboo merged commit aacf061 into master Dec 5, 2025
3 checks passed
@Keboo
Keboo deleted the fix406 branch December 5, 2025 19:54
github-actions Bot pushed a commit to BenjaminMichaelis/DotnetTemplates that referenced this pull request May 6, 2026
[//]: # (dependabot-start)
⚠️  **Dependabot is rebasing this PR** ⚠️ 

Rebasing might not happen immediately, so don't worry if this takes some
time.

Note: if you make any changes to this PR yourself, they will take
precedence over the rebase.

---

[//]: # (dependabot-end)

Updated [Moq.AutoMock](https://github.com/moq/Moq.AutoMocker) from 3.5.0
to 4.0.2.

<details>
<summary>Release notes</summary>

_Sourced from [Moq.AutoMock's
releases](https://github.com/moq/Moq.AutoMocker/releases)._

## 4.0.1

## What's Changed
* Allow GetMock<IServiceProvider>() to return a mock instead of the
AutoMocker instance by @​Keboo in
moq/Moq.AutoMocker#451


**Full Changelog**:
moq/Moq.AutoMocker@v4.0.0...v4.0.1

## 4.0.0

## What's Changed
* Fix 406: Adds tests for disabling source generators by @​Keboo in
moq/Moq.AutoMocker#407
* Bump NUnit3TestAdapter from 5.2.0 to 6.0.0 by @​dependabot[bot] in
moq/Moq.AutoMocker#408
* Bump TUnit from 1.3.15 to 1.5.6 by @​dependabot[bot] in
moq/Moq.AutoMocker#409
* Clarifies Source Generator Ambiguities and Disabling by @​Keboo in
moq/Moq.AutoMocker#411
* Bump the github-actions group with 2 updates by @​dependabot[bot] in
moq/Moq.AutoMocker#413
* Bump NUnit3TestAdapter from 6.0.0 to 6.0.1 by @​dependabot[bot] in
moq/Moq.AutoMocker#416
* Bump TUnit from 1.5.6 to 1.6.5 by @​dependabot[bot] in
moq/Moq.AutoMocker#417
* Adds package validation and documentation by @​Keboo in
moq/Moq.AutoMocker#418
* Bump TUnit from 1.6.5 to 1.7.0 by @​dependabot[bot] in
moq/Moq.AutoMocker#419
* Bump TUnit from 1.7.0 to 1.9.2 by @​dependabot[bot] in
moq/Moq.AutoMocker#420
* Bump NUnit3TestAdapter from 6.0.1 to 6.1.0 by @​dependabot[bot] in
moq/Moq.AutoMocker#421
* Bump TUnit from 1.9.2 to 1.9.81 by @​dependabot[bot] in
moq/Moq.AutoMocker#422
* Bump TUnit from 1.9.81 to 1.12.3 by @​dependabot[bot] in
moq/Moq.AutoMocker#423
* Bump xunit.v3 from 3.2.1 to 3.2.2 by @​dependabot[bot] in
moq/Moq.AutoMocker#424
* Bump TUnit from 1.12.3 to 1.12.53 by @​dependabot[bot] in
moq/Moq.AutoMocker#425
* Adds Use overload for registering implementation type by @​Keboo in
moq/Moq.AutoMocker#426
* Bump TUnit from 1.12.53 to 1.12.111 by @​dependabot[bot] in
moq/Moq.AutoMocker#427
* Adds primary constructor test coverage by @​Keboo in
moq/Moq.AutoMocker#428
* Refactor: Rename `AddFakeLogging` to `WithFakeLogging` by @​Keboo in
moq/Moq.AutoMocker#429
* Bump Microsoft.SourceLink.GitHub from 8.0.0 to 10.0.102 by
@​dependabot[bot] in moq/Moq.AutoMocker#431
* Bump TUnit from 1.12.111 to 1.13.11 by @​dependabot[bot] in
moq/Moq.AutoMocker#433
* Bump MSTest from 4.0.2 to 4.1.0 by @​dependabot[bot] in
moq/Moq.AutoMocker#432
* Adds fluent HttpClient mocking support by @​Keboo in
moq/Moq.AutoMocker#434
* Bump coverlet.collector from 6.0.4 to 8.0.0 by @​dependabot[bot] in
moq/Moq.AutoMocker#435
* Bump TUnit from 1.13.11 to 1.15.0 by @​dependabot[bot] in
moq/Moq.AutoMocker#437
* Bump Microsoft.SourceLink.GitHub from 10.0.102 to 10.0.103 by
@​dependabot[bot] in moq/Moq.AutoMocker#436
* Bump Microsoft.ApplicationInsights from 2.23.0 to 3.0.0 by
@​dependabot[bot] in moq/Moq.AutoMocker#430
* Refactors HTTP response extensions by @​Keboo in
moq/Moq.AutoMocker#438
* Bump NUnit from 4.4.0 to 4.5.0 by @​dependabot[bot] in
moq/Moq.AutoMocker#439
* Bump TUnit from 1.15.0 to 1.17.7 by @​dependabot[bot] in
moq/Moq.AutoMocker#440
* Adds resolver insertion and SimpleTypeResolver base by @​Keboo in
moq/Moq.AutoMocker#441
* Bump TUnit from 1.17.7 to 1.18.0 by @​dependabot[bot] in
moq/Moq.AutoMocker#444
* Bump actions/upload-artifact from 6 to 7 in the github-actions group
by @​dependabot[bot] in moq/Moq.AutoMocker#442
* Bump Microsoft.NET.Test.Sdk from 18.0.1 to 18.3.0 by @​dependabot[bot]
in moq/Moq.AutoMocker#443
* Bump NUnit from 4.5.0 to 4.5.1 by @​dependabot[bot] in
moq/Moq.AutoMocker#446
* Bump TUnit from 1.18.0 to 1.19.16 by @​dependabot[bot] in
moq/Moq.AutoMocker#447


**Full Changelog**:
moq/Moq.AutoMocker@v3.6.1...v4.0.0

Commits viewable in [compare
view](https://github.com/moq/Moq.AutoMocker/commits).
</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
github-actions Bot pushed a commit to BenjaminMichaelis/DotnetTemplates that referenced this pull request May 15, 2026
Updated [Moq.AutoMock](https://github.com/moq/Moq.AutoMocker) from 3.5.0
to 4.0.2.

<details>
<summary>Release notes</summary>

_Sourced from [Moq.AutoMock's
releases](https://github.com/moq/Moq.AutoMocker/releases)._

## 4.0.1

## What's Changed
* Allow GetMock<IServiceProvider>() to return a mock instead of the
AutoMocker instance by @​Keboo in
moq/Moq.AutoMocker#451


**Full Changelog**:
moq/Moq.AutoMocker@v4.0.0...v4.0.1

## 4.0.0

## What's Changed
* Fix 406: Adds tests for disabling source generators by @​Keboo in
moq/Moq.AutoMocker#407
* Bump NUnit3TestAdapter from 5.2.0 to 6.0.0 by @​dependabot[bot] in
moq/Moq.AutoMocker#408
* Bump TUnit from 1.3.15 to 1.5.6 by @​dependabot[bot] in
moq/Moq.AutoMocker#409
* Clarifies Source Generator Ambiguities and Disabling by @​Keboo in
moq/Moq.AutoMocker#411
* Bump the github-actions group with 2 updates by @​dependabot[bot] in
moq/Moq.AutoMocker#413
* Bump NUnit3TestAdapter from 6.0.0 to 6.0.1 by @​dependabot[bot] in
moq/Moq.AutoMocker#416
* Bump TUnit from 1.5.6 to 1.6.5 by @​dependabot[bot] in
moq/Moq.AutoMocker#417
* Adds package validation and documentation by @​Keboo in
moq/Moq.AutoMocker#418
* Bump TUnit from 1.6.5 to 1.7.0 by @​dependabot[bot] in
moq/Moq.AutoMocker#419
* Bump TUnit from 1.7.0 to 1.9.2 by @​dependabot[bot] in
moq/Moq.AutoMocker#420
* Bump NUnit3TestAdapter from 6.0.1 to 6.1.0 by @​dependabot[bot] in
moq/Moq.AutoMocker#421
* Bump TUnit from 1.9.2 to 1.9.81 by @​dependabot[bot] in
moq/Moq.AutoMocker#422
* Bump TUnit from 1.9.81 to 1.12.3 by @​dependabot[bot] in
moq/Moq.AutoMocker#423
* Bump xunit.v3 from 3.2.1 to 3.2.2 by @​dependabot[bot] in
moq/Moq.AutoMocker#424
* Bump TUnit from 1.12.3 to 1.12.53 by @​dependabot[bot] in
moq/Moq.AutoMocker#425
* Adds Use overload for registering implementation type by @​Keboo in
moq/Moq.AutoMocker#426
* Bump TUnit from 1.12.53 to 1.12.111 by @​dependabot[bot] in
moq/Moq.AutoMocker#427
* Adds primary constructor test coverage by @​Keboo in
moq/Moq.AutoMocker#428
* Refactor: Rename `AddFakeLogging` to `WithFakeLogging` by @​Keboo in
moq/Moq.AutoMocker#429
* Bump Microsoft.SourceLink.GitHub from 8.0.0 to 10.0.102 by
@​dependabot[bot] in moq/Moq.AutoMocker#431
* Bump TUnit from 1.12.111 to 1.13.11 by @​dependabot[bot] in
moq/Moq.AutoMocker#433
* Bump MSTest from 4.0.2 to 4.1.0 by @​dependabot[bot] in
moq/Moq.AutoMocker#432
* Adds fluent HttpClient mocking support by @​Keboo in
moq/Moq.AutoMocker#434
* Bump coverlet.collector from 6.0.4 to 8.0.0 by @​dependabot[bot] in
moq/Moq.AutoMocker#435
* Bump TUnit from 1.13.11 to 1.15.0 by @​dependabot[bot] in
moq/Moq.AutoMocker#437
* Bump Microsoft.SourceLink.GitHub from 10.0.102 to 10.0.103 by
@​dependabot[bot] in moq/Moq.AutoMocker#436
* Bump Microsoft.ApplicationInsights from 2.23.0 to 3.0.0 by
@​dependabot[bot] in moq/Moq.AutoMocker#430
* Refactors HTTP response extensions by @​Keboo in
moq/Moq.AutoMocker#438
* Bump NUnit from 4.4.0 to 4.5.0 by @​dependabot[bot] in
moq/Moq.AutoMocker#439
* Bump TUnit from 1.15.0 to 1.17.7 by @​dependabot[bot] in
moq/Moq.AutoMocker#440
* Adds resolver insertion and SimpleTypeResolver base by @​Keboo in
moq/Moq.AutoMocker#441
* Bump TUnit from 1.17.7 to 1.18.0 by @​dependabot[bot] in
moq/Moq.AutoMocker#444
* Bump actions/upload-artifact from 6 to 7 in the github-actions group
by @​dependabot[bot] in moq/Moq.AutoMocker#442
* Bump Microsoft.NET.Test.Sdk from 18.0.1 to 18.3.0 by @​dependabot[bot]
in moq/Moq.AutoMocker#443
* Bump NUnit from 4.5.0 to 4.5.1 by @​dependabot[bot] in
moq/Moq.AutoMocker#446
* Bump TUnit from 1.18.0 to 1.19.16 by @​dependabot[bot] in
moq/Moq.AutoMocker#447


**Full Changelog**:
moq/Moq.AutoMocker@v3.6.1...v4.0.0

Commits viewable in [compare
view](https://github.com/moq/Moq.AutoMocker/commits).
</details>

[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=Moq.AutoMock&package-manager=nuget&previous-version=3.5.0&new-version=4.0.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Are you sure EnableMoqAutoMockerOptionsGenerator switch (and any other) really works?

1 participant