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  }