Skip to content

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