Skip to content

Restructure repo into src/tests directory layout and consolidate Eventing test factories#517

Draft
jschick04 wants to merge 28 commits intojschick/move-modals-to-componentsfrom
jschick/eventing-test-isolation-slnf
Draft

Restructure repo into src/tests directory layout and consolidate Eventing test factories#517
jschick04 wants to merge 28 commits intojschick/move-modals-to-componentsfrom
jschick/eventing-test-isolation-slnf

Conversation

@jschick04
Copy link
Copy Markdown
Collaborator

Stacked on #516 — base is jschick/move-modals-to-components to mirror the PR-Eventing stack. When #516 merges, this PR''s diff resolves to just the 3 commits at its tip.

Summary

Restructure the repo into top-level src/, tests/Unit/, and tests/Integration/ directories, lift the solution file to the repo root, replace a fragile cross-test-project source link with a local copy, and consolidate inline model construction in Eventing.Tests behind shared factories.

Why now

PR #516 split Eventing tests into a dedicated EventLogExpert.Eventing.IntegrationTests project, but everything still lived under src/ next to production code, and the integration project compiled Constants.Provider.cs via <Compile Include="..\..\..\src\EventLogExpert.Eventing.Tests\TestUtils\Constants\Constants.Provider.cs" Link="..." /> — a path-fragile cross-project reference flagged by review. This PR finishes the test-isolation story: prod and tests live in physically separate trees, every test project owns its own TestUtils, and the 50+ inline new ProviderDetails / EventModel / MessageModel { ... } constructions in Eventing.Tests move behind named factory helpers so the next round of test changes doesn''t have to hunt-and-peck through duplicated literals.

Changes (3 commits on top of #516)

  1. Restructure into src/, tests/Unit/, tests/Integration/ and split CI test runs. 111 file moves (preserved via git mv, ≥80% rename similarity), 2 modifications: EventLogExpert.slnx lifted to the repo root, GH workflow updated to run unit and integration test suites as separate steps.

  2. Promote Eventing model factories into EventUtils. New public helpers CreateEventModel(...), CreateMessageModel(...), CreateProvider(...) (the last one promoted from ProviderDetailsMergerTests''s private static). 66 inline constructions replaced across EventProviderDbContextTests (36), ProviderDetailsMergerTests (9), ProviderDetailsTests (8), EventProviderDatabaseEventResolverTests (13). Bespoke arrange data in EventResolverBaseTests (16 matches) deliberately left inline — each fixture has load-bearing parameter shape that a generic factory would obscure.

  3. Replace cross-project Constants.Provider link with local copy. Drops the <Compile Include> from EventLogExpert.Eventing.IntegrationTests.csproj; new local tests/Integration/EventLogExpert.Eventing.IntegrationTests/TestUtils/Constants/Constants.Provider.cs (17 lines, 8 constants — the subset the integration suite actually uses, in namespace EventLogExpert.Eventing.IntegrationTests.TestUtils.Constants). Seven integration test files updated to import the local namespace. Per the AGENTS.md TestUtils rule, duplication beats cross-project linkage when the surfaces can drift independently. Same commit also folds in nine pre-existing whitespace cleanups (IDE2000 / IDE2003) auto-applied by dotnet format.

Verification

  • dotnet build EventLogExpert.slnx0 warnings, 0 errors
  • dotnet test EventLogExpert.slnx --filter "FullyQualifiedName!~IntegrationTests"1,625 / 1,625 pass (Eventing.Tests 389 / EventDbTool.Tests 19 / Components.Tests 144 / UI.Tests 1,073)
  • dotnet format EventLogExpert.slnx --verify-no-changes — clean
  • All 111 prod/test file moves used git mv — history preserved.
  • Backup tag backup/test-isolation-pre-rebuild-20260508 retained in case the rebuild needs to be undone.

jschick04 added 27 commits May 6, 2026 20:59
@jschick04 jschick04 requested a review from a team as a code owner May 8, 2026 19:25
@jschick04 jschick04 marked this pull request as draft May 8, 2026 19:27
@jschick04 jschick04 requested a review from Copilot May 8, 2026 19:27
Copy link
Copy Markdown
Contributor

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 pull request completes the repository re-layout into src/ + tests/Unit + tests/Integration, removes remaining cross-project test-source linkage, and consolidates repeated Eventing test model setup behind shared factories while updating namespaces/APIs introduced by the Eventing refactor stack.

Changes:

  • Move solution + projects into src/ and split tests into tests/Unit and tests/Integration, updating CI to run them separately.
  • Introduce/expand shared test utilities (constants + factories) and replace inline model constructions in Eventing tests.
  • Finalize Eventing namespace moves (HelpersLogging / Readers / Interop) and tighten a few internal surfaces (friend assemblies via InternalsVisibleTo).

Reviewed changes

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

Show a summary per file
File Description
tests/Unit/EventLogExpert.UI.Tests/TestUtils/LoggerUtils.cs Update imports to new Eventing.Logging namespace.
tests/Unit/EventLogExpert.UI.Tests/TestUtils/HttpUtils.cs Add HTTP test helper with mock HttpMessageHandler.
tests/Unit/EventLogExpert.UI.Tests/TestUtils/GitHubUtils.cs Add GitHub release model fixture builder for UI tests.
tests/Unit/EventLogExpert.UI.Tests/TestUtils/FilterUtils.cs Add shared filter/test factory helpers for UI model tests.
tests/Unit/EventLogExpert.UI.Tests/TestUtils/EventUtils.cs Update imports for Readers namespace usage.
tests/Unit/EventLogExpert.UI.Tests/TestUtils/DeploymentUtils.cs Add WinRT deployment operation mock for update/deployment tests.
tests/Unit/EventLogExpert.UI.Tests/TestUtils/DatabaseSeedUtils.cs Update imports to new Eventing.Logging namespace.
tests/Unit/EventLogExpert.UI.Tests/TestUtils/Constants/Constants.Settings.cs Add shared settings constants for tests.
tests/Unit/EventLogExpert.UI.Tests/TestUtils/Constants/Constants.GitHubRelease.cs Add GitHub release fixture constants.
tests/Unit/EventLogExpert.UI.Tests/TestUtils/Constants/Constants.Filter.cs Add shared filter-expression/value constants.
tests/Unit/EventLogExpert.UI.Tests/TestUtils/Constants/Constants.EventLog.cs Add shared event log/path constants.
tests/Unit/EventLogExpert.UI.Tests/TestUtils/Constants/Constants.Deployment.cs Add deployment/update-related constants for tests.
tests/Unit/EventLogExpert.UI.Tests/TestUtils/Constants/Constants.DebugLog.cs Add debug-log fixture constants for UI tests.
tests/Unit/EventLogExpert.UI.Tests/TestUtils/Constants/Constants.Database.cs Add database fixture constants for UI tests.
tests/Unit/EventLogExpert.UI.Tests/TestUtils/Constants/Constants.AppTitle.cs Add app title/progress constants for tests.
tests/Unit/EventLogExpert.UI.Tests/Store/FilterPane/FilterPaneEffectsTests.cs Update imports for moved Eventing types.
tests/Unit/EventLogExpert.UI.Tests/Store/FilterGroup/FilterGroupEffectsTests.cs Add new tests covering filter-group effects persistence/dispatch.
tests/Unit/EventLogExpert.UI.Tests/Store/EventTable/EventTableStoreTests.cs Update imports for moved Eventing types.
tests/Unit/EventLogExpert.UI.Tests/Store/EventLog/EventLogStoreTests.cs Update imports for moved Eventing types.
tests/Unit/EventLogExpert.UI.Tests/Store/EventLog/EventLogEffectsTests.cs Update imports for moved Eventing logging/reader types.
tests/Unit/EventLogExpert.UI.Tests/Services/UpdateServiceTests.cs Update imports to new Eventing.Logging namespace.
tests/Unit/EventLogExpert.UI.Tests/Services/ReversedListViewTests.cs Add unit tests for ReversedListView<T>.
tests/Unit/EventLogExpert.UI.Tests/Services/ReleaseNotesNormalizerTests.cs Add tests for release notes normalization behavior.
tests/Unit/EventLogExpert.UI.Tests/Services/MenuServiceTests.cs Add tests for menu open/close/navigation event semantics.
tests/Unit/EventLogExpert.UI.Tests/Services/GitHubServiceTests.cs Update imports to new Eventing.Logging namespace.
tests/Unit/EventLogExpert.UI.Tests/Services/FilterServiceTests.cs Update imports for moved Eventing types.
tests/Unit/EventLogExpert.UI.Tests/Services/FilterCompilerTests.cs Add tests for filter compilation/validation.
tests/Unit/EventLogExpert.UI.Tests/Services/FilterCategoryItemsCacheTests.cs Update imports for moved Eventing types.
tests/Unit/EventLogExpert.UI.Tests/Services/EmptyLogAlertFormatterTests.cs Add tests for empty-log alert message formatting.
tests/Unit/EventLogExpert.UI.Tests/Services/DeploymentServiceTests.cs Update imports to new Eventing.Logging namespace.
tests/Unit/EventLogExpert.UI.Tests/Services/DatabaseServiceTests.cs Update imports to new Eventing.Logging namespace.
tests/Unit/EventLogExpert.UI.Tests/Services/BannerServiceTests.cs Update imports to new Eventing.Logging namespace.
tests/Unit/EventLogExpert.UI.Tests/Models/RequiresXmlTests.cs Add tests for EventFilter.RequiresXml aggregation.
tests/Unit/EventLogExpert.UI.Tests/Models/GitReleaseModelTests.cs Add tests for parsed/normalized GitHub release changes list.
tests/Unit/EventLogExpert.UI.Tests/Models/FilterModelTests.cs Add round-trip + creation tests for FilterModel persistence/behavior.
tests/Unit/EventLogExpert.UI.Tests/Models/FilterDraftModelTests.cs Add tests for draft/model conversion and immutability expectations.
tests/Unit/EventLogExpert.UI.Tests/Models/FilterDataTests.cs Add tests for FilterData copy/WithCategory semantics.
tests/Unit/EventLogExpert.UI.Tests/Models/FilterDataDraftTests.cs Add tests for draft mutation + round-trip conversion.
tests/Unit/EventLogExpert.UI.Tests/LogNameMethodsTests.cs Add tests for LogNameMethods.GetMenuPath and hard-coded names.
tests/Unit/EventLogExpert.UI.Tests/GlobalUsings.cs Add global Xunit using.
tests/Unit/EventLogExpert.UI.Tests/EventLogExpert.UI.Tests.csproj Fix project reference path under new repo layout.
tests/Unit/EventLogExpert.UI.Tests/DateRangeDefaultsTests.cs Update imports for moved Eventing types.
tests/Unit/EventLogExpert.UI.Tests/DatabaseStatusLabelsTests.cs Add tests for status→label mapping and badge label precedence.
tests/Unit/EventLogExpert.Eventing.Tests/TestUtils/EventUtils.cs Add shared factories for Eventing unit tests (provider/message/event models).
tests/Unit/EventLogExpert.Eventing.Tests/TestUtils/Constants/Constants.Resolver.cs Add resolver-related constants to shared test constants.
tests/Unit/EventLogExpert.Eventing.Tests/TestUtils/Constants/Constants.Provider.cs Add provider/log constants to shared test constants.
tests/Unit/EventLogExpert.Eventing.Tests/TestUtils/CompressionTestUtils.cs Add compression test helpers + fixture types.
tests/Unit/EventLogExpert.Eventing.Tests/Readers/LogNamesTests.cs Update namespace/imports to match Readers move.
tests/Unit/EventLogExpert.Eventing.Tests/Providers/ProviderDetailsTests.cs Replace inline ProviderDetails construction with factories/constants.
tests/Unit/EventLogExpert.Eventing.Tests/Providers/EventMessageProviderTests.cs Add/adjust tests for EventMessageProvider.GetMessages behavior/logging.
tests/Unit/EventLogExpert.Eventing.Tests/Interop/NativeMethodsTests.cs Update namespace/imports to match Interop move.
tests/Unit/EventLogExpert.Eventing.Tests/Interop/NativeErrorResolverTests.cs Update tests for renamed NativeErrorResolver APIs.
tests/Unit/EventLogExpert.Eventing.Tests/GlobalUsings.cs Add global Xunit using.
tests/Unit/EventLogExpert.Eventing.Tests/EventResolvers/VersatileEventResolverTests.cs Update logging imports; add mixed DB/unknown provider scenario test; refactor provider loop into theory.
tests/Unit/EventLogExpert.Eventing.Tests/EventResolvers/LocalProviderEventResolverTests.cs Update imports to new Eventing.Logging namespace.
tests/Unit/EventLogExpert.Eventing.Tests/EventResolvers/EventResolverCacheTests.cs Whitespace-only cleanup in concurrency assertions.
tests/Unit/EventLogExpert.Eventing.Tests/EventResolvers/EventResolverBaseTests.cs Update imports for Interop + Logging; strengthen a Win32 message assertion; add supplemental-details unmapped-id test.
tests/Unit/EventLogExpert.Eventing.Tests/EventResolvers/EventProviderDatabaseEventResolverTests.cs Replace inline ProviderDetails creation with factory calls; update logging import.
tests/Unit/EventLogExpert.Eventing.Tests/EventProviderDatabase/ProviderJsonContextTests.cs Add coverage ensuring source-generated JSON metadata is present + basic round-trips.
tests/Unit/EventLogExpert.Eventing.Tests/EventProviderDatabase/CompressedJsonValueConverterTests.cs Narrow invalid-data assertion to InvalidDataException.
tests/Unit/EventLogExpert.Eventing.Tests/EventLogExpert.Eventing.Tests.csproj Fix project reference path under new repo layout.
tests/Unit/EventLogExpert.EventDbTool.Tests/UpgradeDatabaseCommandTests.cs Update imports to new Eventing.Logging namespace.
tests/Unit/EventLogExpert.EventDbTool.Tests/TestUtils/DatabaseTestUtils.cs Add shared DB-tool test helpers for temp DB creation/cleanup.
tests/Unit/EventLogExpert.EventDbTool.Tests/TestUtils/Constants/Constants.Database.cs Add DB-tool test constants.
tests/Unit/EventLogExpert.EventDbTool.Tests/ProviderSourceTests.cs Update imports to new Eventing.Logging namespace.
tests/Unit/EventLogExpert.EventDbTool.Tests/MergeDatabaseCommandTests.cs Update imports to new Eventing.Logging namespace.
tests/Unit/EventLogExpert.EventDbTool.Tests/GlobalUsings.cs Add global Xunit using.
tests/Unit/EventLogExpert.EventDbTool.Tests/EventLogExpert.EventDbTool.Tests.csproj Add unit-test project file under new repo layout.
tests/Unit/EventLogExpert.EventDbTool.Tests/DiffDatabaseCommandTests.cs Update imports to new Eventing.Logging namespace.
tests/Unit/EventLogExpert.Components.Tests/TestUtils/DebugLogUtils.cs Add component-test debug log helpers (line formatting + async enumerables).
tests/Unit/EventLogExpert.Components.Tests/TestUtils/Constants/Constants.DebugLog.cs Add debug log constants for components tests.
tests/Unit/EventLogExpert.Components.Tests/GlobalUsings.cs Add global Xunit using.
tests/Unit/EventLogExpert.Components.Tests/EventLogExpert.Components.Tests.csproj Fix project reference path under new repo layout.
tests/Unit/EventLogExpert.Components.Tests/Database/SettingsUpgradeProgressBannerTests.cs Update imports to new Eventing.Logging namespace.
tests/Unit/EventLogExpert.Components.Tests/Database/DatabaseRecoveryHostTests.cs Update imports to new Eventing.Logging namespace.
tests/Unit/EventLogExpert.Components.Tests/Database/DatabaseRecoveryDialogTests.cs Update imports to new Eventing.Logging namespace.
tests/Unit/EventLogExpert.Components.Tests/BannerHostTests.cs Update imports to new Eventing.Logging namespace.
tests/Integration/EventLogExpert.Eventing.IntegrationTests/TestUtils/Constants/Constants.Provider.cs Add local integration-test provider constants (removes cross-project link).
tests/Integration/EventLogExpert.Eventing.IntegrationTests/Readers/SmallEvtxFixture.cs Add bounded .evtx export fixture to keep integration tests deterministic/fast.
tests/Integration/EventLogExpert.Eventing.IntegrationTests/Readers/EventLogSessionTests.cs Update namespaces/constants; tighten exception expectations; remove weak “type-only” tests.
tests/Integration/EventLogExpert.Eventing.IntegrationTests/Readers/EventLogReaderTests.cs Switch bookmark tests to bounded fixture; remove flaky/weak assertions.
tests/Integration/EventLogExpert.Eventing.IntegrationTests/Readers/EventLogInformationTests.cs Tighten input validation/exception expectations; remove environment-dependent tests.
tests/Integration/EventLogExpert.Eventing.IntegrationTests/Providers/ProviderMetadataTests.cs Update namespaces/imports; remove weak “returns IDictionary/IEnumerable” tests.
tests/Integration/EventLogExpert.Eventing.IntegrationTests/GlobalUsings.cs Add global Xunit using.
tests/Integration/EventLogExpert.Eventing.IntegrationTests/EventLogExpert.Eventing.IntegrationTests.csproj Add integration-test project under new layout.
src/EventLogExpert/Services/MauiMenuActionService.cs Update imports to new Eventing.Logging namespace.
src/EventLogExpert/Services/ClipboardService.cs Update imports to new Eventing.Logging namespace.
src/EventLogExpert/MauiProgram.cs Reorder/update imports for moved logging types.
src/EventLogExpert/MainPage.xaml.cs Update imports to Eventing.Logging and Eventing.Readers.
src/EventLogExpert/Components/Sections/SplitLogTabPane.razor.cs Update imports to Eventing.Readers.
src/EventLogExpert/Components/Sections/EventTable.razor.cs Update imports to Eventing.Logging.
src/EventLogExpert/Components/Sections/DetailsPane.razor.cs Update imports to Eventing.Logging.
src/EventLogExpert/Components/Layout/UnhandledExceptionHandler.razor.cs Update imports to Eventing.Logging.
src/EventLogExpert/App.xaml.cs Update imports to Eventing.Logging.
src/EventLogExpert/_Imports.razor Update Razor imports for moved Readers namespace.
src/EventLogExpert.UI/Store/LoggingMiddleware.cs Update imports to Eventing.Logging/Eventing.Readers.
src/EventLogExpert.UI/Store/FilterCache/FilterCacheReducers.cs Formatting-only adjustment to with { ... } indentation.
src/EventLogExpert.UI/Store/EventTable/EventTableReducers.cs Update imports to Eventing.Readers.
src/EventLogExpert.UI/Store/EventLog/LiveLogWatcherService.cs Update imports to Eventing.Logging.
src/EventLogExpert.UI/Store/EventLog/ILogReloadCoordinator.cs Update imports to Eventing.Readers.
src/EventLogExpert.UI/Store/EventLog/EventLogReducers.cs Update imports to Eventing.Readers.
src/EventLogExpert.UI/Store/EventLog/EventLogEffects.cs Update imports to Eventing.Logging; whitespace cleanup.
src/EventLogExpert.UI/Store/EventLog/EventLogAction.cs Update imports to Eventing.Readers.
src/EventLogExpert.UI/Services/UpdateService.cs Update imports to Eventing.Logging.
src/EventLogExpert.UI/Services/ReleaseNotesNormalizer.cs Trailing whitespace cleanup.
src/EventLogExpert.UI/Services/GitHubService.cs Update imports to Eventing.Logging.
src/EventLogExpert.UI/Services/FilterCategoryItemsCache.cs Switch to Eventing.Models for severity enum source.
src/EventLogExpert.UI/Services/DeploymentService.cs Update imports to Eventing.Logging; whitespace/style fixes in switch.
src/EventLogExpert.UI/Services/DebugLogService.cs Update imports to Eventing.Logging.
src/EventLogExpert.UI/Services/DatabaseService.cs Update imports to Eventing.Logging; brace formatting fix.
src/EventLogExpert.UI/Services/BannerService.cs Update imports to Eventing.Logging.
src/EventLogExpert.UI/Services/ApplicationRestartService.cs Update imports to Eventing.Logging.
src/EventLogExpert.UI/Models/EventTableModel.cs Update imports to Eventing.Readers.
src/EventLogExpert.UI/Models/EventLogData.cs Update imports to Eventing.Readers.
src/EventLogExpert.UI/LogNameMethods.cs Update imports to Eventing.Readers.
src/EventLogExpert.slnx Remove old solution file under src/ (moved to repo root).
EventLogExpert.slnx Add solution file at repo root with src/ + tests/Unit + tests/Integration structure.
src/EventLogExpert.Eventing/Readers/PathType.cs Introduce PathType under Readers namespace.
src/EventLogExpert.Eventing/Readers/LogNames.cs Move LogNames into Readers namespace.
src/EventLogExpert.Eventing/Readers/EventLogSession.cs Update to Interop.NativeMethods and Win32ErrorCodes.
src/EventLogExpert.Eventing/Readers/EventLogReader.cs Update to Interop.NativeMethods and Win32ErrorCodes.
src/EventLogExpert.Eventing/Readers/EventLogInformation.cs Add argument validation + correct handle failure surfacing via NativeMethods.ThrowEventLogException.
src/EventLogExpert.Eventing/Providers/RegistryProvider.cs Move to Logging/Readers usage; internalize + minor style tweak.
src/EventLogExpert.Eventing/Providers/EventMessageProvider.cs Move interop/logging imports; internalize GetMessages; switch some interop calls to NativeMethods.
src/EventLogExpert.Eventing/Properties/AssemblyInfo.cs Remove old InternalsVisibleTo attribute file (moved to csproj).
src/EventLogExpert.Eventing/Models/SeverityLevel.cs Split out SeverityLevel enum into Models.
src/EventLogExpert.Eventing/Models/Severity.cs Move Severity into Models namespace and keep mapping logic.
src/EventLogExpert.Eventing/Models/EventRecord.cs Update imports to Eventing.Readers.
src/EventLogExpert.Eventing/Models/DisplayEventModel.cs Update imports to Eventing.Readers.
src/EventLogExpert.Eventing/Logging/WarnLogHandler.cs Add interpolated-string handler for warning-level logging.
src/EventLogExpert.Eventing/Logging/TraceLogHandler.cs Add interpolated-string handler for trace-level logging.
src/EventLogExpert.Eventing/Logging/TraceLogger.cs Move TraceLogger into Eventing.Logging namespace + whitespace cleanup.
src/EventLogExpert.Eventing/Logging/LogHandlerCore.cs Add pooled StringBuilder core for interpolated-string handlers.
src/EventLogExpert.Eventing/Logging/ITraceLogger.cs Move interface into Eventing.Logging namespace.
src/EventLogExpert.Eventing/Logging/InfoLogHandler.cs Add interpolated-string handler for info-level logging.
src/EventLogExpert.Eventing/Logging/ErrorLogHandler.cs Add interpolated-string handler for error-level logging.
src/EventLogExpert.Eventing/Logging/DebugLogHandler.cs Add interpolated-string handler for debug-level logging.
src/EventLogExpert.Eventing/Logging/CriticalLogHandler.cs Add interpolated-string handler for critical-level logging.
src/EventLogExpert.Eventing/Interop/Win32ErrorCodes.cs Rename/move Win32 error constants into Interop.
src/EventLogExpert.Eventing/Interop/SystemTime.cs Move SystemTime interop struct into Interop namespace.
src/EventLogExpert.Eventing/Interop/NativeMethods.cs Move NativeMethods into Interop namespace; remove embedded LoadLibraryFlags (now separate file).
src/EventLogExpert.Eventing/Interop/NativeErrorResolver.cs Rename/move error resolver to NativeErrorResolver in Interop.
src/EventLogExpert.Eventing/Interop/MessageResourceBlock.cs Move interop struct into Interop namespace.
src/EventLogExpert.Eventing/Interop/LoadLibraryFlags.cs Add LoadLibraryFlags enum as standalone interop type.
src/EventLogExpert.Eventing/Interop/LibraryHandle.cs Move LibraryHandle into Interop namespace.
src/EventLogExpert.Eventing/Interop/HResultConverter.cs Rename/move HRESULT helper into Interop namespace.
src/EventLogExpert.Eventing/Interop/EvtVariant.cs Move EvtVariant into Interop namespace.
src/EventLogExpert.Eventing/Interop/EvtHandle.cs Move EvtHandle into Interop namespace and update close call.
src/EventLogExpert.Eventing/Interop/EvtEnums.cs Add consolidated internal EVT enum definitions.
src/EventLogExpert.Eventing/Helpers/ExtensionMethods.cs Remove unused string regex extension helper.
src/EventLogExpert.Eventing/EventResolvers/EventXmlResolver.cs Seal resolver; replace virtual resolve with injectable strategy; update to NativeMethods.
src/EventLogExpert.Eventing/EventResolvers/EventResolverBase.cs Update imports to Interop/Logging/Readers; swap to NativeErrorResolver.
src/EventLogExpert.Eventing/EventResolvers/EventResolver.cs Update imports to Eventing.Logging.
src/EventLogExpert.Eventing/EventProviderDatabase/JsonValueConverter.cs Remove unused JSON converter.
src/EventLogExpert.Eventing/EventProviderDatabase/EventProviderDbContext.cs Update imports to Eventing.Logging; whitespace cleanup.
src/EventLogExpert.Eventing/EventProviderDatabase/CompressedJsonValueConverter.cs Internalize + seal converter type used by EF model conversion.
src/EventLogExpert.Eventing/EventLogExpert.Eventing.csproj Add InternalsVisibleTo entries for unit + integration test projects.
src/EventLogExpert.Eventing.Tests/Readers/SmallEvtxFixture.cs Remove old fixture from previous test project location.
src/EventLogExpert.EventDbTool/UpgradeDatabaseCommand.cs Update imports to Eventing.Logging.
src/EventLogExpert.EventDbTool/ShowCommand.cs Update imports to Eventing.Logging.
src/EventLogExpert.EventDbTool/RegexHelper.cs Update imports to Eventing.Logging.
src/EventLogExpert.EventDbTool/ProviderSource.cs Update imports to Eventing.Logging; minor whitespace.
src/EventLogExpert.EventDbTool/Program.cs Update imports to Eventing.Logging.
src/EventLogExpert.EventDbTool/MtaProviderSource.cs Update imports to Eventing.Logging; minor whitespace.
src/EventLogExpert.EventDbTool/MergeDatabaseCommand.cs Update imports to Eventing.Logging.
src/EventLogExpert.EventDbTool/DiffDatabaseCommand.cs Update imports to Eventing.Logging.
src/EventLogExpert.EventDbTool/DbToolCommand.cs Update imports to Eventing.Logging.
src/EventLogExpert.EventDbTool/CreateDatabaseCommand.cs Update imports to Eventing.Logging; minor whitespace.
src/EventLogExpert.EventDbTool.Tests/EventLogExpert.EventDbTool.Tests.csproj Remove old test project file from prior location.
src/EventLogExpert.Components/Menu/MenuRenderer.razor.cs Minor whitespace/flow adjustment in key handling.
src/EventLogExpert.Components/Menu/MenuBar.razor.cs Update imports to Eventing.Readers.
src/EventLogExpert.Components/Filters/SubFilterRow.razor.cs Minor formatting/braces fix.
src/EventLogExpert.Components/Database/SettingsUpgradeProgressBanner.razor.cs Update imports to Eventing.Logging.
src/EventLogExpert.Components/Database/DatabaseRecoveryHost.razor.cs Update imports to Eventing.Logging.
src/EventLogExpert.Components/Database/DatabaseRecoveryDialog.razor.cs Update imports to Eventing.Logging.
src/EventLogExpert.Components/BannerHost.razor.cs Update imports to Eventing.Logging; whitespace cleanup.
Directory.Packages.props Add central package version management.
Directory.Build.props Add repo-wide build/test properties + conditional target frameworks.
.github/workflows/PullRequest.yml Update CI to build root solution and run unit/integration test projects separately.
Comments suppressed due to low confidence (2)

tests/Unit/EventLogExpert.Eventing.Tests/TestUtils/EventUtils.cs:133

  • CreateMessageModel defaults ShortId to 0 when shortId is omitted. MessageModel.ShortId is defined as “the two low bytes of the raw ID”, so this default makes factory-produced messages unrealistic and can accidentally create collisions (different rawId values all map to ShortId=0). Consider defaulting ShortId to the low 16 bits of rawId (e.g., unchecked cast) when shortId is null.
    src/EventLogExpert.Eventing/Providers/EventMessageProvider.cs:37
  • GetMessages will currently throw a NullReferenceException if legacyProviderFiles is null (due to the foreach). Since this is a shared helper, it should validate inputs explicitly (e.g., throw ArgumentNullException for legacyProviderFiles and ArgumentException/ArgumentNullException for providerName) to produce a predictable contract for callers and tests.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread tests/Unit/EventLogExpert.Eventing.Tests/Providers/EventMessageProviderTests.cs Outdated
Copy link
Copy Markdown
Contributor

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

Copilot reviewed 147 out of 209 changed files in this pull request and generated no new comments.

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.

2 participants