ipld-eth-server/pkg/observers/blockchain_db_observer_test.go
2017-11-06 13:06:03 -06:00

39 lines
965 B
Go

package observers_test
import (
"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())
})
It("saves a block with one transaction", func() {
block := core.Block{
Number: 123,
Transactions: []core.Transaction{{}},
}
observer := observers.NewBlockchainDbObserver(repository)
observer.NotifyBlockAdded(block)
savedBlock := repository.FindBlockByNumber(123)
Expect(savedBlock).NotTo(BeNil())
Expect(len(savedBlock.Transactions)).To(Equal(1))
})
})