Skip to content

Fix bugs, improve error handling, update packages, and add unit tests - #51

Merged
Steveiwonder merged 3 commits into
masterfrom
task/issue-50
Apr 20, 2026
Merged

Fix bugs, improve error handling, update packages, and add unit tests#51
Steveiwonder merged 3 commits into
masterfrom
task/issue-50

Conversation

@Steveiwonder

Copy link
Copy Markdown
Owner
  • Fix InMemoryFakeDataSource.GetCount() returning table count instead of row count
  • Fix SqlDataSource.GetData() connection leak (missing using statement)
  • Fix race condition in unique value tracking (HashSet not thread-safe)
  • Fix GetUniqueValue double-check pattern replaced with GetOrAdd + lock
  • Make BogusDataProvider._supported static readonly
  • Rename SqlDataPovider.cs to SqlDataProvider.cs (typo fix)
  • Replace generic Exception throws with InvalidOperationException throughout
  • Add File.Exists checks with descriptive errors in Config.Load()
  • Add null/empty guard for SourceColumns in MaskComputed
  • Update all NuGet packages to latest versions
  • Add 65 unit tests covering BogusDataProvider, Extensions, Utils, DataSourceProvider, DataMasker, and InMemoryFakeDataSource
  • Add UseList feature to ColumnConfig for random selection from a predefined list
  • Add InternalsVisibleTo for DataMasker.Tests

Steveiwonder and others added 3 commits April 20, 2026 22:44
- Fix InMemoryFakeDataSource.GetCount() returning table count instead of row count
- Fix SqlDataSource.GetData() connection leak (missing using statement)
- Fix race condition in unique value tracking (HashSet not thread-safe)
- Fix GetUniqueValue double-check pattern replaced with GetOrAdd + lock
- Make BogusDataProvider._supported static readonly
- Rename SqlDataPovider.cs to SqlDataProvider.cs (typo fix)
- Replace generic Exception throws with InvalidOperationException throughout
- Add File.Exists checks with descriptive errors in Config.Load()
- Add null/empty guard for SourceColumns in MaskComputed
- Update all NuGet packages to latest versions
- Add 65 unit tests covering BogusDataProvider, Extensions, Utils, DataSourceProvider, DataMasker, and InMemoryFakeDataSource
- Add UseList feature to ColumnConfig for random selection from a predefined list
- Add InternalsVisibleTo for DataMasker.Tests

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
  Make SqlDataProvider and SqlDataSource injectable with IDbConnection so
  they can be tested without a live SQL Server. Add Microsoft.Data.Sqlite
  to the test project and use shared-cache in-memory databases for
  integration-style tests. Overall coverage: 95.1% line, 95.3% branch.
@gitguardian

gitguardian Bot commented Apr 20, 2026

Copy link
Copy Markdown

⚠️ GitGuardian has uncovered 1 secret following the scan of your pull request.

Please consider investigating the findings and remediating the incidents. Failure to do so may lead to compromising the associated services or software components.

🔎 Detected hardcoded secret in your pull request
GitGuardian id GitGuardian status Secret Commit Filename
30524701 Triggered Generic Password cd3d9df src/DataMasker.Tests/DataSources/SqlDataSourceTests.cs View secret
🛠 Guidelines to remediate hardcoded secrets
  1. Understand the implications of revoking this secret by investigating where it is used in your code.
  2. Replace and store your secret safely. Learn here the best practices.
  3. Revoke and rotate this secret.
  4. If possible, rewrite git history. Rewriting git history is not a trivial act. You might completely break other contributing developers' workflow and you risk accidentally deleting legitimate data.

To avoid such incidents in the future consider


🦉 GitGuardian detects secrets in your source code to help developers and security teams secure the modern development process. You are seeing this because you or someone else with access to this repository has authorized GitGuardian to scan your pull request.

@Steveiwonder
Steveiwonder merged commit 708eae8 into master Apr 20, 2026
2 checks passed
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.

1 participant