Adds tests for AlbumDatabase
This commit is contained in:
@@ -22,6 +22,6 @@ func (db *AlbumDatabase) Get(AlbumID) (*Album, error) {
|
|||||||
return nil, notYetImplemented()
|
return nil, notYetImplemented()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (db *AlbumDatabase) ByPurchaseDate() ([]*Album, error) {
|
func (db *AlbumDatabase) ByPurchaseDate() ([]AlbumID, error) {
|
||||||
return nil, notYetImplemented()
|
return nil, notYetImplemented()
|
||||||
}
|
}
|
||||||
|
|||||||
53
album_database_test.go
Normal file
53
album_database_test.go
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"path/filepath"
|
||||||
|
|
||||||
|
. "gopkg.in/check.v1"
|
||||||
|
)
|
||||||
|
|
||||||
|
type AlbumDatabaseSuite struct {
|
||||||
|
db *AlbumDatabase
|
||||||
|
}
|
||||||
|
|
||||||
|
var _ = Suite(&AlbumDatabaseSuite{})
|
||||||
|
|
||||||
|
func (s *AlbumDatabaseSuite) SetUpSuite(c *C) {
|
||||||
|
var err error
|
||||||
|
s.db, err = OpenAlbumDatabase(filepath.Join(c.MkDir(), "satdb.bar.satellite/db"))
|
||||||
|
c.Assert(err, IsNil)
|
||||||
|
|
||||||
|
for _, a := range albumsDataTest {
|
||||||
|
c.Assert(s.db.AddOrUpdate(&a), IsNil)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *AlbumDatabaseSuite) TestCanDelete(c *C) {
|
||||||
|
defer func() {
|
||||||
|
//we can always add it twice
|
||||||
|
c.Assert(s.db.AddOrUpdate(&(albumsDataTest[0])), IsNil)
|
||||||
|
}()
|
||||||
|
|
||||||
|
c.Assert(s.db.Delete(albumsDataTest[0].ID), IsNil)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *AlbumDatabaseSuite) TestCanGet(c *C) {
|
||||||
|
|
||||||
|
for _, a := range albumsDataTest {
|
||||||
|
fromDb, err := s.db.Get(a.ID)
|
||||||
|
if c.Check(err, IsNil) == true {
|
||||||
|
c.Check(*fromDb, DeepEquals, a)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *AlbumDatabaseSuite) TestCanSort(c *C) {
|
||||||
|
// here
|
||||||
|
data := []AlbumID{}
|
||||||
|
sorted, err := s.db.ByPurchaseDate()
|
||||||
|
c.Assert(err, IsNil)
|
||||||
|
c.Assert(len(sorted), Equals, len(data))
|
||||||
|
for i, a := range sorted {
|
||||||
|
c.Check(a, Equals, data[i])
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -26,6 +26,7 @@ func (s *AlbumDescriptionGetterSuite) TestGet(c *C) {
|
|||||||
for _, a := range albumsDataTest {
|
for _, a := range albumsDataTest {
|
||||||
aStripped := StripNonCsvField(a)
|
aStripped := StripNonCsvField(a)
|
||||||
if c.Check(s.g.Get(&aStripped), IsNil) == true {
|
if c.Check(s.g.Get(&aStripped), IsNil) == true {
|
||||||
|
//we skip the fetch date, for sure it will always expire
|
||||||
aStripped.FetchDate = a.FetchDate
|
aStripped.FetchDate = a.FetchDate
|
||||||
c.Check(aStripped, DeepEquals, a)
|
c.Check(aStripped, DeepEquals, a)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import (
|
|||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
|
"log"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"regexp"
|
"regexp"
|
||||||
@@ -83,6 +84,7 @@ func GetCsvData() *bytes.Buffer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
start := time.Now()
|
||||||
albumsPath := filepath.Join("testdata", "albums.json")
|
albumsPath := filepath.Join("testdata", "albums.json")
|
||||||
f, err := os.Open(albumsPath)
|
f, err := os.Open(albumsPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -95,10 +97,12 @@ func init() {
|
|||||||
panic(fmt.Sprintf("Could not parse '%s': %s", albumsPath, err))
|
panic(fmt.Sprintf("Could not parse '%s': %s", albumsPath, err))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
log.Printf("loaded test data in %s", time.Since(start))
|
||||||
|
start = time.Now()
|
||||||
dv := diskv.New(diskv.Options{
|
dv := diskv.New(diskv.Options{
|
||||||
BasePath: filepath.Join("testdata", "web-cache"),
|
BasePath: filepath.Join("testdata", "web-cache"),
|
||||||
CacheSizeMax: 100 * 1024 * 1024, // 100MB
|
CacheSizeMax: 100 * 1024 * 1024, // 100MB
|
||||||
})
|
})
|
||||||
testGetter = httpcache.NewTransport(diskcache.NewWithDiskv(dv)).Client()
|
testGetter = httpcache.NewTransport(diskcache.NewWithDiskv(dv)).Client()
|
||||||
|
log.Printf("loaded httpcache in %s", time.Since(start))
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user