files_test.go 1001 B

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