github.com/gocrane/crane@v0.11.0/pkg/utils/time_test.go (about)

     1  package utils
     2  
     3  import (
     4  	"testing"
     5  	"time"
     6  )
     7  
     8  func TestParseDuration(t *testing.T) {
     9  	tests := []struct {
    10  		name    string
    11  		s       string
    12  		want    time.Duration
    13  		wantErr bool
    14  	}{
    15  		{
    16  			name:    "duration string's time unit is 'd'",
    17  			s:       "1d",
    18  			want:    time.Hour * 24 * time.Duration(1),
    19  			wantErr: false,
    20  		},
    21  		{
    22  			name:    "duration string's time unit is not 'd'",
    23  			s:       "300ms",
    24  			want:    300 * time.Millisecond,
    25  			wantErr: false,
    26  		},
    27  		{
    28  			name:    "duration string's format is invalid",
    29  			s:       "",
    30  			want:    0,
    31  			wantErr: true,
    32  		},
    33  	}
    34  	for _, tt := range tests {
    35  		t.Run(tt.name, func(t *testing.T) {
    36  			got, err := ParseDuration(tt.s)
    37  			if (err != nil) != tt.wantErr {
    38  				t.Errorf("ParseDuration() error = %v, wantErr %v", err, tt.wantErr)
    39  				return
    40  			}
    41  			if got != tt.want {
    42  				t.Errorf("ParseDuration() = %v, want %v", got, tt.want)
    43  			}
    44  		})
    45  	}
    46  }
    47  
    48  func TestParseTimestamp(t *testing.T) {
    49  	tests := []struct {
    50  		name    string
    51  		ts      string
    52  		want    time.Time
    53  		wantErr bool
    54  	}{
    55  		{
    56  			name:    "parsed incorrect",
    57  			ts:      "",
    58  			wantErr: true,
    59  		},
    60  		{
    61  			name:    "parsed correct",
    62  			ts:      "1d",
    63  			wantErr: false,
    64  		},
    65  	}
    66  	for _, tt := range tests {
    67  		t.Run(tt.name, func(t *testing.T) {
    68  			_, err := ParseDuration(tt.ts)
    69  			if (err != nil) != tt.wantErr {
    70  				t.Errorf("ParseDuration() error = %v, wantErr %v", err, tt.wantErr)
    71  				return
    72  			}
    73  		})
    74  	}
    75  }