files_test.go 967 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package read
  2. import (
  3. "testing"
  4. "github.com/stretchr/testify/assert"
  5. )
  6. func TestReadMultipleFiles(t *testing.T) {
  7. files := make(chan string, 1)
  8. go func() {
  9. files <- testFile
  10. close(files)
  11. }()
  12. outputChan := ReadMultipleFiles(files)
  13. var results []*Song
  14. outputDone := false
  15. for !outputDone {
  16. select {
  17. case result, more := <- outputChan:
  18. if more {
  19. results = append(results, result)
  20. }
  21. outputDone = !more
  22. }
  23. }
  24. assert.Len(t, results, 1)
  25. assert.Equal(t, *results[0], Song{
  26. title: testTitle,
  27. artist: testArtist,
  28. album: testAlbum,
  29. length: testLengthSeconds,
  30. })
  31. }
  32. func TestScanDirectory(t *testing.T) {
  33. files := ScanDirectory(".")
  34. var results []string
  35. done := false
  36. for !done {
  37. select {
  38. case result, more := <- files:
  39. if more {
  40. results = append(results, result)
  41. }
  42. done = !more
  43. }
  44. }
  45. assert.Equal(t, results, []string{testFile})
  46. }