|
- package hashring
-
- import (
- // "fmt"
- "testing"
- )
-
- const (
- node1 = "192.168.1.1"
- node2 = "192.168.1.2"
- node3 = "192.168.1.3"
- )
-
- func getNodesCount(nodes nodesArray) (int, int, int) {
- node1Count := 0
- node2Count := 0
- node3Count := 0
-
- for _, node := range nodes {
- if node.nodeKey == node1 {
- node1Count += 1
- }
- if node.nodeKey == node2 {
- node2Count += 1
-
- }
- if node.nodeKey == node3 {
- node3Count += 1
-
- }
- }
- return node1Count, node2Count, node3Count
- }
-
- func TestHash(t *testing.T) {
-
- nodeWeight := make(map[string]int)
- nodeWeight[node1] = 2
- nodeWeight[node2] = 2
- nodeWeight[node3] = 3
- vitualSpots := 100
-
- hash := NewHashRing(vitualSpots)
-
- hash.AddNodes(nodeWeight)
- if hash.GetNode("1") != node3 {
- t.Fatalf("expetcd %v got %v", node3, hash.GetNode("1"))
- }
- if hash.GetNode("2") != node3 {
- t.Fatalf("expetcd %v got %v", node3, hash.GetNode("2"))
- }
- if hash.GetNode("3") != node2 {
- t.Fatalf("expetcd %v got %v", node2, hash.GetNode("3"))
- }
- c1, c2, c3 := getNodesCount(hash.nodes)
- t.Logf("len of nodes is %v after AddNodes node1:%v, node2:%v, node3:%v", len(hash.nodes), c1, c2, c3)
-
- hash.RemoveNode(node3)
- if hash.GetNode("1") != node1 {
- t.Fatalf("expetcd %v got %v", node1, hash.GetNode("1"))
- }
- if hash.GetNode("2") != node2 {
- t.Fatalf("expetcd %v got %v", node1, hash.GetNode("2"))
- }
- if hash.GetNode("3") != node2 {
- t.Fatalf("expetcd %v got %v", node2, hash.GetNode("3"))
- }
- c1, c2, c3 = getNodesCount(hash.nodes)
- t.Logf("len of nodes is %v after RemoveNode node1:%v, node2:%v, node3:%v", len(hash.nodes), c1, c2, c3)
-
- hash.AddNode(node3, 3)
- if hash.GetNode("1") != node3 {
- t.Fatalf("expetcd %v got %v", node3, hash.GetNode("1"))
- }
- if hash.GetNode("2") != node3 {
- t.Fatalf("expetcd %v got %v", node3, hash.GetNode("2"))
- }
- if hash.GetNode("3") != node2 {
- t.Fatalf("expetcd %v got %v", node2, hash.GetNode("3"))
- }
- c1, c2, c3 = getNodesCount(hash.nodes)
- t.Logf("len of nodes is %v after AddNode node1:%v, node2:%v, node3:%v", len(hash.nodes), c1, c2, c3)
-
- }
|