ipld-eth-server/pkg/observers/blockchain_db_observer_test.go

39 lines
970 B
Go
Raw Normal View History

package observers_test
import (
2017-11-06 18:53:43 +00:00
"github.com/8thlight/vulcanizedb/pkg/core"
"github.com/8thlight/vulcanizedb/pkg/observers"
"github.com/8thlight/vulcanizedb/pkg/repositories"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
)
var _ = Describe("Saving blocks to the database", func() {
var repository *repositories.InMemory
BeforeEach(func() {
repository = repositories.NewInMemory()
})
It("implements the observer interface", func() {
var observer core.BlockchainObserver = observers.NewBlockchainDbObserver(repository)
Expect(observer).NotTo(BeNil())
})
2017-11-03 13:01:35 +00:00
It("saves a block with one transaction", func() {
2017-11-02 14:36:53 +00:00
block := core.Block{
2017-11-03 13:01:35 +00:00
Number: 123,
Transactions: []core.Transaction{{}},
2017-11-02 14:36:53 +00:00
}
observer := observers.NewBlockchainDbObserver(repository)
observer.NotifyBlockAdded(block)
savedBlock, err := repository.FindBlockByNumber(123)
Expect(err).ToNot(HaveOccurred())
2017-11-03 13:01:35 +00:00
Expect(len(savedBlock.Transactions)).To(Equal(1))
2017-10-31 13:58:04 +00:00
})
})