pulse_meter_core 0.5.3 → 0.5.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -6,48 +6,48 @@ describe PulseMeter::Sensor::Counter do
6
6
  let(:redis){ PulseMeter.redis }
7
7
 
8
8
  describe "#event" do
9
- it "should increment sensor value by passed value" do
9
+ it "increments sensor value by passed value" do
10
10
  expect{ sensor.event(10) }.to change{ sensor.value }.from(0).to(10)
11
11
  expect{ sensor.event(15) }.to change{ sensor.value }.from(10).to(25)
12
12
  end
13
13
 
14
- it "should truncate increment value" do
14
+ it "truncates increment value" do
15
15
  expect{ sensor.event(10.4) }.to change{ sensor.value }.from(0).to(10)
16
16
  expect{ sensor.event(15.1) }.to change{ sensor.value }.from(10).to(25)
17
17
  end
18
18
  end
19
19
 
20
20
  describe "#value_key" do
21
- it "should be composed of sensor name and pulse_meter:value: prefix" do
22
- sensor.value_key.should == "pulse_meter:value:#{name}"
21
+ it "is composed of sensor name and pulse_meter:value: prefix" do
22
+ expect(sensor.value_key).to eq("pulse_meter:value:#{name}")
23
23
  end
24
24
  end
25
25
 
26
26
  describe "#value" do
27
- it "should have initial value 0" do
28
- sensor.value.should == 0
27
+ it "has initial value 0" do
28
+ expect(sensor.value).to eq(0)
29
29
  end
30
30
 
31
- it "should store stringified value by value_key" do
31
+ it "stores stringified value by value_key" do
32
32
  sensor.event(123)
33
- sensor.value.should == 123
34
- redis.get(sensor.value_key).should == '123'
33
+ expect(sensor.value).to eq(123)
34
+ expect(redis.get(sensor.value_key)).to eq('123')
35
35
  end
36
36
  end
37
37
 
38
38
  describe "#incr" do
39
- it "should increment value by 1" do
39
+ it "increments value by 1" do
40
40
  expect{ sensor.incr }.to change{ sensor.value }.from(0).to(1)
41
41
  expect{ sensor.incr }.to change{ sensor.value }.from(1).to(2)
42
42
  end
43
43
  end
44
44
 
45
45
  describe "#cleanup" do
46
- it "should remove all sensor data" do
46
+ it "removes all sensor data" do
47
47
  sensor.annotate("My Counter")
48
48
  sensor.event(123)
49
49
  sensor.cleanup
50
- redis.keys('*').should be_empty
50
+ expect(redis.keys('*')).to be_empty
51
51
  end
52
52
  end
53
53
 
@@ -6,35 +6,35 @@ describe PulseMeter::Sensor::HashedCounter do
6
6
  let(:redis){ PulseMeter.redis }
7
7
 
8
8
  describe "#event" do
9
- it "should increment sensor value by passed value" do
9
+ it "increments sensor value by passed value" do
10
10
  expect{ sensor.event({"foo" => 10}) }.to change{ sensor.value["foo"] }.from(0).to(10)
11
11
  expect{ sensor.event({"foo" => 15}) }.to change{ sensor.value["foo"] }.from(10).to(25)
12
12
  end
13
13
 
14
- it "should truncate increment value" do
14
+ it "truncates increment value" do
15
15
  expect{ sensor.event({"foo" => 10.4}) }.to change{ sensor.value["foo"] }.from(0).to(10)
16
16
  expect{ sensor.event({"foo" => 15.1}) }.to change{ sensor.value["foo"] }.from(10).to(25)
17
17
  end
18
18
 
19
- it "should increment total value" do
19
+ it "increments total value" do
20
20
  expect{ sensor.event({"foo" => 1, "bar" => 2}) }.to change{sensor.value["total"]}.from(0).to(3)
21
21
  end
22
22
  end
23
23
 
24
24
  describe "#value" do
25
- it "should have initial value 0" do
26
- sensor.value["foo"].should == 0
25
+ it "has initial value 0" do
26
+ expect(sensor.value["foo"]).to eq(0)
27
27
  end
28
28
 
29
- it "should store redis hash by value_key" do
29
+ it "stores redis hash by value_key" do
30
30
  sensor.event({"foo" => 1})
31
- sensor.value.should == {"foo" => 1, "total" => 1}
32
- redis.hgetall(sensor.value_key).should == {"foo" => "1", "total" => "1"}
31
+ expect(sensor.value).to eq({"foo" => 1, "total" => 1})
32
+ expect(redis.hgetall(sensor.value_key)).to eq({"foo" => "1", "total" => "1"})
33
33
  end
34
34
  end
35
35
 
36
36
  describe "#incr" do
37
- it "should increment key value by 1" do
37
+ it "increments key value by 1" do
38
38
  expect{ sensor.incr("foo") }.to change{ sensor.value["foo"] }.from(0).to(1)
39
39
  expect{ sensor.incr("foo") }.to change{ sensor.value["foo"] }.from(1).to(2)
40
40
  end
@@ -6,33 +6,33 @@ describe PulseMeter::Sensor::HashedIndicator do
6
6
  let(:redis){ PulseMeter.redis }
7
7
 
8
8
  describe "#event" do
9
- it "should set sensor value to passed value" do
9
+ it "sets sensor value to passed value" do
10
10
  expect{ sensor.event("foo" => 10.4) }.to change{ sensor.value["foo"] }.from(0).to(10.4)
11
11
  expect{ sensor.event("foo" => 15.1) }.to change{ sensor.value["foo"] }.from(10.4).to(15.1)
12
12
  end
13
13
 
14
- it "should take multiple events" do
14
+ it "takes multiple events" do
15
15
  data = {"foo" => 1.1, "boo" => 2.2}
16
16
  sensor.event(data)
17
- sensor.value.should == data
17
+ expect(sensor.value).to eq(data)
18
18
  end
19
19
  end
20
20
 
21
21
  describe "#value_key" do
22
- it "should be composed of sensor name and pulse_meter:value: prefix" do
23
- sensor.value_key.should == "pulse_meter:value:#{name}"
22
+ it "is composed of sensor name and pulse_meter:value: prefix" do
23
+ expect(sensor.value_key).to eq("pulse_meter:value:#{name}")
24
24
  end
25
25
  end
26
26
 
27
27
  describe "#value" do
28
- it "should have initial value 0" do
29
- sensor.value["foo"].should == 0
28
+ it "has initial value 0" do
29
+ expect(sensor.value["foo"]).to eq(0)
30
30
  end
31
31
 
32
- it "should store redis hash by value_key" do
32
+ it "stores redis hash by value_key" do
33
33
  sensor.event({"foo" => 1})
34
- sensor.value.should == {"foo" => 1}
35
- redis.hgetall(sensor.value_key).should == {"foo" => "1.0"}
34
+ expect(sensor.value).to eq({"foo" => 1})
35
+ expect(redis.hgetall(sensor.value_key)).to eq({"foo" => "1.0"})
36
36
  end
37
37
  end
38
38
 
@@ -6,36 +6,36 @@ describe PulseMeter::Sensor::Indicator do
6
6
  let(:redis){ PulseMeter.redis }
7
7
 
8
8
  describe "#event" do
9
- it "should set sensor value to passed value" do
9
+ it "sets sensor value to passed value" do
10
10
  expect{ sensor.event(10.4) }.to change{ sensor.value }.from(0).to(10.4)
11
11
  expect{ sensor.event(15.1) }.to change{ sensor.value }.from(10.4).to(15.1)
12
12
  end
13
13
  end
14
14
 
15
15
  describe "#value_key" do
16
- it "should be composed of sensor name and pulse_meter:value: prefix" do
17
- sensor.value_key.should == "pulse_meter:value:#{name}"
16
+ it "is composed of sensor name and pulse_meter:value: prefix" do
17
+ expect(sensor.value_key).to eq("pulse_meter:value:#{name}")
18
18
  end
19
19
  end
20
20
 
21
21
  describe "#value" do
22
- it "should have initial value 0" do
23
- sensor.value.should == 0
22
+ it "has initial value 0" do
23
+ expect(sensor.value).to eq(0)
24
24
  end
25
25
 
26
- it "should store stringified value by value_key" do
26
+ it "stores stringified value by value_key" do
27
27
  sensor.event(123)
28
- sensor.value.should == 123
28
+ expect(sensor.value).to eq(123)
29
29
  redis.get(sensor.value_key) == '123'
30
30
  end
31
31
  end
32
32
 
33
33
  describe "#cleanup" do
34
- it "should remove all sensor data" do
34
+ it "removes all sensor data" do
35
35
  sensor.annotate("My Indicator")
36
36
  sensor.event(123)
37
37
  sensor.cleanup
38
- redis.keys('*').should be_empty
38
+ expect(redis.keys('*')).to be_empty
39
39
  end
40
40
  end
41
41
 
@@ -34,19 +34,19 @@ describe PulseMeter::Sensor::Multi do
34
34
 
35
35
  describe "#factors" do
36
36
  it "returns factors passed to constructor" do
37
- sensor.factors.should == factors
37
+ expect(sensor.factors).to eq(factors)
38
38
  end
39
39
  end
40
40
 
41
41
  describe "#configuration_options" do
42
42
  it "returns configuration option passed to constructor" do
43
- sensor.configuration_options.should == configuration
43
+ expect(sensor.configuration_options).to eq(configuration)
44
44
  end
45
45
  end
46
46
 
47
47
  describe "#sensors" do
48
48
  it "returns PulseMeter::Sensor::Configuration instance" do
49
- sensor.sensors.should be_instance_of(PulseMeter::Sensor::Configuration)
49
+ expect(sensor.sensors).to be_instance_of(PulseMeter::Sensor::Configuration)
50
50
  end
51
51
  end
52
52
 
@@ -67,19 +67,19 @@ describe PulseMeter::Sensor::Multi do
67
67
  it "assigns names based on factors' names and values" do
68
68
  sensor.event(factor_values, 1)
69
69
  names = sensor.sensors.to_a.map(&:name)
70
- names.sort.should == [
70
+ expect(names.sort).to eq([
71
71
  "#{name}",
72
72
  "#{name}_f1_v1",
73
73
  "#{name}_f2_v2",
74
74
  "#{name}_f1_v1_f2_v2"
75
- ].sort
75
+ ].sort)
76
76
  end
77
77
 
78
78
  it "creates sensors of given type with configuration options passed" do
79
79
  sensor.event(factor_values, 1)
80
80
  sensor.sensors.each do |s|
81
- s.should be_instance_of(PulseMeter::Sensor::Counter)
82
- s.annotation.should == annotation
81
+ expect(s).to be_instance_of(PulseMeter::Sensor::Counter)
82
+ expect(s.annotation).to eq(annotation)
83
83
  end
84
84
  end
85
85
  end
@@ -96,7 +96,7 @@ describe PulseMeter::Sensor::Multi do
96
96
  ["#{name}_f1_f1v2_f2_f2v1", 2]
97
97
  ].each do |sensor_name, sum|
98
98
  sensor.sensor(sensor_name) { |s|
99
- s.value.should == sum
99
+ expect(s.value).to eq(sum)
100
100
  }
101
101
  end
102
102
  end
@@ -107,12 +107,12 @@ describe PulseMeter::Sensor::Multi do
107
107
  sensor.event({f1: :f1v1, f2: :f2v1}, 1)
108
108
  restored_sensor = PulseMeter::Sensor::Base.restore(name)
109
109
 
110
- restored_sensor.to_a.map(&:name).sort.should == [
110
+ expect(restored_sensor.to_a.map(&:name).sort).to eq([
111
111
  "#{name}",
112
112
  "#{name}_f1_f1v1",
113
113
  "#{name}_f2_f2v1",
114
114
  "#{name}_f1_f1v1_f2_f2v1",
115
- ].sort
115
+ ].sort)
116
116
  end
117
117
  end
118
118
 
@@ -120,8 +120,8 @@ describe PulseMeter::Sensor::Multi do
120
120
  context "when sensor has already been created" do
121
121
  it "yields block with sensor for given combination of factors and their values" do
122
122
  sensor.event({f1: :f1v1, f2: :f2v1}, 1)
123
- sensor.sensor_for_factors([:f1, :f2], [:f1v1, :f2v1]){|s| s.name.should == "#{name}_f1_f1v1_f2_f2v1"}
124
- sensor.sensor_for_factors([:f1], [:f1v1]){|s| s.name.should == "#{name}_f1_f1v1"}
123
+ sensor.sensor_for_factors([:f1, :f2], [:f1v1, :f2v1]){|s| expect(s.name).to eq("#{name}_f1_f1v1_f2_f2v1")}
124
+ sensor.sensor_for_factors([:f1], [:f1v1]){|s| expect(s.name).to eq("#{name}_f1_f1v1")}
125
125
  end
126
126
  end
127
127
 
@@ -129,7 +129,7 @@ describe PulseMeter::Sensor::Multi do
129
129
  it "does not yields block" do
130
130
  yielded = false
131
131
  sensor.sensor_for_factors([:foo], [:bar]){ yielded = true }
132
- yielded.should_not be
132
+ expect(yielded).not_to be
133
133
  end
134
134
  end
135
135
  end
@@ -21,36 +21,36 @@ describe PulseMeter::Sensor::Timeline do
21
21
  shared_examples_for "error raiser" do |value_names, bad_values|
22
22
  value_names.each do |value|
23
23
  bad_values.each do |bad_value|
24
- it "should raise exception if a bad value #{bad_value.inspect} passed for #{value.inspect}" do
24
+ it "raises exception if a bad value #{bad_value.inspect} passed for #{value.inspect}" do
25
25
  expect{ described_class.new(name, good_init_values.merge(value => bad_value)) }.to raise_exception(ArgumentError)
26
26
  end
27
27
  end
28
28
  end
29
29
  end
30
30
 
31
- it "should initialize #ttl #raw_data_ttl #interval and #name attributes" do
32
- sensor.name.should == name.to_s
31
+ it "initializes #ttl #raw_data_ttl #interval and #name attributes" do
32
+ expect(sensor.name).to eq(name.to_s)
33
33
 
34
- sensor.ttl.should == ttl
35
- sensor.raw_data_ttl.should == raw_data_ttl
36
- sensor.interval.should == interval
34
+ expect(sensor.ttl).to eq(ttl)
35
+ expect(sensor.raw_data_ttl).to eq(raw_data_ttl)
36
+ expect(sensor.interval).to eq(interval)
37
37
  end
38
38
 
39
39
  it_should_behave_like "error raiser", INIT_VALUE_NAMES[:without_defaults], [:bad, -1, nil]
40
40
  it_should_behave_like "error raiser", INIT_VALUE_NAMES[:with_defaults], [:bad, -1]
41
41
 
42
42
  INIT_VALUE_NAMES[:with_defaults].each do |value|
43
- it "should not raise exception if #{value.inspect} is not defined" do
43
+ it "does not raise exception if #{value.inspect} is not defined" do
44
44
  values = good_init_values
45
45
  values.delete(value)
46
46
  expect {described_class.new(name, good_init_values)}.not_to raise_error
47
47
  end
48
48
 
49
- it "should assign default value to #{value.inspect} if it is not defined" do
49
+ it "assigns default value to #{value.inspect} if it is not defined" do
50
50
  values = good_init_values
51
51
  values.delete(value)
52
52
  obj = described_class.new(name, good_init_values)
53
- obj.send(value).should be_kind_of(Fixnum)
53
+ expect(obj.send(value)).to be_kind_of(Fixnum)
54
54
  end
55
55
  end
56
56
 
@@ -73,15 +73,15 @@ describe PulseMeter::Sensor::Timeline do
73
73
  let!(:bad_instance) { BadSubclass.new("bad", good_init_values) }
74
74
 
75
75
  it "preserves nil values" do
76
- good_instance.deflate_safe(nil).should be_nil
76
+ expect(good_instance.deflate_safe(nil)).to be_nil
77
77
  end
78
78
 
79
79
  it "converts value as defined in subclass" do
80
- good_instance.deflate_safe("10").should == 10
80
+ expect(good_instance.deflate_safe("10")).to eq(10)
81
81
  end
82
82
 
83
83
  it "returns nil if conversion fails" do
84
- bad_instance.deflate_safe(:foo).should be_nil
84
+ expect(bad_instance.deflate_safe(:foo)).to be_nil
85
85
  end
86
86
  end
87
87
 
@@ -8,11 +8,11 @@ describe PulseMeter::Sensor::Timelined::MultiPercentile do
8
8
  let(:init_values) {{:ttl => 1, :raw_data_ttl => 1, :interval => 1, :reduce_delay => 1}}
9
9
  let(:name) {"percentile"}
10
10
 
11
- it "should raise exception when extra parameter is not array of percentiles" do
11
+ it "raises exception when extra parameter is not array of percentiles" do
12
12
  expect {described_class.new(name, init_values.merge({:p => :bad}))}.to raise_exception(ArgumentError)
13
13
  end
14
14
 
15
- it "should raise exception when one of percentiles is not between 0 and 1" do
15
+ it "raises exception when one of percentiles is not between 0 and 1" do
16
16
  expect {described_class.new(name, init_values.merge({:p => [0.5, -1]}))}.to raise_exception(ArgumentError)
17
17
  expect {described_class.new(name, init_values.merge({:p => [0.5, 1.1]}))}.to raise_exception(ArgumentError)
18
18
  expect {described_class.new(name, init_values.merge({:p => [0.5, 0.1]}))}.not_to raise_exception
@@ -8,7 +8,7 @@ describe PulseMeter::Sensor::Timelined::Percentile do
8
8
  let(:init_values) {{:ttl => 1, :raw_data_ttl => 1, :interval => 1, :reduce_delay => 1}}
9
9
  let(:name) {"percentile"}
10
10
 
11
- it "should raise exception when percentile is not between 0 and 1" do
11
+ it "raises exception when percentile is not between 0 and 1" do
12
12
  expect {described_class.new(name, init_values.merge({:p => -1}))}.to raise_exception(ArgumentError)
13
13
  expect {described_class.new(name, init_values.merge({:p => 1.1}))}.to raise_exception(ArgumentError)
14
14
  expect {described_class.new(name, init_values.merge({:p => 0.1}))}.not_to raise_exception
@@ -6,7 +6,7 @@ describe PulseMeter::Sensor::UniqCounter do
6
6
  let(:redis){ PulseMeter.redis }
7
7
 
8
8
  describe "#event" do
9
- it "should count unique values" do
9
+ it "counts unique values" do
10
10
  expect{ sensor.event(:first) }.to change{sensor.value}.to(1)
11
11
  expect{ sensor.event(:first) }.not_to change{sensor.value}
12
12
  expect{ sensor.event(:second) }.to change{sensor.value}.from(1).to(2)
@@ -14,14 +14,14 @@ describe PulseMeter::Sensor::UniqCounter do
14
14
  end
15
15
 
16
16
  describe "#value" do
17
- it "should have initial value 0" do
18
- sensor.value.should == 0
17
+ it "has initial value 0" do
18
+ expect(sensor.value).to eq(0)
19
19
  end
20
20
 
21
- it "should return count of unique values" do
21
+ it "returns count of unique values" do
22
22
  data = (1..100).map {rand(200)}
23
23
  data.each {|e| sensor.event(e)}
24
- sensor.value.should == data.uniq.count
24
+ expect(sensor.value).to eq(data.uniq.count)
25
25
  end
26
26
  end
27
27
 
@@ -6,9 +6,9 @@ describe PulseMeter::UDPServer do
6
6
  let(:udp_sock){double(:socket)}
7
7
  let(:redis){PulseMeter.redis}
8
8
  before do
9
- UDPSocket.should_receive(:new).and_return(udp_sock)
10
- udp_sock.should_receive(:bind).with(host, port).and_return(nil)
11
- udp_sock.should_receive("do_not_reverse_lookup=").with(true).and_return(nil)
9
+ expect(UDPSocket).to receive(:new).and_return(udp_sock)
10
+ expect(udp_sock).to receive(:bind).with(host, port).and_return(nil)
11
+ expect(udp_sock).to receive("do_not_reverse_lookup=").with(true).and_return(nil)
12
12
  @server = described_class.new(host, port)
13
13
  end
14
14
 
@@ -19,15 +19,15 @@ describe PulseMeter::UDPServer do
19
19
  ["set", "yyyy", "zzzz"]
20
20
  ].to_json
21
21
  }
22
- it "should process proper incoming commands" do
23
- udp_sock.should_receive(:recvfrom).with(described_class::MAX_PACKET).and_return(data)
22
+ it "processes proper incoming commands" do
23
+ expect(udp_sock).to receive(:recvfrom).with(described_class::MAX_PACKET).and_return(data)
24
24
  @server.start(1)
25
- redis.get("xxxx").should == "zzzz"
26
- redis.get("yyyy").should == "zzzz"
25
+ expect(redis.get("xxxx")).to eq("zzzz")
26
+ expect(redis.get("yyyy")).to eq("zzzz")
27
27
  end
28
28
 
29
- it "should suppress JSON errors" do
30
- udp_sock.should_receive(:recvfrom).with(described_class::MAX_PACKET).and_return("xxx")
29
+ it "suppresses JSON errors" do
30
+ expect(udp_sock).to receive(:recvfrom).with(described_class::MAX_PACKET).and_return("xxx")
31
31
  expect{ @server.start(1) }.not_to raise_exception
32
32
  end
33
33
  end
@@ -2,71 +2,71 @@ require 'spec_helper'
2
2
 
3
3
  describe PulseMeter do
4
4
  describe "::redis=" do
5
- it "should store redis" do
5
+ it "stores redis" do
6
6
  PulseMeter.redis = 'redis'
7
- PulseMeter.redis.should == 'redis'
7
+ expect(PulseMeter.redis).to eq('redis')
8
8
  end
9
9
  end
10
10
  describe "::redis" do
11
- it "should retrieve redis" do
11
+ it "retrieves redis" do
12
12
  PulseMeter.redis = 'redis'
13
- PulseMeter.redis.should == 'redis'
13
+ expect(PulseMeter.redis).to eq('redis')
14
14
  end
15
15
  end
16
16
  describe "::command_aggregator=" do
17
17
  context "when :async passed" do
18
- it "should set async command_aggregator to be used" do
18
+ it "sets async command_aggregator to be used" do
19
19
  PulseMeter.command_aggregator = :async
20
- PulseMeter.command_aggregator.should be_kind_of(PulseMeter::CommandAggregator::Async)
20
+ expect(PulseMeter.command_aggregator).to be_kind_of(PulseMeter::CommandAggregator::Async)
21
21
  end
22
22
  end
23
23
  context "when :sync passed" do
24
- it "should set sync command_aggregator to be used" do
24
+ it "sets sync command_aggregator to be used" do
25
25
  PulseMeter.command_aggregator = :sync
26
- PulseMeter.command_aggregator.should be_kind_of(PulseMeter::CommandAggregator::Sync)
26
+ expect(PulseMeter.command_aggregator).to be_kind_of(PulseMeter::CommandAggregator::Sync)
27
27
  end
28
28
  end
29
29
  context "otherwise" do
30
- it "should set command_aggregator to the passed value" do
30
+ it "sets command_aggregator to the passed value" do
31
31
  PulseMeter.command_aggregator = :xxx
32
- PulseMeter.command_aggregator.should == :xxx
32
+ expect(PulseMeter.command_aggregator).to eq(:xxx)
33
33
  end
34
34
  end
35
35
  end
36
36
 
37
37
  describe "::command_aggregator" do
38
- it "should return current command_aggregator" do
38
+ it "returns current command_aggregator" do
39
39
  PulseMeter.command_aggregator = :async
40
- PulseMeter.command_aggregator.should be_kind_of(PulseMeter::CommandAggregator::Async)
40
+ expect(PulseMeter.command_aggregator).to be_kind_of(PulseMeter::CommandAggregator::Async)
41
41
  PulseMeter.command_aggregator = :sync
42
- PulseMeter.command_aggregator.should be_kind_of(PulseMeter::CommandAggregator::Sync)
42
+ expect(PulseMeter.command_aggregator).to be_kind_of(PulseMeter::CommandAggregator::Sync)
43
43
  end
44
44
 
45
- it "should always return the same command_aggregator for each type" do
45
+ it "always returns the same command_aggregator for each type" do
46
46
  PulseMeter.command_aggregator = :async
47
47
  ca1 = PulseMeter.command_aggregator
48
48
  PulseMeter.command_aggregator = :sync
49
49
  PulseMeter.command_aggregator = :async
50
50
  ca2 = PulseMeter.command_aggregator
51
- ca1.should == ca2
51
+ expect(ca1).to eq(ca2)
52
52
  end
53
53
  end
54
54
 
55
55
  describe "::logger" do
56
- it "should return PulseMeter logger" do
56
+ it "returns PulseMeter logger" do
57
57
  PulseMeter.logger = 123
58
- PulseMeter.logger.should == 123
58
+ expect(PulseMeter.logger).to eq(123)
59
59
  end
60
60
 
61
- it "should return default logger" do
61
+ it "returns default logger" do
62
62
  PulseMeter.logger = nil
63
- PulseMeter.logger.should be_kind_of(Logger)
63
+ expect(PulseMeter.logger).to be_kind_of(Logger)
64
64
  end
65
65
  end
66
66
 
67
67
  describe "::error" do
68
- it "should delegate error message to logger" do
69
- PulseMeter.logger.should_receive(:error)
68
+ it "delegates error message to logger" do
69
+ expect(PulseMeter.logger).to receive(:error)
70
70
  PulseMeter.error("foo")
71
71
  end
72
72
  end