Task 4-1: Integration Test - Dynamic Queue Registration
Phase: 4 - Testing Priority: Medium Depends on: task-2-3 Reference:
docs/BountyHunter-Backend/details/feature-batch-async-processing/SPEC.md
Background
Test ProgrammaticEndpointRegistration đăng ký đúng số lượng queues/listeners khi startup và khi machine/setting mới được tạo.
Test scenarios
Startup registration
- [ ] Khởi động batch service với N machines trong DB
- [ ] Verify N machine-specific listeners đăng ký thành công (log:
[DYNAMIC_QUEUE] Listener registered for machineId=...) - [ ] Verify N×3 setting listeners đăng ký (PVP + PVP_MULTI + Coop per setting)
- [ ] Send message tới mỗi dynamic queue → listener nhận và xử lý
Runtime registration (sau task-2-3)
- [ ] Admin tạo machine mới trong runtime
- [ ] Trigger registration (via JMS event hoặc scheduled poll)
- [ ] Verify listener mới được đăng ký (log output)
- [ ] Send message tới queue mới → listener nhận
Verification / Acceptance Criteria
- [ ] Integration test starts with N machines in DB → exactly N machine-specific listener containers registered in
JmsListenerEndpointRegistry - [ ] Log contains
[DYNAMIC_QUEUE] Listener registered for machineId=<id>for every machine present at startup - [ ] For each setting, exactly 3 listener containers are registered (PVP, PVP_MULTI, Coop) — total = N × 3
- [ ] A test message sent to each dynamically registered queue is consumed successfully by the correct listener
- [ ] After runtime registration (task-2-3), a newly added machine's listener is active without service restart and consumes a test message