func (s *BaseStorageSuite) TestObjectStorerTxSetEncodedObjectAndCommit(c *C) { storer, ok := s.Storer.(storer.Transactioner) if !ok { c.Skip("not a plumbing.ObjectStorerTx") } tx := storer.Begin() for _, o := range s.testObjects { h, err := tx.SetEncodedObject(o.Object) c.Assert(err, IsNil) c.Assert(h.String(), Equals, o.Hash) } iter, err := s.Storer.IterEncodedObjects(plumbing.AnyObject) c.Assert(err, IsNil) _, err = iter.Next() c.Assert(err, Equals, io.EOF) err = tx.Commit() c.Assert(err, IsNil) iter, err = s.Storer.IterEncodedObjects(plumbing.AnyObject) c.Assert(err, IsNil) var count int iter.ForEach(func(o plumbing.EncodedObject) error { count++ return nil }) c.Assert(count, Equals, 4) }
func (s *BaseStorageSuite) TestObjectStorerTxGetObjectNotFound(c *C) { storer, ok := s.Storer.(storer.Transactioner) if !ok { c.Skip("not a plumbing.ObjectStorerTx") } tx := storer.Begin() o, err := tx.EncodedObject(plumbing.AnyObject, plumbing.ZeroHash) c.Assert(o, IsNil) c.Assert(err, Equals, plumbing.ErrObjectNotFound) }
func (s *BaseStorageSuite) TestObjectStorerTxSetObjectAndGetObject(c *C) { storer, ok := s.Storer.(storer.Transactioner) if !ok { c.Skip("not a plumbing.ObjectStorerTx") } tx := storer.Begin() for _, expected := range s.testObjects { h, err := tx.SetEncodedObject(expected.Object) c.Assert(err, IsNil) c.Assert(h.String(), Equals, expected.Hash) o, err := tx.EncodedObject(expected.Type, plumbing.NewHash(expected.Hash)) c.Assert(err, IsNil) c.Assert(o.Hash().String(), DeepEquals, expected.Hash) } }
func (s *BaseStorageSuite) TestObjectStorerTxSetObjectAndRollback(c *C) { storer, ok := s.Storer.(storer.Transactioner) if !ok { c.Skip("not a plumbing.ObjectStorerTx") } tx := storer.Begin() for _, o := range s.testObjects { h, err := tx.SetEncodedObject(o.Object) c.Assert(err, IsNil) c.Assert(h.String(), Equals, o.Hash) } err := tx.Rollback() c.Assert(err, IsNil) iter, err := s.Storer.IterEncodedObjects(plumbing.AnyObject) c.Assert(err, IsNil) _, err = iter.Next() c.Assert(err, Equals, io.EOF) }