wrap_test.go 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. package archive
  2. import (
  3. "archive/tar"
  4. "bytes"
  5. "io"
  6. "testing"
  7. )
  8. func TestGenerateEmptyFile(t *testing.T) {
  9. archive, err := Generate("emptyFile")
  10. if err != nil {
  11. t.Fatal(err)
  12. }
  13. if archive == nil {
  14. t.Fatal("The generated archive should not be nil.")
  15. }
  16. expectedFiles := [][]string{
  17. {"emptyFile", ""},
  18. }
  19. tr := tar.NewReader(archive)
  20. actualFiles := make([][]string, 0, 10)
  21. i := 0
  22. for {
  23. hdr, err := tr.Next()
  24. if err == io.EOF {
  25. break
  26. }
  27. if err != nil {
  28. t.Fatal(err)
  29. }
  30. buf := new(bytes.Buffer)
  31. buf.ReadFrom(tr)
  32. content := buf.String()
  33. actualFiles = append(actualFiles, []string{hdr.Name, content})
  34. i++
  35. }
  36. if len(actualFiles) != len(expectedFiles) {
  37. t.Fatalf("Number of expected file %d, got %d.", len(expectedFiles), len(actualFiles))
  38. }
  39. for i := 0; i < len(expectedFiles); i++ {
  40. actual := actualFiles[i]
  41. expected := expectedFiles[i]
  42. if actual[0] != expected[0] {
  43. t.Fatalf("Expected name '%s', Actual name '%s'", expected[0], actual[0])
  44. }
  45. if actual[1] != expected[1] {
  46. t.Fatalf("Expected content '%s', Actual content '%s'", expected[1], actual[1])
  47. }
  48. }
  49. }
  50. func TestGenerateWithContent(t *testing.T) {
  51. archive, err := Generate("file", "content")
  52. if err != nil {
  53. t.Fatal(err)
  54. }
  55. if archive == nil {
  56. t.Fatal("The generated archive should not be nil.")
  57. }
  58. expectedFiles := [][]string{
  59. {"file", "content"},
  60. }
  61. tr := tar.NewReader(archive)
  62. actualFiles := make([][]string, 0, 10)
  63. i := 0
  64. for {
  65. hdr, err := tr.Next()
  66. if err == io.EOF {
  67. break
  68. }
  69. if err != nil {
  70. t.Fatal(err)
  71. }
  72. buf := new(bytes.Buffer)
  73. buf.ReadFrom(tr)
  74. content := buf.String()
  75. actualFiles = append(actualFiles, []string{hdr.Name, content})
  76. i++
  77. }
  78. if len(actualFiles) != len(expectedFiles) {
  79. t.Fatalf("Number of expected file %d, got %d.", len(expectedFiles), len(actualFiles))
  80. }
  81. for i := 0; i < len(expectedFiles); i++ {
  82. actual := actualFiles[i]
  83. expected := expectedFiles[i]
  84. if actual[0] != expected[0] {
  85. t.Fatalf("Expected name '%s', Actual name '%s'", expected[0], actual[0])
  86. }
  87. if actual[1] != expected[1] {
  88. t.Fatalf("Expected content '%s', Actual content '%s'", expected[1], actual[1])
  89. }
  90. }
  91. }