Sha256: 785a90edaa7a4a83e295acbd36feb95cedf72fd27d0e96910ed139b23ade5e59
Contents?: true
Size: 1.92 KB
Versions: 2
Compression:
Stored size: 1.92 KB
Contents
require 'rhoconnect' require File.join(File.dirname(__FILE__),'..','spec_helper') require File.join(File.dirname(__FILE__),'..','..','lib','rhoconnect','server.rb') STATS_RECORD_RESOLUTION = 2 unless defined? STATS_RECORD_RESOLUTION STATS_RECORD_SIZE = 8 unless defined? STATS_RECORD_SIZE include Rhoconnect describe "Middleware" do before(:each) do @now = 10.0 Store.flush_all app = mock('app') app.stub!(:call) Rhoconnect.stats = true Rhoconnect::Server.enable :stats @middleware_new_routes = Rhoconnect::Middleware::Stats.new(app) Store.stub!(:lock).and_yield end after(:each) do Rhoconnect.stats = false Rhoconnect::Server.disable :stats end it "should compute http average" do @incr = 0 Time.stub!(:now).and_return do if @incr > 0 @now += 0.3 @incr -= 1 end @now end env = { 'rack.request.query_hash' => { 'source_name' => 'SampleAdapter' }, 'REQUEST_METHOD' => 'GET', 'PATH_INFO' => '/api/application/query' } 10.times { @incr = 3; @middleware_new_routes.call(env) } metric = 'http:GET:/api/application/query:SampleAdapter' Rhoconnect::Stats::Record.key(metric).should == "stat:#{metric}" # The conversion algorithm (float to string) currently checks two precisions. # In Ruby 1.9, it tries 16 digits and if that's not enough it then uses 17. # In 1.8, it's the same but with 15 and 16. if RUBY_VERSION =~ /1.9/ Rhoconnect::Stats::Record.range(metric, 0, -1).should == [ "2.0,0.6000000000000014:12", "2.0,0.6000000000000014:14", "2.0,0.6000000000000014:16", "2.0,0.6000000000000014:18" ] else Rhoconnect::Stats::Record.range(metric, 0, -1).should == [ "2.0,0.600000000000002:12", "2.0,0.600000000000002:14", "2.0,0.600000000000002:16", "2.0,0.600000000000002:18" ] end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rhoconnect-4.0.0.beta.10 | spec/server/stats_spec.rb |
rhoconnect-4.0.0.beta.12 | spec/server/stats_spec.rb |