1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- package archive
- import (
- "archive/tar"
- "bytes"
- "io"
- "testing"
- )
- func TestGenerateEmptyFile(t *testing.T) {
- archive, err := Generate("emptyFile")
- if err != nil {
- t.Fatal(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
- }
- if err != nil {
- t.Fatal(err)
- }
- buf := new(bytes.Buffer)
- buf.ReadFrom(tr)
- content := buf.String()
- actualFiles = append(actualFiles, []string{hdr.Name, content})
- i++
- }
- if len(actualFiles) != len(expectedFiles) {
- t.Fatalf("Number of expected file %d, got %d.", len(expectedFiles), len(actualFiles))
- }
- for i := 0; i < len(expectedFiles); i++ {
- actual := actualFiles[i]
- expected := expectedFiles[i]
- if actual[0] != expected[0] {
- t.Fatalf("Expected name '%s', Actual name '%s'", expected[0], actual[0])
- }
- if actual[1] != expected[1] {
- t.Fatalf("Expected content '%s', Actual content '%s'", expected[1], actual[1])
- }
- }
- }
- func TestGenerateWithContent(t *testing.T) {
- archive, err := Generate("file", "content")
- if err != nil {
- t.Fatal(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
- }
- if err != nil {
- t.Fatal(err)
- }
- buf := new(bytes.Buffer)
- buf.ReadFrom(tr)
- content := buf.String()
- actualFiles = append(actualFiles, []string{hdr.Name, content})
- i++
- }
- if len(actualFiles) != len(expectedFiles) {
- t.Fatalf("Number of expected file %d, got %d.", len(expectedFiles), len(actualFiles))
- }
- for i := 0; i < len(expectedFiles); i++ {
- actual := actualFiles[i]
- expected := expectedFiles[i]
- if actual[0] != expected[0] {
- t.Fatalf("Expected name '%s', Actual name '%s'", expected[0], actual[0])
- }
- if actual[1] != expected[1] {
- t.Fatalf("Expected content '%s', Actual content '%s'", expected[1], actual[1])
- }
- }
- }
|