Sha256: 07b9a513750dc2f24963a5f752b8769274e444ab9de458f4dc09abf4f8527b4f

Contents?: true

Size: 1.23 KB

Versions: 25

Compression:

Stored size: 1.23 KB

Contents

require 'spec_helper'

describe PulseMeter::Sensor::HashedCounter do
  let(:name){ :some_counter }
  let(:sensor){ described_class.new(name) }
  let(:redis){ PulseMeter.redis }

  describe "#event" do
    it "should increment sensor value by passed value" do
      expect{ sensor.event({"foo" => 10}) }.to change{ sensor.value["foo"] }.from(0).to(10)
      expect{ sensor.event({"foo" => 15}) }.to change{ sensor.value["foo"] }.from(10).to(25)
    end

    it "should truncate increment value" do
      expect{ sensor.event({"foo" => 10.4}) }.to change{ sensor.value["foo"] }.from(0).to(10)
      expect{ sensor.event({"foo" => 15.1}) }.to change{ sensor.value["foo"] }.from(10).to(25)
    end
  end

  describe "#value" do
    it "should have initial value 0" do
      sensor.value["foo"].should == 0
    end

    it "should store redis hash by value_key" do
      sensor.event({"foo" => 1})
      sensor.value.should == {"foo" => 1}
      redis.hgetall(sensor.value_key).should == {"foo" => "1"}
    end
  end

  describe "#incr" do
    it "should increment key value by 1" do
      expect{ sensor.incr("foo") }.to change{ sensor.value["foo"] }.from(0).to(1)
      expect{ sensor.incr("foo") }.to change{ sensor.value["foo"] }.from(1).to(2)
    end
  end

end

Version data entries

25 entries across 25 versions & 2 rubygems

Version Path
pulse-meter-0.2.7 spec/pulse_meter/sensor/hashed_counter_spec.rb
pulse-meter-0.2.6 spec/pulse_meter/sensor/hashed_counter_spec.rb
pulse-meter-0.2.5 spec/pulse_meter/sensor/hashed_counter_spec.rb
pulse-meter-0.2.3 spec/pulse_meter/sensor/hashed_counter_spec.rb
pulse-meter-0.2.2 spec/pulse_meter/sensor/hashed_counter_spec.rb
pulse-meter-0.2.1 spec/pulse_meter/sensor/hashed_counter_spec.rb
pulse-meter-0.2.0 spec/pulse_meter/sensor/hashed_counter_spec.rb
pulse-meter-client-backport-0.1.4 spec/pulse_meter/sensor/hashed_counter_spec.rb
pulse-meter-0.1.11 spec/pulse_meter/sensor/hashed_counter_spec.rb
pulse-meter-client-backport-0.1.3 spec/pulse_meter/sensor/hashed_counter_spec.rb
pulse-meter-0.1.10 spec/pulse_meter/sensor/hashed_counter_spec.rb
pulse-meter-client-backport-0.1.2 spec/pulse_meter/sensor/hashed_counter_spec.rb
pulse-meter-0.1.9 spec/pulse_meter/sensor/hashed_counter_spec.rb
pulse-meter-client-backport-0.1.1 spec/pulse_meter/sensor/hashed_counter_spec.rb
pulse-meter-0.1.8 spec/pulse_meter/sensor/hashed_counter_spec.rb
pulse-meter-0.1.7 spec/pulse_meter/sensor/hashed_counter_spec.rb
pulse-meter-0.1.6 spec/pulse_meter/sensor/hashed_counter_spec.rb
pulse-meter-0.1.5 spec/pulse_meter/sensor/hashed_counter_spec.rb
pulse-meter-0.1.4 spec/pulse_meter/sensor/hashed_counter_spec.rb
pulse-meter-0.1.3 spec/pulse_meter/sensor/hashed_counter_spec.rb