forked from cerc-io/ipld-eth-server
VDB-919 Generalise converter (#152)
* Generalise transformer stack to use InsertionModel * Add tests for event repository * Restrict accepted values in InsertionModel * Add call to repository.SetDB * Improve error propagation/clarity on GetABI() * Remove maker references in example * Please golint * refactor rollback error handling in repository * Cleaner errors in repository, refactor tests
This commit is contained in:
@@ -16,41 +16,29 @@
|
||||
|
||||
package mocks
|
||||
|
||||
import "github.com/vulcanize/vulcanizedb/pkg/core"
|
||||
import (
|
||||
"github.com/vulcanize/vulcanizedb/libraries/shared/factories/event"
|
||||
"github.com/vulcanize/vulcanizedb/pkg/core"
|
||||
"github.com/vulcanize/vulcanizedb/pkg/datastore/postgres"
|
||||
)
|
||||
|
||||
type MockConverter struct {
|
||||
ToEntitiesError error
|
||||
PassedContractAddresses []string
|
||||
ToModelsError error
|
||||
entityConverterError error
|
||||
modelConverterError error
|
||||
ContractAbi string
|
||||
LogsToConvert []core.HeaderSyncLog
|
||||
EntitiesToConvert []interface{}
|
||||
EntitiesToReturn []interface{}
|
||||
ModelsToReturn []interface{}
|
||||
ToEntitiesCalledCounter int
|
||||
ModelsToReturn []event.InsertionModel
|
||||
PassedContractAddresses []string
|
||||
SetDBCalled bool
|
||||
ToModelsCalledCounter int
|
||||
}
|
||||
|
||||
func (converter *MockConverter) ToEntities(contractAbi string, ethLogs []core.HeaderSyncLog) ([]interface{}, error) {
|
||||
for _, log := range ethLogs {
|
||||
converter.PassedContractAddresses = append(converter.PassedContractAddresses, log.Log.Address.Hex())
|
||||
}
|
||||
converter.ContractAbi = contractAbi
|
||||
converter.LogsToConvert = ethLogs
|
||||
return converter.EntitiesToReturn, converter.ToEntitiesError
|
||||
}
|
||||
|
||||
func (converter *MockConverter) ToModels(entities []interface{}) ([]interface{}, error) {
|
||||
converter.EntitiesToConvert = entities
|
||||
func (converter *MockConverter) ToModels(abi string, logs []core.HeaderSyncLog) ([]event.InsertionModel, error) {
|
||||
converter.LogsToConvert = logs
|
||||
converter.ContractAbi = abi
|
||||
converter.ToModelsCalledCounter = converter.ToModelsCalledCounter + 1
|
||||
return converter.ModelsToReturn, converter.ToModelsError
|
||||
}
|
||||
|
||||
func (converter *MockConverter) SetToEntityConverterError(err error) {
|
||||
converter.entityConverterError = err
|
||||
}
|
||||
|
||||
func (converter *MockConverter) SetToModelConverterError(err error) {
|
||||
converter.modelConverterError = err
|
||||
func (converter *MockConverter) SetDB(db *postgres.DB) {
|
||||
converter.SetDBCalled = true
|
||||
}
|
||||
|
||||
@@ -17,17 +17,18 @@
|
||||
package mocks
|
||||
|
||||
import (
|
||||
"github.com/vulcanize/vulcanizedb/libraries/shared/factories/event"
|
||||
"github.com/vulcanize/vulcanizedb/pkg/datastore/postgres"
|
||||
)
|
||||
|
||||
type MockEventRepository struct {
|
||||
createError error
|
||||
PassedModels []interface{}
|
||||
PassedModels []event.InsertionModel
|
||||
SetDbCalled bool
|
||||
CreateCalledCounter int
|
||||
}
|
||||
|
||||
func (repository *MockEventRepository) Create(models []interface{}) error {
|
||||
func (repository *MockEventRepository) Create(models []event.InsertionModel) error {
|
||||
repository.PassedModels = models
|
||||
repository.CreateCalledCounter++
|
||||
|
||||
|
||||
Reference in New Issue
Block a user