Adds tests for AlbumDatabase

This commit is contained in:
2016-01-21 19:34:35 +01:00
parent ef458eaaea
commit 40e1e55215
4 changed files with 60 additions and 2 deletions

53
album_database_test.go Normal file
View 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])
}
}