| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 | 
							- package loadbalancer
 
- import (
 
- 	"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 TestHash1(t *testing.T) {
 
- 	nodeWeight := make(map[string]int)
 
- 	nodeWeight[node1] = 2
 
- 	nodeWeight[node2] = 2
 
- 	nodeWeight[node3] = 3
 
- 	hash := NewHashRing()
 
- 	hash.AddNodes(nodeWeight)
 
- 	if hash.GetNode("1") != node1 {
 
- 		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") != node1 {
 
- 		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)
 
- }
 
 
  |