test/statsd_test.rb in statsd-client-0.0.6 vs test/statsd_test.rb in statsd-client-0.0.7
- old
+ new
@@ -1,45 +1,45 @@
require File.expand_path('../test_helper', __FILE__)
class StatsdTest < Test::Unit::TestCase
-
+
def setup
Statsd.host = 'localhost'
Statsd.port = 8125
super
end
-
+
context "timing" do
-
+
should "send with ms" do
expected_send('test.stat:23|ms')
Statsd.timing('test.stat', 23)
end
-
+
should "log when sampled" do
fake_rand(0.09)
expected_send('test.stat:23|ms@0.1')
Statsd.timing('test.stat', 23, 0.1)
end
-
+
should "not log when not sampled" do
fake_rand(0.11)
expect_nothing
- Statsd.timing('test.stat', 23, 0.1)
+ Statsd.timing('test.stat', 23, 0.1)
end
should "work with a block" do
expected_send(/^test.stat:2[234]\|ms$/)
Statsd.timing('test.stat') do
sleep 0.023
end
end
-
+
end
-
+
context "increment" do
-
+
should "send number" do
expected_send('test.stat:1|c')
Statsd.increment('test.stat')
end
@@ -50,17 +50,17 @@
end
should "not log when not sampled" do
fake_rand(0.11)
expect_nothing
- Statsd.increment('test.stat', 0.1)
+ Statsd.increment('test.stat', 0.1)
end
-
+
end
-
+
context "decrement" do
-
+
should "send number" do
expected_send('test.stat:-1|c')
Statsd.decrement('test.stat')
end
@@ -71,62 +71,83 @@
end
should "not log when not sampled" do
fake_rand(0.11)
expect_nothing
- Statsd.decrement('test.stat', 0.1)
+ Statsd.decrement('test.stat', 0.1)
end
-
+
end
-
+
+ context "gauge" do
+
+ should "send number" do
+ expected_send('test.stat:1337|g')
+ Statsd.gauge('test.stat', 1337)
+ end
+
+ should "log when sampled" do
+ fake_rand(0.09)
+ expected_send('test.stat:1337|g@0.1')
+ Statsd.gauge('test.stat', 1337, 0.1)
+ end
+
+ should "not log when not sampled" do
+ fake_rand(0.11)
+ expect_nothing
+ Statsd.gauge('test.stat', 1337, 0.1)
+ end
+
+ end
+
context "host" do
-
+
should "be gettable and settable" do
Statsd.host = 'statsd-01'
assert_equal 'statsd-01', Statsd.host
end
-
+
end
-
+
context "port" do
should "be gettable and settable" do
Statsd.port = 1234
assert_equal 1234, Statsd.port
end
-
+
end
-
+
context "host_ip_addr" do
-
+
should "resolve dns" do
Statsd.host = 'localhost'
assert loopback?(Statsd.host_ip_addr)
end
-
+
should "be cleared when host is set" do
Statsd.host = 'statsd-01'
assert_nil Statsd.instance_variable_get(:@host_ip_addr)
end
-
+
end
-
+
private
-
+
def fake_rand(v)
Statsd.stubs(:rand).returns(v)
end
-
+
def expected_send(buf)
buf_re = Regexp.new(buf)
UDPSocket.any_instance.expects(:send).with(regexp_matches(buf_re), 0, Statsd.host_ip_addr, Statsd.port).once
end
-
+
def expect_nothing
UDPSocket.any_instance.expects(:send).never
end
-
+
def loopback?(ip)
['::1', '127.0.0.1'].include?(ip)
end
-
+
end