Sha256: 68dc2ed96463ff13bc0ddd4a69764aa902832aaab65d3fd0f60b459794650988

Contents?: true

Size: 1.47 KB

Versions: 47

Compression:

Stored size: 1.47 KB

Contents

require 'spec_helper'

describe PulseMeter::Sensor::Counter 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(10) }.to change{ sensor.value }.from(0).to(10)
      expect{ sensor.event(15) }.to change{ sensor.value }.from(10).to(25)
    end

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

  describe "#value_key" do
    it "should be composed of sensor name and pulse_meter:value: prefix" do
      sensor.value_key.should == "pulse_meter:value:#{name}"
    end
  end

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

    it "should store stringified value by value_key" do
      sensor.event(123)
      sensor.value.should == 123
      redis.get(sensor.value_key).should == '123'
    end
  end

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

  describe "#cleanup" do
    it "should remove all sensor data" do
      sensor.annotate("My Counter")
      sensor.event(123)
      sensor.cleanup
      redis.keys('*').should be_empty
    end
  end

end

Version data entries

47 entries across 47 versions & 3 rubygems

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