package archive import ( "archive/tar" "bytes" "io" "testing" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) func TestGenerateEmptyFile(t *testing.T) { archive, err := Generate("emptyFile") require.NoError(t, err) if archive == nil { t.Fatal("The generated archive should not be nil.") } expectedFiles := [][]string{ {"emptyFile", ""}, } tr := tar.NewReader(archive) actualFiles := make([][]string, 0, 10) i := 0 for { hdr, err := tr.Next() if err == io.EOF { break } require.NoError(t, err) buf := new(bytes.Buffer) _, err = buf.ReadFrom(tr) require.NoError(t, err) content := buf.String() actualFiles = append(actualFiles, []string{hdr.Name, content}) i++ } assert.Equal(t, expectedFiles, actualFiles) } func TestGenerateWithContent(t *testing.T) { archive, err := Generate("file", "content") require.NoError(t, err) if archive == nil { t.Fatal("The generated archive should not be nil.") } expectedFiles := [][]string{ {"file", "content"}, } tr := tar.NewReader(archive) actualFiles := make([][]string, 0, 10) i := 0 for { hdr, err := tr.Next() if err == io.EOF { break } require.NoError(t, err) buf := new(bytes.Buffer) _, err = buf.ReadFrom(tr) require.NoError(t, err) content := buf.String() actualFiles = append(actualFiles, []string{hdr.Name, content}) i++ } assert.Equal(t, expectedFiles, actualFiles) }