github.com/szyn/goreleaser@v0.76.1-0.20180517112710-333da09a1297/checksum/checksum_test.go (about)

     1  package checksum
     2  
     3  import (
     4  	"crypto/sha256"
     5  	"io/ioutil"
     6  	"os"
     7  	"path/filepath"
     8  	"testing"
     9  
    10  	"github.com/stretchr/testify/assert"
    11  )
    12  
    13  func TestChecksums(t *testing.T) {
    14  	folder, err := ioutil.TempDir("", "goreleasertest")
    15  	assert.NoError(t, err)
    16  	var file = filepath.Join(folder, "subject")
    17  	assert.NoError(t, ioutil.WriteFile(file, []byte("lorem ipsum"), 0644))
    18  	sum, err := SHA256(file)
    19  	assert.NoError(t, err)
    20  	assert.Equal(t, "5e2bf57d3f40c4b6df69daf1936cb766f832374b4fc0259a7cbff06e2f70f269", sum)
    21  }
    22  
    23  func TestOpenFailure(t *testing.T) {
    24  	sum, err := SHA256("/tmp/this-file-wont-exist-I-hope")
    25  	assert.Empty(t, sum)
    26  	assert.Error(t, err)
    27  }
    28  
    29  func TestFileDoesntExist(t *testing.T) {
    30  	folder, err := ioutil.TempDir("", "goreleasertest")
    31  	assert.NoError(t, err)
    32  	var path = filepath.Join(folder, "subject")
    33  	file, err := os.Create(path)
    34  	assert.NoError(t, err)
    35  	assert.NoError(t, file.Close())
    36  	_, err = doCalculate(sha256.New(), file)
    37  	assert.Error(t, err)
    38  }