mirror of
https://github.com/navidrome/navidrome.git
synced 2025-04-04 13:07:36 +03:00
The http connection is being closed before sending all data. May have something to do with the Range header
66 lines
1.2 KiB
Go
66 lines
1.2 KiB
Go
package mocks
|
|
|
|
import (
|
|
"encoding/json"
|
|
"errors"
|
|
"fmt"
|
|
"github.com/deluan/gosonic/domain"
|
|
)
|
|
|
|
func CreateMockMediaFileRepo() *MockMediaFile {
|
|
return &MockMediaFile{}
|
|
}
|
|
|
|
type MockMediaFile struct {
|
|
domain.MediaFileRepository
|
|
data map[string]*domain.MediaFile
|
|
err bool
|
|
}
|
|
|
|
func (m *MockMediaFile) SetError(err bool) {
|
|
m.err = err
|
|
}
|
|
|
|
func (m *MockMediaFile) SetData(j string, size int) {
|
|
m.data = make(map[string]*domain.MediaFile)
|
|
var l = make(domain.MediaFiles, size)
|
|
err := json.Unmarshal([]byte(j), &l)
|
|
if err != nil {
|
|
fmt.Println("ERROR: ", err)
|
|
}
|
|
for _, a := range l {
|
|
m.data[a.Id] = &a
|
|
}
|
|
}
|
|
|
|
func (m *MockMediaFile) Exists(id string) (bool, error) {
|
|
if m.err {
|
|
return false, errors.New("Error!")
|
|
}
|
|
_, found := m.data[id]
|
|
return found, nil
|
|
}
|
|
|
|
func (m *MockMediaFile) Get(id string) (*domain.MediaFile, error) {
|
|
if m.err {
|
|
return nil, errors.New("Error!")
|
|
}
|
|
mf := m.data[id]
|
|
return mf, nil
|
|
}
|
|
|
|
func (m *MockMediaFile) FindByAlbum(artistId string) (domain.MediaFiles, error) {
|
|
if m.err {
|
|
return nil, errors.New("Error!")
|
|
}
|
|
var res = make(domain.MediaFiles, len(m.data))
|
|
i := 0
|
|
for _, a := range m.data {
|
|
if a.AlbumId == artistId {
|
|
res[i] = *a
|
|
i++
|
|
}
|
|
}
|
|
|
|
return res, nil
|
|
}
|