github.com/bitrise-io/go-steputils/v2@v2.0.0-alpha.30/cache/network/upload_test.go (about) 1 package network 2 3 import ( 4 "strings" 5 "testing" 6 7 "github.com/bitrise-io/go-utils/v2/log" 8 "github.com/stretchr/testify/mock" 9 ) 10 11 func Test_validateKey(t *testing.T) { 12 tests := []struct { 13 name string 14 key string 15 want string 16 wantErr bool 17 }{ 18 { 19 name: "valid key", 20 key: "my-cache-key", 21 want: "my-cache-key", 22 }, 23 { 24 name: "key with comma", 25 key: "my-cache-k,ey", 26 wantErr: true, 27 }, 28 { 29 name: "key that is too long", 30 key: strings.Repeat("cache", 103), 31 want: "cachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecachecacheca", 32 }, 33 } 34 for _, tt := range tests { 35 t.Run(tt.name, func(t *testing.T) { 36 got, err := validateKey(tt.key, log.NewLogger()) 37 if (err != nil) != tt.wantErr { 38 t.Errorf("validateKey() error = %v, wantErr %v", err, tt.wantErr) 39 return 40 } 41 if got != tt.want { 42 t.Errorf("validateKey() got = %v, want %v", got, tt.want) 43 } 44 }) 45 } 46 } 47 48 func Test_logResponseMessage(t *testing.T) { 49 tests := []struct { 50 name string 51 response acknowledgeResponse 52 wantLogMessage string 53 wantLogFn string 54 wantSkip bool 55 }{ 56 { 57 name: "Debug message", 58 response: acknowledgeResponse{ 59 Message: "Upload acknowledged: 1.6 GB used of 2 GB storage.", 60 Severity: "debug", 61 }, 62 wantLogMessage: "Upload acknowledged: 1.6 GB used of 2 GB storage.", 63 wantLogFn: "Debugf", 64 }, 65 { 66 name: "Warning message", 67 response: acknowledgeResponse{ 68 Message: "Upload acknowledged but quota exceeded: 8.6 GB used of 2 GB storage.", 69 Severity: "warning", 70 }, 71 wantLogMessage: "Upload acknowledged but quota exceeded: 8.6 GB used of 2 GB storage.", 72 wantLogFn: "Warnf", 73 }, 74 { 75 name: "Empty response", 76 response: acknowledgeResponse{}, 77 wantSkip: true, 78 }, 79 { 80 name: "Unrecognized severity", 81 response: acknowledgeResponse{ 82 Message: "Message from the future!", 83 Severity: "fatal", 84 }, 85 wantLogMessage: "Message from the future!", 86 wantLogFn: "Printf", 87 }, 88 } 89 for _, tt := range tests { 90 t.Run(tt.name, func(t *testing.T) { 91 // Given 92 mockLogger := new(MockLogger) 93 if !tt.wantSkip { 94 mockLogger.On(tt.wantLogFn, "\n", mock.Anything).Return() 95 mockLogger.On(tt.wantLogFn, tt.wantLogMessage, mock.Anything).Return() 96 mockLogger.On(tt.wantLogFn, "\n", mock.Anything).Return() 97 } 98 99 // When 100 logResponseMessage(tt.response, mockLogger) 101 102 // Then 103 mockLogger.AssertExpectations(t) 104 }) 105 } 106 }