github.com/HashDataInc/packer@v1.3.2/communicator/winrm/time_test.go (about) 1 package winrm 2 3 import ( 4 "testing" 5 "time" 6 ) 7 8 func TestFormatDuration(t *testing.T) { 9 // Test complex duration with hours, minutes, seconds 10 d := time.Duration(3701) * time.Second 11 s := formatDuration(d) 12 if s != "PT1H1M41S" { 13 t.Fatalf("bad ISO 8601 duration string: %s", s) 14 } 15 16 // Test only minutes duration 17 d = time.Duration(20) * time.Minute 18 s = formatDuration(d) 19 if s != "PT20M" { 20 t.Fatalf("bad ISO 8601 duration string for 20M: %s", s) 21 } 22 23 // Test only seconds 24 d = time.Duration(1) * time.Second 25 s = formatDuration(d) 26 if s != "PT1S" { 27 t.Fatalf("bad ISO 8601 duration string for 1S: %s", s) 28 } 29 30 // Test negative duration (unsupported) 31 d = time.Duration(-1) * time.Second 32 s = formatDuration(d) 33 if s != "PT0S" { 34 t.Fatalf("bad ISO 8601 duration string for negative: %s", s) 35 } 36 }