Introduced NowPlayingRepository. Don't do anything for now

This commit is contained in:
Deluan
2016-03-16 20:27:48 -04:00
parent b660a70688
commit 4748ce142f
7 changed files with 76 additions and 4 deletions
+28
View File
@@ -0,0 +1,28 @@
package engine
import (
"errors"
"time"
)
func CreateMockNowPlayingRepo() *MockNowPlaying {
return &MockNowPlaying{data: make(map[string]time.Time)}
}
type MockNowPlaying struct {
NowPlayingRepository
data map[string]time.Time
err bool
}
func (m *MockNowPlaying) SetError(err bool) {
m.err = err
}
func (m *MockNowPlaying) Add(id string) error {
if m.err {
return errors.New("Error!")
}
m.data[id] = time.Now()
return nil
}
+14
View File
@@ -0,0 +1,14 @@
package engine
import "time"
const NowPlayingExpire = time.Duration(30) * time.Minute
type NowPlayingInfo struct {
TrackId string
Start time.Time
}
type NowPlayingRepository interface {
Add(trackId string) error
}
+3 -2
View File
@@ -13,13 +13,14 @@ type Scrobbler interface {
Register(id string, playDate time.Time, submit bool) (*domain.MediaFile, error)
}
func NewScrobbler(itunes itunesbridge.ItunesControl, mr domain.MediaFileRepository) Scrobbler {
return scrobbler{itunes, mr}
func NewScrobbler(itunes itunesbridge.ItunesControl, mr domain.MediaFileRepository, npr NowPlayingRepository) Scrobbler {
return scrobbler{itunes, mr, npr}
}
type scrobbler struct {
itunes itunesbridge.ItunesControl
mfRepo domain.MediaFileRepository
npRepo NowPlayingRepository
}
func (s scrobbler) Register(id string, playDate time.Time, submit bool) (*domain.MediaFile, error) {
+2 -1
View File
@@ -17,9 +17,10 @@ func TestScrobbler(t *testing.T) {
Init(t, false)
mfRepo := persistence.CreateMockMediaFileRepo()
npRepo := engine.CreateMockNowPlayingRepo()
itCtrl := &mockItunesControl{}
scrobbler := engine.NewScrobbler(itCtrl, mfRepo)
scrobbler := engine.NewScrobbler(itCtrl, mfRepo, npRepo)
Convey("Given a DB with one song", t, func() {
mfRepo.SetData(`[{"Id":"2","Title":"Hands Of Time"}]`, 1)