64 lines
1.3 KiB
Go
64 lines
1.3 KiB
Go
package store
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func TestOpenPutGet(t *testing.T) {
|
|
dir := t.TempDir()
|
|
|
|
s, err := Open(dir)
|
|
if err != nil {
|
|
t.Fatalf("Open: %v", err)
|
|
}
|
|
defer s.Close()
|
|
|
|
if _, err := os.Stat(filepath.Join(dir, ".tracks.db")); err != nil {
|
|
t.Errorf("expected .tracks.db to exist: %v", err)
|
|
}
|
|
|
|
info := &DownloadInfo{
|
|
TrackID: "123",
|
|
Quality: "MP3_320",
|
|
Path: "/music/track.mp3",
|
|
Hash: "abc",
|
|
Downloaded: time.Now().Truncate(time.Second),
|
|
}
|
|
if err := s.PutDownloadInfo(info); err != nil {
|
|
t.Fatalf("PutDownloadInfo: %v", err)
|
|
}
|
|
|
|
got, err := s.DownloadInfo("123")
|
|
if err != nil {
|
|
t.Fatalf("DownloadInfo: %v", err)
|
|
}
|
|
if got.TrackID != info.TrackID || got.Quality != info.Quality || got.Path != info.Path || got.Hash != info.Hash {
|
|
t.Errorf("DownloadInfo() = %+v, want %+v", got, info)
|
|
}
|
|
}
|
|
|
|
func TestDownloadInfoNotFound(t *testing.T) {
|
|
s, err := Open(t.TempDir())
|
|
if err != nil {
|
|
t.Fatalf("Open: %v", err)
|
|
}
|
|
defer s.Close()
|
|
|
|
if _, err := s.DownloadInfo("missing"); err == nil {
|
|
t.Error("expected error for unknown track ID")
|
|
}
|
|
}
|
|
|
|
func TestClose(t *testing.T) {
|
|
s, err := Open(t.TempDir())
|
|
if err != nil {
|
|
t.Fatalf("Open: %v", err)
|
|
}
|
|
if err := s.Close(); err != nil {
|
|
t.Errorf("Close: %v", err)
|
|
}
|
|
}
|