Files
go2tv/soapcalls/utils/ffprobe_test.go

56 lines
1.2 KiB
Go

package utils
import (
"testing"
"time"
)
// TestFormatDuration - test formatDuration
func TestFormatDuration(t *testing.T) {
tests := []struct {
name string
input time.Duration
expected string
}{
{
name: "Zero duration",
input: 0,
expected: "00:00:00.000",
},
{
name: "Milliseconds only",
input: 123 * time.Millisecond,
expected: "00:00:00.123",
},
{
name: "Seconds and milliseconds",
input: 12*time.Second + 345*time.Millisecond,
expected: "00:00:12.345",
},
{
name: "Minutes, seconds, and milliseconds",
input: 5*time.Minute + 23*time.Second + 789*time.Millisecond,
expected: "00:05:23.789",
},
{
name: "Hours, minutes, seconds, and milliseconds",
input: 2*time.Hour + 15*time.Minute + 9*time.Second + 56*time.Millisecond,
expected: "02:15:09.056",
},
{
name: "More than a day",
input: 26*time.Hour + 45*time.Minute + 33*time.Second + 1*time.Millisecond,
expected: "26:45:33.001",
},
}
for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
result := formatDuration(test.input)
if result != test.expected {
t.Fatalf("for input %v, expected %q but got %q", test.input, test.expected, result)
}
})
}
}