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 }