43 lines
1.1 KiB
Go
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")
|
|
}
|
|
}
|