[NOD-1583] Move all TestXXX interfaces to testapi

This commit is contained in:
Mike Zak 2020-12-02 11:55:33 +02:00 committed by Svarog
parent 9756d64f28
commit ab3c81c552
15 changed files with 79 additions and 52 deletions

View File

@ -6,13 +6,3 @@ import "github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
type BlockBuilder interface {
BuildBlock(coinbaseData *externalapi.DomainCoinbaseData, transactions []*externalapi.DomainTransaction) (*externalapi.DomainBlock, error)
}
// TestBlockBuilder adds to the main BlockBuilder methods required by tests
type TestBlockBuilder interface {
BlockBuilder
// BuildBlockWithParents builds a block with provided parents, coinbaseData and transactions,
// and returns the block together with its past UTXO-diff from the virtual.
BuildBlockWithParents(parentHashes []*externalapi.DomainHash, coinbaseData *externalapi.DomainCoinbaseData,
transactions []*externalapi.DomainTransaction) (*externalapi.DomainBlock, *UTXODiff, error)
}

View File

@ -11,12 +11,3 @@ type ConsensusStateManager interface {
HeaderTipsPruningPoint() (*externalapi.DomainHash, error)
CalculatePastUTXOAndAcceptanceData(blockHash *externalapi.DomainHash) (*UTXODiff, AcceptanceData, Multiset, error)
}
// TestConsensusStateManager adds to the main ConsensusStateManager methods required by tests
type TestConsensusStateManager interface {
ConsensusStateManager
AddUTXOToMultiset(multiset Multiset, entry *externalapi.UTXOEntry,
outpoint *externalapi.DomainOutpoint) error
ResolveBlockStatus(blockHash *externalapi.DomainHash) (externalapi.BlockStatus, error)
VirtualFinalityPoint() (*externalapi.DomainHash, error)
}

View File

@ -10,11 +10,3 @@ type ReachabilityManager interface {
IsDAGAncestorOf(blockHashA *externalapi.DomainHash, blockHashB *externalapi.DomainHash) (bool, error)
UpdateReindexRoot(selectedTip *externalapi.DomainHash) error
}
// TestReachabilityManager adds to the main ReachabilityManager methods required by tests
type TestReachabilityManager interface {
ReachabilityManager
SetReachabilityReindexWindow(reindexWindow uint64)
SetReachabilityReindexSlack(reindexSlack uint64)
ReachabilityReindexSlack() uint64
}

View File

@ -2,7 +2,6 @@ package model
import (
"github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
"github.com/kaspanet/kaspad/domain/consensus/utils/txscript"
)
// TransactionValidator exposes a set of validation classes, after which
@ -12,10 +11,3 @@ type TransactionValidator interface {
ValidateTransactionInContextAndPopulateMassAndFee(tx *externalapi.DomainTransaction,
povTransactionHash *externalapi.DomainHash, selectedParentMedianTime int64) error
}
// TestTransactionValidator adds to the main TransactionValidator methods required by tests
type TestTransactionValidator interface {
TransactionValidator
SigCache() *txscript.SigCache
SetSigCache(sigCache *txscript.SigCache)
}

View File

@ -0,0 +1,16 @@
package testapi
import (
"github.com/kaspanet/kaspad/domain/consensus/model"
"github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
)
// TestBlockBuilder adds to the main BlockBuilder methods required by tests
type TestBlockBuilder interface {
model.BlockBuilder
// BuildBlockWithParents builds a block with provided parents, coinbaseData and transactions,
// and returns the block together with its past UTXO-diff from the virtual.
BuildBlockWithParents(parentHashes []*externalapi.DomainHash, coinbaseData *externalapi.DomainCoinbaseData,
transactions []*externalapi.DomainTransaction) (*externalapi.DomainBlock, *model.UTXODiff, error)
}

View File

@ -33,11 +33,11 @@ type TestConsensus interface {
ReachabilityDataStore() model.ReachabilityDataStore
UTXODiffStore() model.UTXODiffStore
BlockBuilder() model.TestBlockBuilder
BlockBuilder() TestBlockBuilder
BlockProcessor() model.BlockProcessor
BlockValidator() model.BlockValidator
CoinbaseManager() model.CoinbaseManager
ConsensusStateManager() model.TestConsensusStateManager
ConsensusStateManager() TestConsensusStateManager
DAGTopologyManager() model.DAGTopologyManager
DAGTraversalManager() model.DAGTraversalManager
DifficultyManager() model.DifficultyManager
@ -46,7 +46,7 @@ type TestConsensus interface {
MergeDepthManager() model.MergeDepthManager
PastMedianTimeManager() model.PastMedianTimeManager
PruningManager() model.PruningManager
ReachabilityManager() model.TestReachabilityManager
ReachabilityManager() TestReachabilityManager
SyncManager() model.SyncManager
TransactionValidator() model.TestTransactionValidator
TransactionValidator() TestTransactionValidator
}

View File

@ -0,0 +1,15 @@
package testapi
import (
"github.com/kaspanet/kaspad/domain/consensus/model"
"github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
)
// TestConsensusStateManager adds to the main ConsensusStateManager methods required by tests
type TestConsensusStateManager interface {
model.ConsensusStateManager
AddUTXOToMultiset(multiset model.Multiset, entry *externalapi.UTXOEntry,
outpoint *externalapi.DomainOutpoint) error
ResolveBlockStatus(blockHash *externalapi.DomainHash) (externalapi.BlockStatus, error)
VirtualFinalityPoint() (*externalapi.DomainHash, error)
}

View File

@ -0,0 +1,11 @@
package testapi
import "github.com/kaspanet/kaspad/domain/consensus/model"
// TestReachabilityManager adds to the main ReachabilityManager methods required by tests
type TestReachabilityManager interface {
model.ReachabilityManager
SetReachabilityReindexWindow(reindexWindow uint64)
SetReachabilityReindexSlack(reindexSlack uint64)
ReachabilityReindexSlack() uint64
}

View File

@ -0,0 +1,13 @@
package testapi
import (
"github.com/kaspanet/kaspad/domain/consensus/model"
"github.com/kaspanet/kaspad/domain/consensus/utils/txscript"
)
// TestTransactionValidator adds to the main TransactionValidator methods required by tests
type TestTransactionValidator interface {
model.TransactionValidator
SigCache() *txscript.SigCache
SetSigCache(sigCache *txscript.SigCache)
}

View File

@ -20,7 +20,7 @@ var tempBlockHash = &externalapi.DomainHash{
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
// NewTestBlockBuilder creates an instance of a TestBlockBuilder
func NewTestBlockBuilder(baseBlockBuilder model.BlockBuilder, testConsensus testapi.TestConsensus) model.TestBlockBuilder {
func NewTestBlockBuilder(baseBlockBuilder model.BlockBuilder, testConsensus testapi.TestConsensus) testapi.TestBlockBuilder {
return &testBlockBuilder{
blockBuilder: baseBlockBuilder.(*blockBuilder),
testConsensus: testConsensus,

View File

@ -3,6 +3,7 @@ package consensusstatemanager
import (
"github.com/kaspanet/kaspad/domain/consensus/model"
"github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
"github.com/kaspanet/kaspad/domain/consensus/model/testapi"
)
type testConsensusStateManager struct {
@ -10,7 +11,7 @@ type testConsensusStateManager struct {
}
// NewTestConsensusStateManager creates an instance of a TestConsensusStateManager
func NewTestConsensusStateManager(baseConsensusStateManager model.ConsensusStateManager) model.TestConsensusStateManager {
func NewTestConsensusStateManager(baseConsensusStateManager model.ConsensusStateManager) testapi.TestConsensusStateManager {
return &testConsensusStateManager{consensusStateManager: baseConsensusStateManager.(*consensusStateManager)}
}

View File

@ -1,6 +1,9 @@
package reachabilitymanager
import "github.com/kaspanet/kaspad/domain/consensus/model"
import (
"github.com/kaspanet/kaspad/domain/consensus/model"
"github.com/kaspanet/kaspad/domain/consensus/model/testapi"
)
type testReachabilityManager struct {
*reachabilityManager
@ -19,6 +22,6 @@ func (t testReachabilityManager) SetReachabilityReindexWindow(reindexWindow uint
}
// NewTestReachabilityManager creates an instance of a TestReachabilityManager
func NewTestReachabilityManager(manager model.ReachabilityManager) model.TestReachabilityManager {
func NewTestReachabilityManager(manager model.ReachabilityManager) testapi.TestReachabilityManager {
return &testReachabilityManager{reachabilityManager: manager.(*reachabilityManager)}
}

View File

@ -2,6 +2,7 @@ package transactionvalidator
import (
"github.com/kaspanet/kaspad/domain/consensus/model"
"github.com/kaspanet/kaspad/domain/consensus/model/testapi"
"github.com/kaspanet/kaspad/domain/consensus/utils/txscript"
)
@ -10,7 +11,7 @@ type testTransactionValidator struct {
}
// NewTestTransactionValidator creates an instance of a TestTransactionValidator
func NewTestTransactionValidator(baseTransactionValidator model.TransactionValidator) model.TestTransactionValidator {
func NewTestTransactionValidator(baseTransactionValidator model.TransactionValidator) testapi.TestTransactionValidator {
return &testTransactionValidator{transactionValidator: baseTransactionValidator.(*transactionValidator)}
}

View File

@ -3,16 +3,17 @@ package consensus
import (
"github.com/kaspanet/kaspad/domain/consensus/model"
"github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
"github.com/kaspanet/kaspad/domain/consensus/model/testapi"
"github.com/kaspanet/kaspad/domain/consensus/utils/consensusserialization"
)
type testConsensus struct {
*consensus
testBlockBuilder model.TestBlockBuilder
testReachabilityManager model.TestReachabilityManager
testConsensusStateManager model.TestConsensusStateManager
testTransactionValidator model.TestTransactionValidator
testBlockBuilder testapi.TestBlockBuilder
testReachabilityManager testapi.TestReachabilityManager
testConsensusStateManager testapi.TestConsensusStateManager
testTransactionValidator testapi.TestTransactionValidator
}
func (tc *testConsensus) BuildBlockWithParents(parentHashes []*externalapi.DomainHash,

View File

@ -2,6 +2,7 @@ package consensus
import (
"github.com/kaspanet/kaspad/domain/consensus/model"
"github.com/kaspanet/kaspad/domain/consensus/model/testapi"
)
func (tc *testConsensus) DatabaseContext() model.DBReader {
@ -56,7 +57,7 @@ func (tc *testConsensus) UTXODiffStore() model.UTXODiffStore {
return tc.utxoDiffStore
}
func (tc *testConsensus) BlockBuilder() model.TestBlockBuilder {
func (tc *testConsensus) BlockBuilder() testapi.TestBlockBuilder {
return tc.testBlockBuilder
}
@ -72,7 +73,7 @@ func (tc *testConsensus) CoinbaseManager() model.CoinbaseManager {
return tc.coinbaseManager
}
func (tc *testConsensus) ConsensusStateManager() model.TestConsensusStateManager {
func (tc *testConsensus) ConsensusStateManager() testapi.TestConsensusStateManager {
return tc.testConsensusStateManager
}
@ -108,7 +109,7 @@ func (tc *testConsensus) PruningManager() model.PruningManager {
return tc.pruningManager
}
func (tc *testConsensus) ReachabilityManager() model.TestReachabilityManager {
func (tc *testConsensus) ReachabilityManager() testapi.TestReachabilityManager {
return tc.testReachabilityManager
}
@ -116,6 +117,6 @@ func (tc *testConsensus) SyncManager() model.SyncManager {
return tc.syncManager
}
func (tc *testConsensus) TransactionValidator() model.TestTransactionValidator {
func (tc *testConsensus) TransactionValidator() testapi.TestTransactionValidator {
return tc.testTransactionValidator
}