navidrome/persistence/artist_repository_test.go

60 lines
1.3 KiB
Go
Raw Normal View History

package persistence
2020-01-12 23:32:06 +01:00
import (
"github.com/astaxie/beego/orm"
2020-01-24 01:44:08 +01:00
"github.com/deluan/navidrome/model"
2020-01-12 23:32:06 +01:00
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
)
var _ = Describe("ArtistRepository", func() {
2020-01-15 04:22:34 +01:00
var repo model.ArtistRepository
2020-01-12 23:32:06 +01:00
BeforeEach(func() {
repo = NewArtistRepository(orm.NewOrm())
2020-01-12 23:32:06 +01:00
})
Describe("Put/Get", func() {
It("saves and retrieves data", func() {
Expect(repo.Get("1")).To(Equal(&artistSaaraSaara))
})
It("overrides data if ID already exists", func() {
Expect(repo.Put(&model.Artist{ID: "1", Name: "Saara Saara is The Best!", AlbumCount: 3})).To(BeNil())
Expect(repo.Get("1")).To(Equal(&model.Artist{ID: "1", Name: "Saara Saara is The Best!", AlbumCount: 3}))
})
2020-01-12 23:32:06 +01:00
It("returns ErrNotFound when the ID does not exist", func() {
_, err := repo.Get("999")
Expect(err).To(MatchError(model.ErrNotFound))
})
2020-01-12 23:32:06 +01:00
})
Describe("GetIndex", func() {
It("returns the index", func() {
idx, err := repo.GetIndex()
Expect(err).To(BeNil())
Expect(idx).To(Equal(model.ArtistIndexes{
{
ID: "B",
Artists: model.Artists{
artistBeatles,
},
},
{
ID: "K",
Artists: model.Artists{
artistKraftwerk,
},
},
{
ID: "S",
Artists: model.Artists{
{ID: "1", Name: "Saara Saara is The Best!", AlbumCount: 3},
},
},
}))
})
2020-01-12 23:32:06 +01:00
})
})