mirror of https://github.com/poanetwork/quorum.git
104 lines
3.0 KiB
Go
104 lines
3.0 KiB
Go
package permission
|
|
|
|
import (
|
|
"math/big"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
"github.com/ethereum/go-ethereum/core/types"
|
|
"github.com/ethereum/go-ethereum/node"
|
|
"github.com/ethereum/go-ethereum/p2p"
|
|
|
|
"github.com/ethereum/go-ethereum/accounts/abi/bind"
|
|
"github.com/ethereum/go-ethereum/accounts/abi/bind/backends"
|
|
"github.com/ethereum/go-ethereum/common"
|
|
"github.com/ethereum/go-ethereum/core"
|
|
"github.com/ethereum/go-ethereum/crypto"
|
|
pbind "github.com/ethereum/go-ethereum/permission/bind"
|
|
)
|
|
|
|
func TestPermissionCtrl_InitializeService(t *testing.T) {
|
|
guardianKey, _ := crypto.GenerateKey()
|
|
guardianAddress := crypto.PubkeyToAddress(guardianKey.PublicKey)
|
|
|
|
guardianTransactor := bind.NewKeyedTransactor(guardianKey)
|
|
genesisAlloc := map[common.Address]core.GenesisAccount{
|
|
guardianAddress: {
|
|
Balance: big.NewInt(100000000000000),
|
|
},
|
|
}
|
|
sb := backends.NewSimulatedBackend(genesisAlloc, 100000000000000)
|
|
|
|
permUpgrAddress, _, permUpgrInstance, err := pbind.DeployPermUpgr(guardianTransactor, sb, guardianAddress)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
permInterfaceAddress, _, _, err := pbind.DeployPermInterface(guardianTransactor, sb, permUpgrAddress)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
nodeManagerAddress, _, _, err := pbind.DeployNodeManager(guardianTransactor, sb, permUpgrAddress)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
roleManagerAddress, _, _, err := pbind.DeployRoleManager(guardianTransactor, sb, permUpgrAddress)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
accountManagerAddress, _, _, err := pbind.DeployAcctManager(guardianTransactor, sb, permUpgrAddress)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
orgManagerAddress, _, _, err := pbind.DeployOrgManager(guardianTransactor, sb, permUpgrAddress)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
voterManagerAddress, _, _, err := pbind.DeployVoterManager(guardianTransactor, sb, permUpgrAddress)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
permImplAddress, _, _, err := pbind.DeployPermImpl(guardianTransactor, sb, permUpgrAddress, orgManagerAddress, roleManagerAddress, accountManagerAddress, voterManagerAddress, nodeManagerAddress)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
// call init
|
|
if _, err := permUpgrInstance.Init(guardianTransactor, permInterfaceAddress, permImplAddress); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
sNode, err := node.New(&node.Config{
|
|
P2P: p2p.Config{
|
|
PrivateKey: guardianKey,
|
|
},
|
|
})
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
testObject, err := NewQuorumPermissionCtrl(sNode, &types.PermissionConfig{
|
|
UpgrdAddress: permUpgrAddress,
|
|
InterfAddress: permInterfaceAddress,
|
|
ImplAddress: permImplAddress,
|
|
NodeAddress: nodeManagerAddress,
|
|
AccountAddress: accountManagerAddress,
|
|
RoleAddress: roleManagerAddress,
|
|
VoterAddress: voterManagerAddress,
|
|
OrgAddress: orgManagerAddress,
|
|
NwAdminOrg: "NETWORK_ADMIN",
|
|
NwAdminRole: "NETWORK_ADMIN_ROLE",
|
|
OrgAdminRole: "ORG_ADMIN_ROLE",
|
|
Accounts: []common.Address{
|
|
guardianAddress,
|
|
},
|
|
SubOrgDepth: *big.NewInt(3),
|
|
SubOrgBreadth: *big.NewInt(3),
|
|
})
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
err = testObject.InitializeService()
|
|
|
|
assert.NoError(t, err)
|
|
}
|