navidrome/tests/mock_property_repo.go
Deluan Quintão 58367afaea
refactor: external_metadata -> external.Provider (#3903)
* tests for TopSongs

Signed-off-by: Deluan <deluan@navidrome.org>

* convert to Ginkgo

Signed-off-by: Deluan <deluan@navidrome.org>

* consolidate tests

Signed-off-by: Deluan <deluan@navidrome.org>

* rename external metadata -wip

Signed-off-by: Deluan <deluan@navidrome.org>

* rename external metadata to extdata.Provider

Signed-off-by: Deluan <deluan@navidrome.org>

* refactor tests - wip

Signed-off-by: Deluan <deluan@navidrome.org>

* refactor test helpers

Signed-off-by: Deluan <deluan@navidrome.org>

* remove reflection

Signed-off-by: Deluan <deluan@navidrome.org>

* use mock.Mock

Signed-off-by: Deluan <deluan@navidrome.org>

* refactor

Signed-off-by: Deluan <deluan@navidrome.org>

* fix

Signed-off-by: Deluan <deluan@navidrome.org>

* receive Agents interface in Provider constructor

Signed-off-by: Deluan <deluan@navidrome.org>

* use mock for Agents

Signed-off-by: Deluan <deluan@navidrome.org>

* tests for SimilarSongs

Signed-off-by: Deluan <deluan@navidrome.org>

* remove duplication

Signed-off-by: Deluan <deluan@navidrome.org>

* ArtistImage tests

Signed-off-by: Deluan <deluan@navidrome.org>

* AlbumImage tests

Signed-off-by: Deluan <deluan@navidrome.org>

* fix provider error handling

Signed-off-by: Deluan <deluan@navidrome.org>

* UpdateAlbumInfo tests - wip

Signed-off-by: Deluan <deluan@navidrome.org>

* UpdateAlbumInfo tests - wip

Signed-off-by: Deluan <deluan@navidrome.org>

* refactor

Signed-off-by: Deluan <deluan@navidrome.org>

* refactor

Signed-off-by: Deluan <deluan@navidrome.org>

* refactor

Signed-off-by: Deluan <deluan@navidrome.org>

* UpdateArtistInfo tests - wip

Signed-off-by: Deluan <deluan@navidrome.org>

* clean up

Signed-off-by: Deluan <deluan@navidrome.org>

* refactor

Signed-off-by: Deluan <deluan@navidrome.org>

* fix test descriptions

Signed-off-by: Deluan <deluan@navidrome.org>

* refactor

Signed-off-by: Deluan <deluan@navidrome.org>

* refactor: rename extdata package to external

Signed-off-by: Deluan <deluan@navidrome.org>

---------

Signed-off-by: Deluan <deluan@navidrome.org>
2025-04-08 21:11:09 -04:00

60 lines
1.0 KiB
Go

package tests
import "github.com/navidrome/navidrome/model"
type MockedPropertyRepo struct {
model.PropertyRepository
Error error
Data map[string]string
}
func (p *MockedPropertyRepo) init() {
if p.Data == nil {
p.Data = make(map[string]string)
}
}
func (p *MockedPropertyRepo) Put(id string, value string) error {
if p.Error != nil {
return p.Error
}
p.init()
p.Data[id] = value
return nil
}
func (p *MockedPropertyRepo) Get(id string) (string, error) {
if p.Error != nil {
return "", p.Error
}
p.init()
if v, ok := p.Data[id]; ok {
return v, nil
}
return "", model.ErrNotFound
}
func (p *MockedPropertyRepo) Delete(id string) error {
if p.Error != nil {
return p.Error
}
p.init()
if _, ok := p.Data[id]; ok {
delete(p.Data, id)
return nil
}
return model.ErrNotFound
}
func (p *MockedPropertyRepo) DefaultGet(id string, defaultValue string) (string, error) {
if p.Error != nil {
return "", p.Error
}
p.init()
v, err := p.Get(id)
if err != nil {
return defaultValue, nil //nolint:nilerr
}
return v, nil
}