New NowPlaying and Skip detection implementation
This commit is contained in:
@@ -11,7 +11,7 @@ func CreateMockNowPlayingRepo() *MockNowPlaying {
|
||||
|
||||
type MockNowPlaying struct {
|
||||
NowPlayingRepository
|
||||
info NowPlayingInfo
|
||||
data []NowPlayingInfo
|
||||
err bool
|
||||
}
|
||||
|
||||
@@ -19,24 +19,44 @@ func (m *MockNowPlaying) SetError(err bool) {
|
||||
m.err = err
|
||||
}
|
||||
|
||||
func (m *MockNowPlaying) Set(id, username string, playerId int, playerName string) error {
|
||||
func (m *MockNowPlaying) Enqueue(playerId int, playerName string, trackId, username string) error {
|
||||
if m.err {
|
||||
return errors.New("Error!")
|
||||
}
|
||||
m.info.TrackId = id
|
||||
m.info.Username = username
|
||||
m.info.Start = time.Now()
|
||||
m.info.PlayerId = playerId
|
||||
m.info.PlayerName = playerName
|
||||
info := NowPlayingInfo{}
|
||||
info.TrackId = trackId
|
||||
info.Username = username
|
||||
info.Start = time.Now()
|
||||
info.PlayerId = playerId
|
||||
info.PlayerName = playerName
|
||||
|
||||
m.data = append(m.data, NowPlayingInfo{})
|
||||
copy(m.data[1:], m.data[0:])
|
||||
m.data[0] = info
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *MockNowPlaying) Clear(playerId int) (*NowPlayingInfo, error) {
|
||||
r := m.info
|
||||
m.info = NowPlayingInfo{}
|
||||
return &r, nil
|
||||
func (m *MockNowPlaying) Dequeue(playerId int) (*NowPlayingInfo, error) {
|
||||
if len(m.data) == 0 {
|
||||
return nil, nil
|
||||
}
|
||||
l := len(m.data)
|
||||
info := m.data[l-1]
|
||||
m.data = m.data[:l-1]
|
||||
|
||||
return &info, nil
|
||||
}
|
||||
|
||||
func (m *MockNowPlaying) Current() NowPlayingInfo {
|
||||
return m.info
|
||||
func (m *MockNowPlaying) Head(playerId int) (*NowPlayingInfo, error) {
|
||||
if len(m.data) == 0 {
|
||||
return nil, nil
|
||||
}
|
||||
info := m.data[0]
|
||||
return &info, nil
|
||||
}
|
||||
|
||||
func (m *MockNowPlaying) ClearAll() {
|
||||
m.data = make([]NowPlayingInfo, 0)
|
||||
m.err = false
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user