47 lines
1.3 KiB
Go
47 lines
1.3 KiB
Go
|
|
package core
|
||
|
|
|
||
|
|
import (
|
||
|
|
"context"
|
||
|
|
|
||
|
|
"github.com/deluan/rest"
|
||
|
|
"github.com/navidrome/navidrome/model"
|
||
|
|
"github.com/navidrome/navidrome/tests"
|
||
|
|
)
|
||
|
|
|
||
|
|
// MockLibraryWrapper provides a simple wrapper around MockLibraryRepo
|
||
|
|
// that implements the core.Library interface for testing
|
||
|
|
type MockLibraryWrapper struct {
|
||
|
|
*tests.MockLibraryRepo
|
||
|
|
}
|
||
|
|
|
||
|
|
// MockLibraryRestAdapter adapts MockLibraryRepo to rest.Repository interface
|
||
|
|
type MockLibraryRestAdapter struct {
|
||
|
|
*tests.MockLibraryRepo
|
||
|
|
}
|
||
|
|
|
||
|
|
// NewMockLibraryService creates a new mock library service for testing
|
||
|
|
func NewMockLibraryService() Library {
|
||
|
|
repo := &tests.MockLibraryRepo{
|
||
|
|
Data: make(map[int]model.Library),
|
||
|
|
}
|
||
|
|
// Set up default test data
|
||
|
|
repo.SetData(model.Libraries{
|
||
|
|
{ID: 1, Name: "Test Library 1", Path: "/music/library1"},
|
||
|
|
{ID: 2, Name: "Test Library 2", Path: "/music/library2"},
|
||
|
|
})
|
||
|
|
return &MockLibraryWrapper{MockLibraryRepo: repo}
|
||
|
|
}
|
||
|
|
|
||
|
|
func (m *MockLibraryWrapper) NewRepository(ctx context.Context) rest.Repository {
|
||
|
|
return &MockLibraryRestAdapter{MockLibraryRepo: m.MockLibraryRepo}
|
||
|
|
}
|
||
|
|
|
||
|
|
// rest.Repository interface implementation
|
||
|
|
|
||
|
|
func (a *MockLibraryRestAdapter) Delete(id string) error {
|
||
|
|
return a.DeleteByStringID(id)
|
||
|
|
}
|
||
|
|
|
||
|
|
var _ Library = (*MockLibraryWrapper)(nil)
|
||
|
|
var _ rest.Repository = (*MockLibraryRestAdapter)(nil)
|