Sha256: 9f60881824266991c931493307a306194efd63c1e2067765832ef430d9d28b6c
Contents?: true
Size: 1.68 KB
Versions: 1
Compression:
Stored size: 1.68 KB
Contents
require 'spec_helper' describe HawatelTlb::Mode::Ratio do let(:client) { HawatelTlb::Client.new } context "the most important node" do let(:loop_count) { 1000 } it "the first one" do setup_ratio_mode(2,1,1) exec_node_method(loop_count) nodes = client.list expect(nodes[0].ratio[:traffic]).to eq(500) expect(nodes[1].ratio[:traffic]).to eq(250) expect(nodes[2].ratio[:traffic]).to eq(250) expect(sum_traffic(nodes)).to eq(loop_count) end it "the second one" do setup_ratio_mode(2,40,10) exec_node_method(loop_count) nodes = client.list expect(nodes[0].ratio[:traffic]).to eq(39) expect(nodes[1].ratio[:traffic]).to eq(769) expect(nodes[2].ratio[:traffic]).to eq(192) expect(sum_traffic(nodes)).to eq(loop_count) end it "the third one" do setup_ratio_mode(0,60,1000) exec_node_method(loop_count) nodes = client.list expect(nodes[0].ratio[:traffic]).to eq(1) expect(nodes[1].ratio[:traffic]).to eq(57) expect(nodes[2].ratio[:traffic]).to eq(942) expect(sum_traffic(nodes)).to eq(loop_count) end end private def setup_ratio_mode(w1, w2, w3) client.add({:host => 'example.com', :port => 80, :weight => w1}) client.add({:host => 'example2.com', :port => 80, :weight => w2}) client.add({:host => 'example3.com', :port => 80, :weight => w3}) client.configure(:mode => 'ratio') client.mode.debug = 0 end def exec_node_method(count) (0..count-1).each do client.node end end def sum_traffic(nodes) traffic = 0 nodes.each do |node| traffic += node.ratio[:traffic] end traffic end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
hawatel_tlb-0.1.0 | spec/modes/ratio_spec.rb |