70 lines
1.8 KiB
Go
70 lines
1.8 KiB
Go
package coreutils
|
|
|
|
import (
|
|
"bytes"
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/suite"
|
|
"path"
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
type CheckLineTestSuite struct {
|
|
suite.Suite
|
|
}
|
|
|
|
func (suite *CheckLineTestSuite) TestImproperlyFormattedLine() {
|
|
t := suite.T()
|
|
valid, err := checkLine("name chef", MD5Regex, MD5Sum)
|
|
assert.Equal(t, false, valid)
|
|
assert.Error(t, err)
|
|
assert.Equal(t, ImproperlyFormattedErr, err)
|
|
}
|
|
|
|
func (suite *CheckLineTestSuite) TestMismatchedChecksum() {
|
|
t := suite.T()
|
|
line := "4a5fb9ebd6c8ea7efb53d071053ef778 " + path.Join("test_data", "some_file.txt")
|
|
valid, err := checkLine(line, MD5Regex, MD5Sum)
|
|
assert.Equal(t, false, valid)
|
|
assert.NoError(t, err)
|
|
}
|
|
|
|
func (suite *CheckLineTestSuite) TestValid() {
|
|
t := suite.T()
|
|
line := "6a5fb9ebd6c8ea7efb53d071053ef778 " + path.Join("test_data", "some_file.txt")
|
|
valid, err := checkLine(line, MD5Regex, MD5Sum)
|
|
assert.Equal(t, true, valid)
|
|
assert.NoError(t, err)
|
|
}
|
|
|
|
func TestCheckLineTestSuite(t *testing.T) {
|
|
suite.Run(t, new(CheckLineTestSuite))
|
|
}
|
|
|
|
type CheckSumsInReaderTestSuite struct {
|
|
suite.Suite
|
|
}
|
|
|
|
func (suite *CheckSumsInReaderTestSuite) Test() {
|
|
t := suite.T()
|
|
buf := bytes.NewBufferString(strings.Join(
|
|
[]string{
|
|
"name chef",
|
|
"4a5fb9ebd6c8ea7efb53d071053ef778 " + path.Join("test_data", "some_file.txt"),
|
|
"6a5fb9ebd6c8ea7efb53d071053ef778 " + path.Join("test_data", "some_file.txt"),
|
|
"4a5fb9ebd6c8ea7efb53d071053ef778 nonexistant_file",
|
|
},
|
|
"\n",
|
|
))
|
|
results, err := CheckSumsInReader(buf, MD5Regex, MD5Sum)
|
|
assert.NotNil(t, results)
|
|
assert.Equal(t, uint(1), results.ImproperlyFormattedCount)
|
|
assert.Equal(t, uint(1), results.FilesNotRead)
|
|
assert.Equal(t, uint(1), results.InvalidChecksumCount)
|
|
assert.NoError(t, err)
|
|
}
|
|
|
|
func TestCheckSumsInReaderTestSuite(t *testing.T) {
|
|
suite.Run(t, new(CheckSumsInReaderTestSuite))
|
|
}
|