Changes AlbumCacheCover interface
This commit is contained in:
@@ -11,7 +11,9 @@ import (
|
||||
. "gopkg.in/check.v1"
|
||||
)
|
||||
|
||||
type AlbumCoverCacheSuite struct{}
|
||||
type AlbumCoverCacheSuite struct {
|
||||
cache *AlbumCoverCache
|
||||
}
|
||||
|
||||
var _ = Suite(&AlbumCoverCacheSuite{})
|
||||
|
||||
@@ -22,14 +24,21 @@ func (g *errorGetter) Get(URL string) (*http.Response, error) {
|
||||
return nil, fmt.Errorf("I will always have an error")
|
||||
}
|
||||
|
||||
func (s *AlbumCoverCacheSuite) SetUpSuite(c *C) {
|
||||
s.cache = NewAlbumCoverCache(c.MkDir(), 10, 10*time.Second)
|
||||
s.cache.getter = testGetter
|
||||
|
||||
for _, a := range albumsDataTest {
|
||||
s.cache.RegisterCover(a.ID, a.CoverURL)
|
||||
}
|
||||
}
|
||||
|
||||
func (s *AlbumCoverCacheSuite) TestCanFetchCache(c *C) {
|
||||
cache := NewAlbumCoverCache(c.MkDir(), 10, 10*time.Second)
|
||||
cache.getter = testGetter
|
||||
|
||||
var resData = []bytes.Buffer{}
|
||||
start := time.Now()
|
||||
for _, a := range albumsDataTest {
|
||||
cover, err := cache.GetCover(&a)
|
||||
cover, err := s.cache.GetCover(a.ID)
|
||||
var buf bytes.Buffer
|
||||
if c.Check(err, IsNil) == true {
|
||||
_, err := io.Copy(&buf, cover)
|
||||
@@ -39,12 +48,12 @@ func (s *AlbumCoverCacheSuite) TestCanFetchCache(c *C) {
|
||||
resData = append(resData, buf)
|
||||
}
|
||||
|
||||
cache.getter = &errorGetter{}
|
||||
s.cache.getter = &errorGetter{}
|
||||
|
||||
// now we check that we get it again, but from the disk, not
|
||||
// hitting the web
|
||||
for i, a := range albumsDataTest {
|
||||
cover, err := cache.GetCover(&a)
|
||||
cover, err := s.cache.GetCover(a.ID)
|
||||
var buf bytes.Buffer
|
||||
if c.Check(err, IsNil) == true {
|
||||
_, err := io.Copy(&buf, cover)
|
||||
@@ -56,10 +65,10 @@ func (s *AlbumCoverCacheSuite) TestCanFetchCache(c *C) {
|
||||
}
|
||||
|
||||
// now if we it the TTL, we will reftech and get error
|
||||
cache.TTL = 0
|
||||
s.cache.TTL = 0
|
||||
|
||||
for _, a := range albumsDataTest {
|
||||
cover, err := cache.GetCover(&a)
|
||||
cover, err := s.cache.GetCover(a.ID)
|
||||
c.Check(cover, IsNil)
|
||||
c.Check(err, ErrorMatches, "I will always have an error")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user