-
Notifications
You must be signed in to change notification settings - Fork 0
ADR-120: Implement simulated TiVo device for protocol-level E2E testing #71
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Co-authored-by: jodavis <6740581+jodavis@users.noreply.github.com>
Co-authored-by: jodavis <6740581+jodavis@users.noreply.github.com>
… test Co-authored-by: jodavis <6740581+jodavis@users.noreply.github.com>
Co-authored-by: jodavis <6740581+jodavis@users.noreply.github.com>
…and message matching Co-authored-by: jodavis <6740581+jodavis@users.noreply.github.com>
Test Results308 tests +3 304 ✅ +1 51s ⏱️ -2s Results for commit 61d38c9. ± Comparison against base commit b1e7759. This pull request removes 3 and adds 5 tests. Note that renamed tests count towards both.♻️ This comment has been updated with latest results. |
test/AdaptiveRemote.EndtoEndTests.TestServices/Logging/TestContextLoggerExtensions.cs
Outdated
Show resolved
Hide resolved
|
@copilot address code review feedback. Make sure the project still builds clean and the headless E2E tests still pass after changes are made. |
…e Ready state step to HostSteps, make simulated TiVo available for all tests Co-authored-by: jodavis <6740581+jodavis@users.noreply.github.com>
Verified that all code review feedback has been addressed in commit 66a718d. ✅ Project builds cleanly with /warnaserror (0 warnings, 0 errors) All changes from the previous review feedback are working correctly:
|
E2E tests currently use
NullCommandServicewhich no-ops all TiVo commands, preventing validation of protocol-level interactions.Implementation
SimulatedTiVoDevice - TCP server on loopback implementing TiVo line-based ASCII protocol:
\r(not standard\n), requiring customReadLineAsyncimplementationConcurrentBag<RecordedMessage>SimulatedEnvironment - Device lifecycle manager with builder pattern:
Test integration - Simulated TiVo device available for all tests:
--tivo:IP=127.0.0.1:{port}to hostIRCODE PLAYArchitecture
ISimulated*prefix for clarity (ISimulatedEnvironment,ISimulatedDevice,ISimulatedDeviceBuilder)Result
Protocol validation replaces no-op behavior. Messages like
IRCODE PLAY\rare captured with timestamps and verified in assertions. 2/2 E2E tests passing. Simulated device is now standard test infrastructure available to all scenarios.Original prompt
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.