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  }