github.com/jfrog/jfrog-cli-core/v2@v2.51.0/artifactory/commands/transferfiles/state/utils_test.go (about)

     1  package state
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  )
     8  
     9  func TestSecondsToLiteralTime(t *testing.T) {
    10  	testCases := []struct {
    11  		name          string
    12  		expected      string
    13  		secsToConvert int64
    14  		prefix        string
    15  	}{
    16  		{"plural days and plural hours", "About 11 days and 13 hours", getTimeInSecs(11, 13, 3, 7), "About "},
    17  		{"plural days and singular hour", "5 days and 1 hour", getTimeInSecs(5, 1, 2, 0), ""},
    18  		{"plural days", " 3 days", getTimeInSecs(3, 0, 4, 0), " "},
    19  		{"singular day and plural hours", "About 1 day and 2 hours", getTimeInSecs(1, 2, 6, 6), "About "},
    20  		{"singular day and singular hour", "About 1 day and 1 hour", getTimeInSecs(1, 1, 6, 6), "About "},
    21  		{"singular day", "About 1 day", getTimeInSecs(1, 0, 4, 0), "About "},
    22  		{"plural hours and plural minutes", "About 11 hours and 13 minutes", getTimeInSecs(0, 11, 13, 0), "About "},
    23  		{"plural hours and singular minute", "About 5 hours and 1 minute", getTimeInSecs(0, 5, 1, 6), "About "},
    24  		{"plural hours", "About 3 hours", getTimeInSecs(0, 3, 0, 3), "About "},
    25  		{"singular hours and plural minutes", "About 1 hour and 13 minutes", getTimeInSecs(0, 1, 13, 0), "About "},
    26  		{"singular hours and singular minute", "About 1 hour and 1 minute", getTimeInSecs(0, 1, 1, 6), "About "},
    27  		{"singular hour", "About 1 hour", getTimeInSecs(0, 1, 0, 3), "About "},
    28  		{"plural minutes", "About 10 minutes", getTimeInSecs(0, 0, 10, 3), "About "},
    29  		{"singular minute", "About 1 minute", getTimeInSecs(0, 0, 1, 3), "About "},
    30  		{"seconds", "Less than a minute", getTimeInSecs(0, 0, 0, 3), "About "},
    31  		{"seconds no prefix", "Less than a minute", getTimeInSecs(0, 0, 0, 4), ""},
    32  	}
    33  
    34  	for _, testCase := range testCases {
    35  		t.Run(testCase.name, func(t *testing.T) {
    36  			assert.Equal(t, testCase.expected, SecondsToLiteralTime(testCase.secsToConvert, testCase.prefix))
    37  		})
    38  	}
    39  }
    40  
    41  func getTimeInSecs(days, hours, minutes, seconds int64) int64 {
    42  	return 86400*days + 3600*hours + 60*minutes + seconds
    43  }