Use transformer factory for Bite (#89)
* Use transformer factory for Bite - introduces separate transformer factory for non-LogNote events - converter includes `ToEntities` for events defined via ABI * Updates after rebasing with staging
This commit is contained in:
@@ -1,44 +0,0 @@
|
||||
// Copyright 2018 Vulcanize
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package bite
|
||||
|
||||
import (
|
||||
"github.com/ethereum/go-ethereum/core/types"
|
||||
|
||||
. "github.com/vulcanize/vulcanizedb/pkg/transformers/bite"
|
||||
"github.com/vulcanize/vulcanizedb/pkg/transformers/test_data"
|
||||
)
|
||||
|
||||
type MockBiteConverter struct {
|
||||
ConverterAbi string
|
||||
LogsToConvert []types.Log
|
||||
EntitiesToConvert []BiteEntity
|
||||
ConverterError error
|
||||
}
|
||||
|
||||
func (mbc *MockBiteConverter) ToEntities(contractAbi string, ethLogs []types.Log) ([]BiteEntity, error) {
|
||||
mbc.ConverterAbi = contractAbi
|
||||
mbc.LogsToConvert = append(mbc.LogsToConvert, ethLogs...)
|
||||
return []BiteEntity{test_data.BiteEntity}, mbc.ConverterError
|
||||
}
|
||||
|
||||
func (mbc *MockBiteConverter) ToModels(entities []BiteEntity) ([]BiteModel, error) {
|
||||
mbc.EntitiesToConvert = append(mbc.EntitiesToConvert, entities...)
|
||||
return []BiteModel{test_data.BiteModel}, mbc.ConverterError
|
||||
}
|
||||
|
||||
func (mbc *MockBiteConverter) SetConverterError(err error) {
|
||||
mbc.ConverterError = err
|
||||
}
|
||||
@@ -1,72 +0,0 @@
|
||||
// Copyright 2018 Vulcanize
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package bite
|
||||
|
||||
import (
|
||||
. "github.com/onsi/gomega"
|
||||
|
||||
"github.com/vulcanize/vulcanizedb/pkg/core"
|
||||
"github.com/vulcanize/vulcanizedb/pkg/transformers/bite"
|
||||
)
|
||||
|
||||
type MockBiteRepository struct {
|
||||
createError error
|
||||
PassedEndingBlockNumber int64
|
||||
PassedBiteModels []bite.BiteModel
|
||||
PassedHeaderID int64
|
||||
PassedStartingBlockNumber int64
|
||||
PassedTransactionIndex uint
|
||||
markHeaderCheckedErr error
|
||||
markHeaderCheckedPassedHeaderID int64
|
||||
missingHeaders []core.Header
|
||||
missingHeadersErr error
|
||||
}
|
||||
|
||||
func (repository *MockBiteRepository) SetCreateError(err error) {
|
||||
repository.createError = err
|
||||
}
|
||||
|
||||
func (repository *MockBiteRepository) SetMissingHeadersErr(err error) {
|
||||
repository.missingHeadersErr = err
|
||||
}
|
||||
|
||||
func (repository *MockBiteRepository) SetMissingHeaders(headers []core.Header) {
|
||||
repository.missingHeaders = headers
|
||||
}
|
||||
|
||||
func (repository *MockBiteRepository) Create(headerID int64, models []bite.BiteModel) error {
|
||||
repository.PassedHeaderID = headerID
|
||||
repository.PassedBiteModels = models
|
||||
return repository.createError
|
||||
}
|
||||
|
||||
func (repository *MockBiteRepository) MarkHeaderChecked(headerID int64) error {
|
||||
repository.markHeaderCheckedPassedHeaderID = headerID
|
||||
return repository.markHeaderCheckedErr
|
||||
}
|
||||
|
||||
func (repository *MockBiteRepository) MissingHeaders(startingBlockNumber, endingBlockNumber int64) ([]core.Header, error) {
|
||||
repository.PassedStartingBlockNumber = startingBlockNumber
|
||||
repository.PassedEndingBlockNumber = endingBlockNumber
|
||||
return repository.missingHeaders, repository.missingHeadersErr
|
||||
}
|
||||
|
||||
func (repository *MockBiteRepository) SetMarkHeaderCheckedErr(e error) {
|
||||
repository.markHeaderCheckedErr = e
|
||||
}
|
||||
|
||||
func (repository *MockBiteRepository) AssertMarkHeaderCheckedCalledWith(i int64) {
|
||||
Expect(repository.markHeaderCheckedPassedHeaderID).To(Equal(i))
|
||||
}
|
||||
@@ -5,20 +5,22 @@ import (
|
||||
)
|
||||
|
||||
type MockConverter struct {
|
||||
err error
|
||||
returnModels []interface{}
|
||||
PassedLogs []types.Log
|
||||
ToEntitiesError error
|
||||
ToModelsError error
|
||||
ContractAbi string
|
||||
LogsToConvert []types.Log
|
||||
EntitiesToConvert []interface{}
|
||||
EntitiesToReturn []interface{}
|
||||
ModelsToReturn []interface{}
|
||||
}
|
||||
|
||||
func (converter *MockConverter) ToModels(ethLogs []types.Log) ([]interface{}, error) {
|
||||
converter.PassedLogs = ethLogs
|
||||
return converter.returnModels, converter.err
|
||||
func (converter *MockConverter) ToEntities(contractAbi string, ethLogs []types.Log) ([]interface{}, error) {
|
||||
converter.ContractAbi = contractAbi
|
||||
converter.LogsToConvert = ethLogs
|
||||
return converter.EntitiesToReturn, converter.ToEntitiesError
|
||||
}
|
||||
|
||||
func (converter *MockConverter) SetConverterError(e error) {
|
||||
converter.err = e
|
||||
}
|
||||
|
||||
func (converter *MockConverter) SetReturnModels(models []interface{}) {
|
||||
converter.returnModels = models
|
||||
func (converter *MockConverter) ToModels(entities []interface{}) ([]interface{}, error) {
|
||||
converter.EntitiesToConvert = entities
|
||||
return converter.ModelsToReturn, converter.ToModelsError
|
||||
}
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
package mocks
|
||||
|
||||
import (
|
||||
"github.com/ethereum/go-ethereum/core/types"
|
||||
)
|
||||
|
||||
type MockLogNoteConverter struct {
|
||||
err error
|
||||
returnModels []interface{}
|
||||
PassedLogs []types.Log
|
||||
}
|
||||
|
||||
func (converter *MockLogNoteConverter) ToModels(ethLogs []types.Log) ([]interface{}, error) {
|
||||
converter.PassedLogs = ethLogs
|
||||
return converter.returnModels, converter.err
|
||||
}
|
||||
|
||||
func (converter *MockLogNoteConverter) SetConverterError(e error) {
|
||||
converter.err = e
|
||||
}
|
||||
|
||||
func (converter *MockLogNoteConverter) SetReturnModels(models []interface{}) {
|
||||
converter.returnModels = models
|
||||
}
|
||||
Reference in New Issue
Block a user