Sha256: ab1c05355a93726d947d1358881e29f61bccf8cad1e6a10a5f521ef8df9f7ddf

Contents?: true

Size: 1.41 KB

Versions: 22

Compression:

Stored size: 1.41 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

    it "should increment total value" do
      expect{ sensor.event({"foo" => 1, "bar" => 2}) }.to change{sensor.value["total"]}.from(0).to(3)
    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, "total" => 1}
      redis.hgetall(sensor.value_key).should == {"foo" => "1", "total" => "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

22 entries across 22 versions & 2 rubygems

Version Path
pulse_meter_core-0.5.3 spec/pulse_meter/sensor/hashed_counter_spec.rb
pulse_meter_core-0.5.2 spec/pulse_meter/sensor/hashed_counter_spec.rb
pulse_meter_core-0.5.1 spec/pulse_meter/sensor/hashed_counter_spec.rb
pulse_meter_core-0.5.0 spec/pulse_meter/sensor/hashed_counter_spec.rb
pulse_meter_core-0.4.13 spec/pulse_meter/sensor/hashed_counter_spec.rb
pulse-meter-0.4.9 spec/pulse_meter/sensor/hashed_counter_spec.rb
pulse-meter-0.4.8 spec/pulse_meter/sensor/hashed_counter_spec.rb
pulse-meter-0.4.7 spec/pulse_meter/sensor/hashed_counter_spec.rb
pulse-meter-0.4.6 spec/pulse_meter/sensor/hashed_counter_spec.rb
pulse-meter-0.4.5 spec/pulse_meter/sensor/hashed_counter_spec.rb
pulse-meter-0.4.4 spec/pulse_meter/sensor/hashed_counter_spec.rb
pulse-meter-0.4.3 spec/pulse_meter/sensor/hashed_counter_spec.rb
pulse-meter-0.4.2 spec/pulse_meter/sensor/hashed_counter_spec.rb
pulse-meter-0.4.1 spec/pulse_meter/sensor/hashed_counter_spec.rb
pulse-meter-0.4.0 spec/pulse_meter/sensor/hashed_counter_spec.rb
pulse-meter-0.3.2 spec/pulse_meter/sensor/hashed_counter_spec.rb
pulse-meter-0.3.1 spec/pulse_meter/sensor/hashed_counter_spec.rb
pulse-meter-0.3.0 spec/pulse_meter/sensor/hashed_counter_spec.rb
pulse-meter-0.2.11 spec/pulse_meter/sensor/hashed_counter_spec.rb
pulse-meter-0.2.10 spec/pulse_meter/sensor/hashed_counter_spec.rb