| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- package read
- import (
- "testing"
- "github.com/stretchr/testify/assert"
- )
- const testFile = "testdata/file_example_OOG_1MG.ogg"
- const testTitle = "Impact Moderato"
- const testArtist = "Kevin MacLeod"
- const testAlbum = "YouTube Audio Library"
- const testLengthSeconds = 74
- func TestReadFile(t *testing.T) {
- result, err := ReadFile(testFile)
- assert.Nil(t, err)
- assert.Equal(t, result.title, testTitle, "title must be correct")
- assert.Equal(t, result.artist, testArtist, "artist must be correct")
- assert.Equal(t, result.album, testAlbum, "album must be correct")
- assert.Equal(t, result.length, testLengthSeconds, "length must be correct")
- }
- func TestReadMultipleFiles(t *testing.T) {
- files := make(chan string, 1)
- done := make(chan bool)
- go func() {
- files <- testFile
- done <- true
- }()
- outputChan, doneChan := ReadMultipleFiles(files, done)
- var results []*Song
- outputDone := false
- for !outputDone {
- select {
- case result := <- outputChan:
- results = append(results, result)
- case <- doneChan:
- outputDone = true
- }
- }
- assert.Len(t, results, 1)
- assert.Equal(t, *results[0], Song{
- title: testTitle,
- artist: testArtist,
- album: testAlbum,
- length: testLengthSeconds,
- })
- }
|