feat: 自动建立实时监看媒体路径 (#51)

This commit is contained in:
ila
2026-08-13 12:42:05 +08:00
parent 3e1b367147
commit c408868113
@@ -78,6 +78,12 @@ func TestProbeUsesSeparateCredentialsPersistsProfilesAndActivatesDevice(t *testi
rtspVerifier := &credentialCapturingRTSP{}
store := NewMemoryStore()
service := NewService(onvifClient, rtspVerifier, "", store)
service.SetReadyHandler(func(_ context.Context, _ identity.Principal, result Result) MediaOutcome {
if len(result.Profiles) != 2 {
t.Fatalf("ready handler profiles=%d", len(result.Profiles))
}
return MediaOutcome{Status: "needs_attention", Detail: "媒体服务未就绪"}
})
result, err := service.Probe(context.Background(), identity.Principal{}, item.ID, "http://camera.invalid/onvif/device_service")
if err != nil {
t.Fatal(err)
@@ -85,6 +91,9 @@ func TestProbeUsesSeparateCredentialsPersistsProfilesAndActivatesDevice(t *testi
if onvifClient.got.Username != "onvif-user" || rtspVerifier.got.Username != "rtsp-user" {
t.Fatal("credentials were not separated")
}
if result.MediaStatus != "needs_attention" {
t.Fatalf("media outcome=%#v", result)
}
restarted := NewService(onvifClient, rtspVerifier, "", store)
persisted, ok := restarted.Get(item.ID)
if !ok || len(persisted.Profiles) != len(result.Profiles) {