|
- package event
-
- /*
- import (
- "testing"
-
- "github.com/samber/lo"
- . "github.com/smartystreets/goconvey/convey"
- cdssdk "gitlink.org.cn/cloudream/common/sdks/storage"
- )
-
- func Test_chooseSoManyNodes(t *testing.T) {
- testcases := []struct {
- title string
- allNodes []*StorageLoadInfo
- count int
- expectedHubIDs []cdssdk.HubID
- }{
- {
- title: "节点数量充足",
- allNodes: []*StorageLoadInfo{
- {Storage: cdssdk.Node{HubID: cdssdk.HubID(1)}},
- {Storage: cdssdk.Node{HubID: cdssdk.HubID(2)}},
- },
- count: 2,
- expectedHubIDs: []cdssdk.HubID{1, 2},
- },
- {
- title: "节点数量超过",
- allNodes: []*StorageLoadInfo{
- {Storage: cdssdk.Node{HubID: cdssdk.HubID(1)}},
- {Storage: cdssdk.Node{HubID: cdssdk.HubID(2)}},
- {Storage: cdssdk.Node{HubID: cdssdk.HubID(3)}},
- },
- count: 2,
- expectedHubIDs: []cdssdk.HubID{1, 2},
- },
- {
- title: "只有一个节点,节点数量不够",
- allNodes: []*StorageLoadInfo{
- {Storage: cdssdk.Node{HubID: cdssdk.HubID(1)}},
- },
- count: 3,
- expectedHubIDs: []cdssdk.HubID{1, 1, 1},
- },
- {
- title: "多个同地区节点,节点数量不够",
- allNodes: []*StorageLoadInfo{
- {Storage: cdssdk.Node{HubID: cdssdk.HubID(1)}},
- {Storage: cdssdk.Node{HubID: cdssdk.HubID(2)}},
- },
- count: 5,
- expectedHubIDs: []cdssdk.HubID{1, 1, 1, 2, 2},
- },
- {
- title: "节点数量不够,且在不同地区",
- allNodes: []*StorageLoadInfo{
- {Storage: cdssdk.Node{HubID: cdssdk.HubID(1), LocationID: cdssdk.LocationID(1)}},
- {Storage: cdssdk.Node{HubID: cdssdk.HubID(2), LocationID: cdssdk.LocationID(2)}},
- },
- count: 5,
- expectedHubIDs: []cdssdk.HubID{1, 2, 1, 2, 1},
- },
- }
-
- for _, test := range testcases {
- Convey(test.title, t, func() {
- var t CheckPackageRedundancy
- chosenNodes := t.chooseSoManyNodes(test.count, test.allNodes)
-
- chosenHubIDs := lo.Map(chosenNodes, func(item *StorageLoadInfo, idx int) cdssdk.HubID { return item.Storage.HubID })
-
- So(chosenHubIDs, ShouldResemble, test.expectedHubIDs)
- })
- }
- }
- */
|