files_test.go 1.1 KB

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