github.com/ssube/gitlab-ci-multi-runner@v1.2.1-0.20160607142738-b8d1285632e6/commands/helpers/artifacts_downloader_test.go (about) 1 package helpers 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 8 "gitlab.com/gitlab-org/gitlab-ci-multi-runner/common" 9 "gitlab.com/gitlab-org/gitlab-ci-multi-runner/helpers" 10 "os" 11 ) 12 13 var downloaderCredentials = common.BuildCredentials{ 14 ID: 1000, 15 Token: "test", 16 URL: "test", 17 } 18 19 func TestArtifactsDownloaderRequirements(t *testing.T) { 20 helpers.MakeFatalToPanic() 21 22 cmd := ArtifactsDownloaderCommand{} 23 assert.Panics(t, func() { 24 cmd.Execute(nil) 25 }) 26 } 27 28 func TestArtifactsDownloaderNotFound(t *testing.T) { 29 network := &testNetwork{ 30 downloadState: common.DownloadNotFound, 31 } 32 cmd := ArtifactsDownloaderCommand{ 33 BuildCredentials: downloaderCredentials, 34 network: network, 35 } 36 37 assert.Panics(t, func() { 38 cmd.Execute(nil) 39 }) 40 41 assert.Equal(t, 1, network.downloadCalled) 42 } 43 44 func TestArtifactsDownloaderForbidden(t *testing.T) { 45 network := &testNetwork{ 46 downloadState: common.DownloadForbidden, 47 } 48 cmd := ArtifactsDownloaderCommand{ 49 BuildCredentials: downloaderCredentials, 50 network: network, 51 } 52 53 assert.Panics(t, func() { 54 cmd.Execute(nil) 55 }) 56 57 assert.Equal(t, 1, network.downloadCalled) 58 } 59 60 func TestArtifactsDownloaderRetry(t *testing.T) { 61 network := &testNetwork{ 62 downloadState: common.DownloadFailed, 63 } 64 cmd := ArtifactsDownloaderCommand{ 65 BuildCredentials: downloaderCredentials, 66 network: network, 67 retryHelper: retryHelper{ 68 Retry: 2, 69 }, 70 } 71 72 assert.Panics(t, func() { 73 cmd.Execute(nil) 74 }) 75 76 assert.Equal(t, 3, network.downloadCalled) 77 } 78 79 func TestArtifactsDownloaderSucceeded(t *testing.T) { 80 network := &testNetwork{ 81 downloadState: common.DownloadSucceeded, 82 } 83 cmd := ArtifactsDownloaderCommand{ 84 BuildCredentials: downloaderCredentials, 85 network: network, 86 } 87 88 os.Remove(artifactsTestArchivedFile) 89 fi, _ := os.Stat(artifactsTestArchivedFile) 90 assert.Nil(t, fi) 91 cmd.Execute(nil) 92 assert.Equal(t, 1, network.downloadCalled) 93 fi, _ = os.Stat(artifactsTestArchivedFile) 94 assert.NotNil(t, fi) 95 }