package topology

import (
	_ "fmt"
	"strconv"
	"testing"
)

func TestXYZ(t *testing.T) {
	topo := NewTopology("topo", "/etc/weed.conf", "/tmp", "test", 234, 5)
	for i := 0; i < 5; i++ {
		dc := NewDataCenter("dc" + strconv.Itoa(i))
		dc.activeVolumeCount = i
		dc.maxVolumeCount = 5
		topo.LinkChildNode(dc)
	}
	nl := NewNodeList(topo.Children(), nil)

	picked, ret := nl.RandomlyPickN(1)
	if !ret || len(picked) != 1 {
		t.Errorf("need to randomly pick 1 node")
	}

	picked, ret = nl.RandomlyPickN(4)
	if !ret || len(picked) != 4 {
		t.Errorf("need to randomly pick 4 nodes")
	}

	picked, ret = nl.RandomlyPickN(5)
	if !ret || len(picked) != 5 {
		t.Errorf("need to randomly pick 5 nodes")
	}

	picked, ret = nl.RandomlyPickN(6)
	if ret || len(picked) != 0 {
		t.Errorf("can not randomly pick 6 nodes:", ret, picked)
	}

}