| 101 | }; |
| 102 | |
| 103 | TEST_F(HashRingTest, BasicAddRemove) { |
| 104 | vector<IpAddr> basic_addresses; |
| 105 | GetBasicNetworkAddresses(basic_addresses); |
| 106 | |
| 107 | const uint32_t replication = 10; |
| 108 | HashRing h(replication); |
| 109 | VerifyCounts(h, 0); |
| 110 | |
| 111 | int total_addresses = basic_addresses.size(); |
| 112 | for (int i = 0; i < total_addresses; i++) { |
| 113 | h.AddNode(basic_addresses[i]); |
| 114 | VerifyCounts(h, i + 1); |
| 115 | } |
| 116 | |
| 117 | // Remove the elements in a different order |
| 118 | std::random_shuffle(basic_addresses.begin(), basic_addresses.end()); |
| 119 | for (int i = 0; i < total_addresses; i++) { |
| 120 | h.RemoveNode(basic_addresses[i]); |
| 121 | VerifyCounts(h, total_addresses - (i + 1)); |
| 122 | } |
| 123 | } |
| 124 | |
| 125 | TEST_F(HashRingTest, GetNode) { |
| 126 | vector<IpAddr> basic_addresses; |