Skip to content

Commit

Permalink
Merge 375dbcf into 336b92d
Browse files Browse the repository at this point in the history
  • Loading branch information
sstanculeanu authored Apr 25, 2023
2 parents 336b92d + 375dbcf commit 162d55e
Show file tree
Hide file tree
Showing 27 changed files with 713 additions and 351 deletions.
8 changes: 4 additions & 4 deletions factory/bootstrap/bootstrapComponentsHandler_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import (
"errors"
"testing"

errorsErd "github.com/multiversx/mx-chain-go/errors"
errorsMx "github.com/multiversx/mx-chain-go/errors"
"github.com/multiversx/mx-chain-go/factory/bootstrap"
componentsMock "github.com/multiversx/mx-chain-go/testscommon/components"
"github.com/stretchr/testify/require"
Expand All @@ -28,7 +28,7 @@ func TestNewBootstrapComponentsFactory_NilFactory(t *testing.T) {
mbc, err := bootstrap.NewManagedBootstrapComponents(nil)

require.Nil(t, mbc)
require.Equal(t, errorsErd.ErrNilBootstrapComponentsFactory, err)
require.Equal(t, errorsMx.ErrNilBootstrapComponentsFactory, err)
}

func TestManagedBootstrapComponents_CheckSubcomponentsNoCreate(t *testing.T) {
Expand All @@ -39,7 +39,7 @@ func TestManagedBootstrapComponents_CheckSubcomponentsNoCreate(t *testing.T) {
mbc, _ := bootstrap.NewManagedBootstrapComponents(bcf)
err := mbc.CheckSubcomponents()

require.Equal(t, errorsErd.ErrNilBootstrapComponentsHolder, err)
require.Equal(t, errorsMx.ErrNilBootstrapComponentsHolder, err)
}

func TestManagedBootstrapComponents_Create(t *testing.T) {
Expand Down Expand Up @@ -67,7 +67,7 @@ func TestManagedBootstrapComponents_CreateNilInternalMarshalizer(t *testing.T) {
coreComponents.IntMarsh = nil

err := mbc.Create()
require.True(t, errors.Is(err, errorsErd.ErrBootstrapDataComponentsFactoryCreate))
require.True(t, errors.Is(err, errorsMx.ErrBootstrapDataComponentsFactoryCreate))
}

func TestManagedBootstrapComponents_Close(t *testing.T) {
Expand Down
14 changes: 7 additions & 7 deletions factory/bootstrap/bootstrapComponents_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import (
"errors"
"testing"

errorsErd "github.com/multiversx/mx-chain-go/errors"
errorsMx "github.com/multiversx/mx-chain-go/errors"
"github.com/multiversx/mx-chain-go/factory/bootstrap"
componentsMock "github.com/multiversx/mx-chain-go/testscommon/components"
"github.com/stretchr/testify/require"
Expand All @@ -31,7 +31,7 @@ func TestNewBootstrapComponentsFactory_NilCoreComponents(t *testing.T) {
bcf, err := bootstrap.NewBootstrapComponentsFactory(args)

require.Nil(t, bcf)
require.Equal(t, errorsErd.ErrNilCoreComponentsHolder, err)
require.Equal(t, errorsMx.ErrNilCoreComponentsHolder, err)
}

func TestNewBootstrapComponentsFactory_NilCryptoComponents(t *testing.T) {
Expand All @@ -43,7 +43,7 @@ func TestNewBootstrapComponentsFactory_NilCryptoComponents(t *testing.T) {
bcf, err := bootstrap.NewBootstrapComponentsFactory(args)

require.Nil(t, bcf)
require.Equal(t, errorsErd.ErrNilCryptoComponentsHolder, err)
require.Equal(t, errorsMx.ErrNilCryptoComponentsHolder, err)
}

func TestNewBootstrapComponentsFactory_NilNetworkComponents(t *testing.T) {
Expand All @@ -55,7 +55,7 @@ func TestNewBootstrapComponentsFactory_NilNetworkComponents(t *testing.T) {
bcf, err := bootstrap.NewBootstrapComponentsFactory(args)

require.Nil(t, bcf)
require.Equal(t, errorsErd.ErrNilNetworkComponentsHolder, err)
require.Equal(t, errorsMx.ErrNilNetworkComponentsHolder, err)
}

func TestNewBootstrapComponentsFactory_NilWorkingDir(t *testing.T) {
Expand All @@ -67,7 +67,7 @@ func TestNewBootstrapComponentsFactory_NilWorkingDir(t *testing.T) {
bcf, err := bootstrap.NewBootstrapComponentsFactory(args)

require.Nil(t, bcf)
require.Equal(t, errorsErd.ErrInvalidWorkingDir, err)
require.Equal(t, errorsMx.ErrInvalidWorkingDir, err)
}

func TestBootstrapComponentsFactory_CreateShouldWork(t *testing.T) {
Expand Down Expand Up @@ -96,7 +96,7 @@ func TestBootstrapComponentsFactory_CreateBootstrapDataProviderCreationFail(t *t
bc, err := bcf.Create()

require.Nil(t, bc)
require.True(t, errors.Is(err, errorsErd.ErrNewBootstrapDataProvider))
require.True(t, errors.Is(err, errorsMx.ErrNewBootstrapDataProvider))
}

func TestBootstrapComponentsFactory_CreateEpochStartBootstrapCreationFail(t *testing.T) {
Expand All @@ -112,5 +112,5 @@ func TestBootstrapComponentsFactory_CreateEpochStartBootstrapCreationFail(t *tes
bc, err := bcf.Create()

require.Nil(t, bc)
require.True(t, errors.Is(err, errorsErd.ErrNewEpochStartBootstrap))
require.True(t, errors.Is(err, errorsMx.ErrNewEpochStartBootstrap))
}
2 changes: 1 addition & 1 deletion factory/consensus/consensusComponents_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ func TestConsensusComponentsFactory_CreateGenesisBlockNotInitializedShouldErr(t

dataComponents := consensusArgs.DataComponents

dataComponents.SetBlockchain(&testscommon.ChainHandlerStub{
_ = dataComponents.SetBlockchain(&testscommon.ChainHandlerStub{
GetGenesisHeaderHashCalled: func() []byte {
return nil
},
Expand Down
172 changes: 127 additions & 45 deletions factory/core/coreComponentsHandler_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,80 +2,162 @@ package core_test

import (
"testing"
"time"

"github.com/multiversx/mx-chain-go/config"
errorsMx "github.com/multiversx/mx-chain-go/errors"
"github.com/multiversx/mx-chain-go/factory"
coreComp "github.com/multiversx/mx-chain-go/factory/core"
"github.com/multiversx/mx-chain-go/testscommon"
componentsMock "github.com/multiversx/mx-chain-go/testscommon/components"
"github.com/stretchr/testify/require"
)

// ------------ Test ManagedCoreComponents --------------------
func TestManagedCoreComponents_CreateWithInvalidArgsShouldErr(t *testing.T) {
func TestManagedCoreComponents(t *testing.T) {
t.Parallel()

coreArgs := componentsMock.GetCoreArgs()
coreArgs.Config.Marshalizer = config.MarshalizerConfig{
Type: "invalid_marshalizer_type",
SizeCheckDelta: 0,
}
coreComponentsFactory, _ := coreComp.NewCoreComponentsFactory(coreArgs)
managedCoreComponents, err := coreComp.NewManagedCoreComponents(coreComponentsFactory)
require.NoError(t, err)
err = managedCoreComponents.Create()
require.Error(t, err)
require.Nil(t, managedCoreComponents.InternalMarshalizer())
t.Run("nil factory should error", func(t *testing.T) {
t.Parallel()

managedCoreComponents, err := coreComp.NewManagedCoreComponents(nil)
require.Equal(t, errorsMx.ErrNilCoreComponentsFactory, err)
require.Nil(t, managedCoreComponents)
})
t.Run("invalid args should error", func(t *testing.T) {
t.Parallel()

coreArgs := componentsMock.GetCoreArgs()
coreArgs.Config.Marshalizer = config.MarshalizerConfig{
Type: "invalid_marshalizer_type",
SizeCheckDelta: 0,
}
coreComponentsFactory, _ := coreComp.NewCoreComponentsFactory(coreArgs)
managedCoreComponents, err := coreComp.NewManagedCoreComponents(coreComponentsFactory)
require.NoError(t, err)
err = managedCoreComponents.Create()
require.Error(t, err)
require.Nil(t, managedCoreComponents.InternalMarshalizer())
})
t.Run("should work with getters", func(t *testing.T) {
t.Parallel()

coreArgs := componentsMock.GetCoreArgs()
coreComponentsFactory, _ := coreComp.NewCoreComponentsFactory(coreArgs)
managedCoreComponents, err := coreComp.NewManagedCoreComponents(coreComponentsFactory)
require.NoError(t, err)
require.Nil(t, managedCoreComponents.Hasher())
require.Nil(t, managedCoreComponents.InternalMarshalizer())
require.Nil(t, managedCoreComponents.VmMarshalizer())
require.Nil(t, managedCoreComponents.TxMarshalizer())
require.Nil(t, managedCoreComponents.Uint64ByteSliceConverter())
require.Nil(t, managedCoreComponents.AddressPubKeyConverter())
require.Nil(t, managedCoreComponents.ValidatorPubKeyConverter())
require.Nil(t, managedCoreComponents.PathHandler())
require.Equal(t, "", managedCoreComponents.ChainID())
require.Nil(t, managedCoreComponents.AddressPubKeyConverter())
require.Nil(t, managedCoreComponents.EnableRoundsHandler())
require.Nil(t, managedCoreComponents.WasmVMChangeLocker())
require.Nil(t, managedCoreComponents.ProcessStatusHandler())
require.True(t, len(managedCoreComponents.HardforkTriggerPubKey()) == 0)
require.Nil(t, managedCoreComponents.TxSignHasher())
require.Zero(t, managedCoreComponents.MinTransactionVersion())
require.Nil(t, managedCoreComponents.TxVersionChecker())
require.Zero(t, managedCoreComponents.EncodedAddressLen())
require.Nil(t, managedCoreComponents.AlarmScheduler())
require.Nil(t, managedCoreComponents.SyncTimer())
require.Equal(t, time.Time{}, managedCoreComponents.GenesisTime())
require.Nil(t, managedCoreComponents.Watchdog())
require.Nil(t, managedCoreComponents.EconomicsData())
require.Nil(t, managedCoreComponents.APIEconomicsData())
require.Nil(t, managedCoreComponents.RatingsData())
require.Nil(t, managedCoreComponents.Rater())
require.Nil(t, managedCoreComponents.GenesisNodesSetup())
require.Nil(t, managedCoreComponents.RoundHandler())
require.Nil(t, managedCoreComponents.NodesShuffler())
require.Nil(t, managedCoreComponents.EpochNotifier())
require.Nil(t, managedCoreComponents.EpochStartNotifierWithConfirm())
require.Nil(t, managedCoreComponents.ChanStopNodeProcess())
require.Nil(t, managedCoreComponents.NodeTypeProvider())
require.Nil(t, managedCoreComponents.EnableEpochsHandler())

err = managedCoreComponents.Create()
require.NoError(t, err)
require.NotNil(t, managedCoreComponents.Hasher())
require.NotNil(t, managedCoreComponents.InternalMarshalizer())
require.NotNil(t, managedCoreComponents.VmMarshalizer())
require.NotNil(t, managedCoreComponents.TxMarshalizer())
require.NotNil(t, managedCoreComponents.Uint64ByteSliceConverter())
require.NotNil(t, managedCoreComponents.AddressPubKeyConverter())
require.NotNil(t, managedCoreComponents.ValidatorPubKeyConverter())
require.NotNil(t, managedCoreComponents.PathHandler())
require.NotEqual(t, "", managedCoreComponents.ChainID())
require.NotNil(t, managedCoreComponents.AddressPubKeyConverter())
require.NotNil(t, managedCoreComponents.EnableRoundsHandler())
require.NotNil(t, managedCoreComponents.WasmVMChangeLocker())
require.NotNil(t, managedCoreComponents.ProcessStatusHandler())
expectedBytes, _ := managedCoreComponents.ValidatorPubKeyConverter().Decode(componentsMock.DummyPk)
require.Equal(t, expectedBytes, managedCoreComponents.HardforkTriggerPubKey())
require.NotNil(t, managedCoreComponents.TxSignHasher())
require.NotZero(t, managedCoreComponents.MinTransactionVersion())
require.NotNil(t, managedCoreComponents.TxVersionChecker())
require.NotZero(t, managedCoreComponents.EncodedAddressLen())
require.NotNil(t, managedCoreComponents.AlarmScheduler())
require.NotNil(t, managedCoreComponents.SyncTimer())
require.NotNil(t, managedCoreComponents.GenesisTime())
require.NotNil(t, managedCoreComponents.Watchdog())
require.NotNil(t, managedCoreComponents.EconomicsData())
require.NotNil(t, managedCoreComponents.APIEconomicsData())
require.NotNil(t, managedCoreComponents.RatingsData())
require.NotNil(t, managedCoreComponents.Rater())
require.NotNil(t, managedCoreComponents.GenesisNodesSetup())
require.NotNil(t, managedCoreComponents.RoundHandler())
require.NotNil(t, managedCoreComponents.NodesShuffler())
require.NotNil(t, managedCoreComponents.EpochNotifier())
require.NotNil(t, managedCoreComponents.EpochStartNotifierWithConfirm())
require.NotNil(t, managedCoreComponents.ChanStopNodeProcess())
require.NotNil(t, managedCoreComponents.NodeTypeProvider())
require.NotNil(t, managedCoreComponents.EnableEpochsHandler())
require.Nil(t, managedCoreComponents.SetInternalMarshalizer(&testscommon.MarshalizerStub{}))

require.Equal(t, factory.CoreComponentsName, managedCoreComponents.String())
})
}

func TestManagedCoreComponents_CreateShouldWork(t *testing.T) {
func TestManagedCoreComponents_CheckSubcomponents(t *testing.T) {
t.Parallel()

coreArgs := componentsMock.GetCoreArgs()
coreComponentsFactory, _ := coreComp.NewCoreComponentsFactory(coreArgs)
managedCoreComponents, err := coreComp.NewManagedCoreComponents(coreComponentsFactory)
require.NoError(t, err)
require.Nil(t, managedCoreComponents.Hasher())
require.Nil(t, managedCoreComponents.InternalMarshalizer())
require.Nil(t, managedCoreComponents.VmMarshalizer())
require.Nil(t, managedCoreComponents.TxMarshalizer())
require.Nil(t, managedCoreComponents.Uint64ByteSliceConverter())
require.Nil(t, managedCoreComponents.AddressPubKeyConverter())
require.Nil(t, managedCoreComponents.ValidatorPubKeyConverter())
require.Nil(t, managedCoreComponents.PathHandler())
require.Equal(t, "", managedCoreComponents.ChainID())
require.Nil(t, managedCoreComponents.AddressPubKeyConverter())
require.Nil(t, managedCoreComponents.EnableRoundsHandler())
require.Nil(t, managedCoreComponents.WasmVMChangeLocker())
require.Nil(t, managedCoreComponents.ProcessStatusHandler())
require.True(t, len(managedCoreComponents.HardforkTriggerPubKey()) == 0)
require.Equal(t, errorsMx.ErrNilCoreComponents, managedCoreComponents.CheckSubcomponents())

err = managedCoreComponents.Create()
require.NoError(t, err)
require.NotNil(t, managedCoreComponents.Hasher())
require.NotNil(t, managedCoreComponents.InternalMarshalizer())
require.NotNil(t, managedCoreComponents.VmMarshalizer())
require.NotNil(t, managedCoreComponents.TxMarshalizer())
require.NotNil(t, managedCoreComponents.Uint64ByteSliceConverter())
require.NotNil(t, managedCoreComponents.AddressPubKeyConverter())
require.NotNil(t, managedCoreComponents.ValidatorPubKeyConverter())
require.NotNil(t, managedCoreComponents.PathHandler())
require.NotEqual(t, "", managedCoreComponents.ChainID())
require.NotNil(t, managedCoreComponents.AddressPubKeyConverter())
require.NotNil(t, managedCoreComponents.EnableRoundsHandler())
require.NotNil(t, managedCoreComponents.WasmVMChangeLocker())
require.NotNil(t, managedCoreComponents.ProcessStatusHandler())
expectedBytes, _ := managedCoreComponents.ValidatorPubKeyConverter().Decode(componentsMock.DummyPk)
require.Equal(t, expectedBytes, managedCoreComponents.HardforkTriggerPubKey())
require.Nil(t, managedCoreComponents.CheckSubcomponents())
}

func TestManagedCoreComponents_Close(t *testing.T) {
t.Parallel()

coreArgs := componentsMock.GetCoreArgs()
coreComponentsFactory, _ := coreComp.NewCoreComponentsFactory(coreArgs)
coreComponentsFactory, _ := coreComp.NewCoreComponentsFactory(componentsMock.GetCoreArgs())
managedCoreComponents, _ := coreComp.NewManagedCoreComponents(coreComponentsFactory)
err := managedCoreComponents.Close()
require.NoError(t, err)
err = managedCoreComponents.Create()
require.NoError(t, err)
err = managedCoreComponents.Close()
require.NoError(t, err)
}

func TestManagedCoreComponents_IsInterfaceNil(t *testing.T) {
t.Parallel()

managedCoreComponents, _ := coreComp.NewManagedCoreComponents(nil)
require.True(t, managedCoreComponents.IsInterfaceNil())

coreArgs := componentsMock.GetCoreArgs()
coreComponentsFactory, _ := coreComp.NewCoreComponentsFactory(coreArgs)
managedCoreComponents, _ = coreComp.NewManagedCoreComponents(coreComponentsFactory)
require.False(t, managedCoreComponents.IsInterfaceNil())
}
Loading

0 comments on commit 162d55e

Please sign in to comment.