package communities import ( "testing" "github.com/stretchr/testify/suite" gethcommon "github.com/ethereum/go-ethereum/common" ) func TestPermissionCheckerSuite(t *testing.T) { suite.Run(t, new(PermissionCheckerSuite)) } type PermissionCheckerSuite struct { suite.Suite } func (s *PermissionCheckerSuite) TestMergeValidCombinations() { permissionChecker := DefaultPermissionChecker{} combination1 := &AccountChainIDsCombination{ Address: gethcommon.HexToAddress("0xA"), ChainIDs: []uint64{1}, } combination2 := &AccountChainIDsCombination{ Address: gethcommon.HexToAddress("0xB"), ChainIDs: []uint64{5}, } combination3 := &AccountChainIDsCombination{ Address: gethcommon.HexToAddress("0xA"), ChainIDs: []uint64{5}, } combination4 := &AccountChainIDsCombination{ Address: gethcommon.HexToAddress("0xB"), ChainIDs: []uint64{5}, } mergedCombination := permissionChecker.MergeValidCombinations([]*AccountChainIDsCombination{combination1, combination2}, []*AccountChainIDsCombination{combination3, combination4}) s.Require().Len(mergedCombination, 2) chains1 := mergedCombination[0].ChainIDs chains2 := mergedCombination[1].ChainIDs if len(chains1) == 2 { s.Equal([]uint64{1, 5}, chains1) s.Equal([]uint64{5}, chains2) } else { s.Equal([]uint64{1, 5}, chains2) s.Equal([]uint64{5}, chains1) } }