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]) } }