package main import ( "testing" "time" "mxl-player/internal/playback" ) func validRuntimeRetryPolicy() playback.RetryPolicy { return playback.RetryPolicy{ MaxAttempts: 3, InitialDelay: time.Millisecond, MaxDelay: time.Second, } } func TestNewPlayerPlaybackBuildsCompleteRuntime(t *testing.T) { runtime, err := newPlayerPlayback(123, validRuntimeRetryPolicy()) if err != nil { t.Fatalf("newPlayerPlayback() error = %v", err) } if runtime.Controller == nil || runtime.Video == nil || runtime.Status == nil || runtime.Audio == nil { t.Fatalf("newPlayerPlayback() = %#v", runtime) } if runtime.Commands == nil || cap(runtime.Commands) != 32 { t.Fatalf("command channel = %#v, capacity = %d", runtime.Commands, cap(runtime.Commands)) } if err := runtime.Close(); err != nil { t.Fatalf("Close() error = %v", err) } } func TestNewPlayerPlaybackRejectsInvalidRetryPolicy(t *testing.T) { runtime, err := newPlayerPlayback(123, playback.RetryPolicy{}) if runtime != nil { t.Fatalf("newPlayerPlayback() runtime = %#v, want nil", runtime) } if err == nil { t.Fatal("newPlayerPlayback() error is nil") } }