Files
go-mxl-player/cmd/mxl-player/playback_runtime_test.go
T
2026-09-01 00:43:57 +03:00

43 lines
1.1 KiB
Go

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")
}
}