// VulcanizeDB // Copyright © 2019 Vulcanize // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Affero General Public License for more details. // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . package fakes import ( . "github.com/onsi/gomega" "github.com/vulcanize/vulcanizedb/pkg/core" ) type MockHeaderRepository struct { createOrUpdateHeaderCallCount int createOrUpdateHeaderErr error createOrUpdateHeaderPassedBlockNumbers []int64 createOrUpdateHeaderReturnID int64 CreateTransactionsCalled bool CreateTransactionsError error getHeaderError error getHeaderReturnBlockHash string missingBlockNumbers []int64 headerExists bool GetHeaderPassedBlockNumber int64 } func NewMockHeaderRepository() *MockHeaderRepository { return &MockHeaderRepository{} } func (repository *MockHeaderRepository) SetCreateOrUpdateHeaderReturnID(id int64) { repository.createOrUpdateHeaderReturnID = id } func (repository *MockHeaderRepository) SetCreateOrUpdateHeaderReturnErr(err error) { repository.createOrUpdateHeaderErr = err } func (repository *MockHeaderRepository) SetMissingBlockNumbers(blockNumbers []int64) { repository.missingBlockNumbers = blockNumbers } func (repository *MockHeaderRepository) CreateOrUpdateHeader(header core.Header) (int64, error) { repository.createOrUpdateHeaderCallCount++ repository.createOrUpdateHeaderPassedBlockNumbers = append(repository.createOrUpdateHeaderPassedBlockNumbers, header.BlockNumber) return repository.createOrUpdateHeaderReturnID, repository.createOrUpdateHeaderErr } func (repository *MockHeaderRepository) CreateTransactions(headerID int64, transactions []core.TransactionModel) error { repository.CreateTransactionsCalled = true return repository.CreateTransactionsError } func (repository *MockHeaderRepository) GetHeader(blockNumber int64) (core.Header, error) { repository.GetHeaderPassedBlockNumber = blockNumber return core.Header{BlockNumber: blockNumber, Hash: repository.getHeaderReturnBlockHash}, repository.getHeaderError } func (repository *MockHeaderRepository) MissingBlockNumbers(startingBlockNumber, endingBlockNumber int64, nodeID string) ([]int64, error) { return repository.missingBlockNumbers, nil } func (repository *MockHeaderRepository) SetGetHeaderError(err error) { repository.getHeaderError = err } func (repository *MockHeaderRepository) SetGetHeaderReturnBlockHash(hash string) { repository.getHeaderReturnBlockHash = hash } func (repository *MockHeaderRepository) AssertCreateOrUpdateHeaderCallCountAndPassedBlockNumbers(times int, blockNumbers []int64) { Expect(repository.createOrUpdateHeaderCallCount).To(Equal(times)) Expect(repository.createOrUpdateHeaderPassedBlockNumbers).To(Equal(blockNumbers)) }