camera_stream_session_test.go 727 B

123456789101112131415161718192021222324252627
  1. package parking
  2. import (
  3. "testing"
  4. "time"
  5. )
  6. func TestCameraStreamSessionPublishesOneSourceToAllSubscribers(t *testing.T) {
  7. hub := newCameraStreamHub()
  8. session := newCameraStreamSession(hub, cameraStreamConfig{DeviceCode: "CAM-TEST"})
  9. _, first := session.addSubscriber()
  10. _, second := session.addSubscriber()
  11. frame := []byte("--ffmpeg\r\nContent-Type: image/jpeg\r\n\r\nframe")
  12. session.publish(frame)
  13. for _, subscriber := range []<-chan []byte{first, second} {
  14. select {
  15. case received := <-subscriber:
  16. if string(received) != string(frame) {
  17. t.Fatalf("published frame = %q, want %q", received, frame)
  18. }
  19. case <-time.After(time.Second):
  20. t.Fatal("subscriber did not receive the shared frame")
  21. }
  22. }
  23. }