2022-02-11 15:17:00 +01:00
|
|
|
package promutils
|
|
|
|
|
|
|
|
import (
|
|
|
|
"testing"
|
|
|
|
"time"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestDuration(t *testing.T) {
|
|
|
|
if _, err := ParseDuration("foobar"); err == nil {
|
|
|
|
t.Fatalf("expecting error for invalid duration")
|
|
|
|
}
|
|
|
|
dNative, err := ParseDuration("1w")
|
|
|
|
if err != nil {
|
|
|
|
t.Fatalf("unexpected error: %s", err)
|
|
|
|
}
|
|
|
|
if dNative != 7*24*time.Hour {
|
|
|
|
t.Fatalf("unexpected duration; got %s; want %s", dNative, 7*24*time.Hour)
|
|
|
|
}
|
|
|
|
d := NewDuration(dNative)
|
|
|
|
if d.Duration() != dNative {
|
|
|
|
t.Fatalf("unexpected duration; got %s; want %s", d.Duration(), dNative)
|
|
|
|
}
|
|
|
|
v, err := d.MarshalYAML()
|
|
|
|
if err != nil {
|
|
|
|
t.Fatalf("unexpected error in MarshalYAML(): %s", err)
|
|
|
|
}
|
|
|
|
sExpected := "168h0m0s"
|
|
|
|
if s := v.(string); s != sExpected {
|
|
|
|
t.Fatalf("unexpected value from MarshalYAML(); got %q; want %q", s, sExpected)
|
|
|
|
}
|
2024-07-10 00:14:15 +02:00
|
|
|
if err := d.UnmarshalYAML(func(v any) error {
|
2022-02-11 15:17:00 +01:00
|
|
|
sp := v.(*string)
|
|
|
|
s := "1w3d5h"
|
|
|
|
*sp = s
|
|
|
|
return nil
|
|
|
|
}); err != nil {
|
|
|
|
t.Fatalf("unexpected error in UnmarshalYAML(): %s", err)
|
|
|
|
}
|
|
|
|
if dNative := d.Duration(); dNative != (10*24+5)*time.Hour {
|
|
|
|
t.Fatalf("unexpected value; got %s; want %s", dNative, (10*24+5)*time.Hour)
|
|
|
|
}
|
|
|
|
}
|