statsd-instrument 3.0.0 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +3 -3
  3. data/.rubocop.yml +3 -13
  4. data/CHANGELOG.md +6 -0
  5. data/Gemfile +8 -0
  6. data/README.md +2 -2
  7. data/Rakefile +1 -1
  8. data/bin/rake +29 -0
  9. data/bin/rubocop +29 -0
  10. data/lib/statsd/instrument.rb +4 -1
  11. data/lib/statsd/instrument/assertions.rb +200 -196
  12. data/lib/statsd/instrument/capture_sink.rb +23 -19
  13. data/lib/statsd/instrument/client.rb +414 -410
  14. data/lib/statsd/instrument/datagram.rb +69 -65
  15. data/lib/statsd/instrument/datagram_builder.rb +81 -77
  16. data/lib/statsd/instrument/dogstatsd_datagram.rb +76 -72
  17. data/lib/statsd/instrument/dogstatsd_datagram_builder.rb +68 -64
  18. data/lib/statsd/instrument/environment.rb +80 -77
  19. data/lib/statsd/instrument/expectation.rb +96 -92
  20. data/lib/statsd/instrument/helpers.rb +11 -7
  21. data/lib/statsd/instrument/log_sink.rb +20 -16
  22. data/lib/statsd/instrument/matchers.rb +86 -70
  23. data/lib/statsd/instrument/null_sink.rb +12 -8
  24. data/lib/statsd/instrument/railtie.rb +11 -7
  25. data/lib/statsd/instrument/statsd_datagram_builder.rb +12 -8
  26. data/lib/statsd/instrument/udp_sink.rb +50 -46
  27. data/lib/statsd/instrument/version.rb +1 -1
  28. data/statsd-instrument.gemspec +2 -8
  29. data/test/assertions_test.rb +12 -12
  30. data/test/capture_sink_test.rb +8 -8
  31. data/test/client_test.rb +54 -54
  32. data/test/datagram_builder_test.rb +29 -29
  33. data/test/datagram_test.rb +1 -1
  34. data/test/dogstatsd_datagram_builder_test.rb +28 -28
  35. data/test/environment_test.rb +9 -9
  36. data/test/helpers/rubocop_helper.rb +9 -6
  37. data/test/helpers_test.rb +5 -5
  38. data/test/integration_test.rb +1 -1
  39. data/test/log_sink_test.rb +2 -2
  40. data/test/matchers_test.rb +36 -36
  41. data/test/null_sink_test.rb +2 -2
  42. data/test/rubocop/metric_return_value_test.rb +3 -3
  43. data/test/rubocop/positional_arguments_test.rb +10 -10
  44. data/test/statsd_instrumentation_test.rb +66 -66
  45. data/test/statsd_test.rb +44 -44
  46. data/test/test_helper.rb +6 -4
  47. data/test/udp_sink_test.rb +8 -8
  48. metadata +7 -103
  49. data/.rubocop-https---shopify-github-io-ruby-style-guide-rubocop-yml +0 -1027
@@ -16,15 +16,9 @@ Gem::Specification.new do |spec|
16
16
  spec.license = "MIT"
17
17
 
18
18
  spec.files = `git ls-files`.split($/)
19
- spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
19
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
20
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
21
21
  spec.require_paths = ["lib"]
22
22
 
23
- spec.add_development_dependency 'rake'
24
- spec.add_development_dependency 'minitest'
25
- spec.add_development_dependency 'rspec'
26
- spec.add_development_dependency 'mocha'
27
- spec.add_development_dependency 'yard'
28
- spec.add_development_dependency 'rubocop'
29
- spec.add_development_dependency 'benchmark-ips'
23
+ spec.metadata['allowed_push_host'] = "https://rubygems.org"
30
24
  end
@@ -31,7 +31,7 @@ class AssertionsTest < Minitest::Test
31
31
  StatsD.increment('counter')
32
32
  end
33
33
  end
34
- assert_equal assertion.message, "No StatsD calls for metric counter expected."
34
+ assert_equal(assertion.message, "No StatsD calls for metric counter expected.")
35
35
 
36
36
  @test_case.assert_no_statsd_calls('counter1', 'counter2') do
37
37
  # noop
@@ -49,21 +49,21 @@ class AssertionsTest < Minitest::Test
49
49
  StatsD.increment('counter3')
50
50
  end
51
51
  end
52
- assert_equal assertion.message, "No StatsD calls for metric counter1, counter2 expected."
52
+ assert_equal(assertion.message, "No StatsD calls for metric counter1, counter2 expected.")
53
53
 
54
54
  assertion = assert_raises(Minitest::Assertion) do
55
55
  @test_case.assert_no_statsd_calls('counter0', 'counter1', 'counter2') do
56
56
  StatsD.increment('counter1')
57
57
  end
58
58
  end
59
- assert_equal assertion.message, "No StatsD calls for metric counter1 expected."
59
+ assert_equal(assertion.message, "No StatsD calls for metric counter1 expected.")
60
60
 
61
61
  assertion = assert_raises(Minitest::Assertion) do
62
62
  @test_case.assert_no_statsd_calls do
63
63
  StatsD.increment('other')
64
64
  end
65
65
  end
66
- assert_equal assertion.message, "No StatsD calls for metric other expected."
66
+ assert_equal(assertion.message, "No StatsD calls for metric other expected.")
67
67
 
68
68
  assertion = assert_raises(Minitest::Assertion) do
69
69
  @test_case.assert_no_statsd_calls do
@@ -71,7 +71,7 @@ class AssertionsTest < Minitest::Test
71
71
  StatsD.increment('another')
72
72
  end
73
73
  end
74
- assert_equal assertion.message, "No StatsD calls for metric other, another expected."
74
+ assert_equal(assertion.message, "No StatsD calls for metric other, another expected.")
75
75
  end
76
76
 
77
77
  def test_assert_statsd
@@ -202,8 +202,8 @@ class AssertionsTest < Minitest::Test
202
202
  end
203
203
  end
204
204
 
205
- assert_includes assertion.message, "Captured metrics with the same key"
206
- assert_includes assertion.message, "MyJob"
205
+ assert_includes(assertion.message, "Captured metrics with the same key")
206
+ assert_includes(assertion.message, "MyJob")
207
207
  end
208
208
 
209
209
  def test_capture_and_assert
@@ -367,7 +367,7 @@ class AssertionsTest < Minitest::Test
367
367
  end
368
368
  end
369
369
  end
370
- assert_includes assertion.message, "No StatsD calls for metric counter of type c were made"
370
+ assert_includes(assertion.message, "No StatsD calls for metric counter of type c were made")
371
371
  end
372
372
 
373
373
  def test_assertion_block_with_unexpected_exceptions
@@ -377,7 +377,7 @@ class AssertionsTest < Minitest::Test
377
377
  raise "unexpected"
378
378
  end
379
379
  end
380
- assert_includes assertion.message, "An exception occurred in the block provided to the StatsD assertion"
380
+ assert_includes(assertion.message, "An exception occurred in the block provided to the StatsD assertion")
381
381
 
382
382
  assertion = assert_raises(Minitest::Assertion) do
383
383
  @test_case.assert_raises(RuntimeError) do
@@ -387,7 +387,7 @@ class AssertionsTest < Minitest::Test
387
387
  end
388
388
  end
389
389
  end
390
- assert_includes assertion.message, "An exception occurred in the block provided to the StatsD assertion"
390
+ assert_includes(assertion.message, "An exception occurred in the block provided to the StatsD assertion")
391
391
 
392
392
  assertion = assert_raises(Minitest::Assertion) do
393
393
  @test_case.assert_raises(RuntimeError) do
@@ -396,7 +396,7 @@ class AssertionsTest < Minitest::Test
396
396
  end
397
397
  end
398
398
  end
399
- assert_includes assertion.message, "An exception occurred in the block provided to the StatsD assertion"
399
+ assert_includes(assertion.message, "An exception occurred in the block provided to the StatsD assertion")
400
400
  end
401
401
 
402
402
  def test_assertion_block_with_other_assertion_failures
@@ -406,6 +406,6 @@ class AssertionsTest < Minitest::Test
406
406
  @test_case.flunk('other assertion failure')
407
407
  end
408
408
  end
409
- assert_equal "other assertion failure", assertion.message
409
+ assert_equal("other assertion failure", assertion.message)
410
410
  end
411
411
  end
@@ -7,9 +7,9 @@ class CaptureSinkTest < Minitest::Test
7
7
  capture_sink = StatsD::Instrument::CaptureSink.new(parent: [])
8
8
  capture_sink << 'foo:1|c'
9
9
 
10
- assert_equal 1, capture_sink.datagrams.length
11
- assert_kind_of StatsD::Instrument::Datagram, capture_sink.datagrams.first
12
- assert_equal 'foo:1|c', capture_sink.datagrams.first.source
10
+ assert_equal(1, capture_sink.datagrams.length)
11
+ assert_kind_of(StatsD::Instrument::Datagram, capture_sink.datagrams.first)
12
+ assert_equal('foo:1|c', capture_sink.datagrams.first.source)
13
13
  end
14
14
 
15
15
  def test_capture_sink_sends_datagrams_to_parent
@@ -17,7 +17,7 @@ class CaptureSinkTest < Minitest::Test
17
17
  capture_sink = StatsD::Instrument::CaptureSink.new(parent: parent)
18
18
  capture_sink << 'foo:1|c' << 'bar:1|c'
19
19
 
20
- assert_equal ['foo:1|c', 'bar:1|c'], parent
20
+ assert_equal(['foo:1|c', 'bar:1|c'], parent)
21
21
  end
22
22
 
23
23
  def test_nesting_capture_sink_instances
@@ -28,15 +28,15 @@ class CaptureSinkTest < Minitest::Test
28
28
  outer_capture_sink << 'foo:1|c'
29
29
  inner_capture_sink << 'bar:1|c'
30
30
 
31
- assert_equal ['foo:1|c', 'bar:1|c'], outer_capture_sink.datagrams.map(&:source)
32
- assert_equal ['bar:1|c'], inner_capture_sink.datagrams.map(&:source)
31
+ assert_equal(['foo:1|c', 'bar:1|c'], outer_capture_sink.datagrams.map(&:source))
32
+ assert_equal(['bar:1|c'], inner_capture_sink.datagrams.map(&:source))
33
33
  end
34
34
 
35
35
  def test_using_a_different_datagram_class
36
36
  sink = StatsD::Instrument::CaptureSink.new(parent: [], datagram_class: String)
37
37
  sink << 'foo:1|c'
38
38
 
39
- assert sink.datagrams.all? { |datagram| datagram.is_a?(String) }
40
- assert_equal ['foo:1|c'], sink.datagrams
39
+ assert(sink.datagrams.all? { |datagram| datagram.is_a?(String) })
40
+ assert_equal(['foo:1|c'], sink.datagrams)
41
41
  end
42
42
  end
@@ -19,25 +19,25 @@ class ClientTest < Minitest::Test
19
19
  )
20
20
  client = StatsD::Instrument::Client.from_env(env)
21
21
 
22
- assert_equal 0.1, client.default_sample_rate
23
- assert_equal 'foo', client.prefix
24
- assert_equal ['shard:1', 'env:production'], client.default_tags
25
- assert_equal StatsD::Instrument::StatsDDatagramBuilder, client.datagram_builder_class
22
+ assert_equal(0.1, client.default_sample_rate)
23
+ assert_equal('foo', client.prefix)
24
+ assert_equal(['shard:1', 'env:production'], client.default_tags)
25
+ assert_equal(StatsD::Instrument::StatsDDatagramBuilder, client.datagram_builder_class)
26
26
 
27
- assert_kind_of StatsD::Instrument::UDPSink, client.sink
28
- assert_equal '1.2.3.4', client.sink.host
29
- assert_equal 8125, client.sink.port
27
+ assert_kind_of(StatsD::Instrument::UDPSink, client.sink)
28
+ assert_equal('1.2.3.4', client.sink.host)
29
+ assert_equal(8125, client.sink.port)
30
30
  end
31
31
 
32
32
  def test_client_from_env_has_sensible_defaults
33
33
  env = StatsD::Instrument::Environment.new({})
34
34
  client = StatsD::Instrument::Client.from_env(env)
35
35
 
36
- assert_equal 1.0, client.default_sample_rate
37
- assert_nil client.prefix
38
- assert_nil client.default_tags
39
- assert_equal StatsD::Instrument::DogStatsDDatagramBuilder, client.datagram_builder_class
40
- assert_kind_of StatsD::Instrument::LogSink, client.sink
36
+ assert_equal(1.0, client.default_sample_rate)
37
+ assert_nil(client.prefix)
38
+ assert_nil(client.default_tags)
39
+ assert_equal(StatsD::Instrument::DogStatsDDatagramBuilder, client.datagram_builder_class)
40
+ assert_kind_of(StatsD::Instrument::LogSink, client.sink)
41
41
  end
42
42
 
43
43
  def test_client_from_env_with_overrides
@@ -51,12 +51,12 @@ class ClientTest < Minitest::Test
51
51
  client = StatsD::Instrument::Client.from_env(env,
52
52
  prefix: 'bar', implementation: 'dogstatsd', sink: StatsD::Instrument::NullSink.new)
53
53
 
54
- assert_equal 0.1, client.default_sample_rate
55
- assert_equal 'bar', client.prefix
56
- assert_equal ['shard:1', 'env:production'], client.default_tags
57
- assert_equal StatsD::Instrument::DogStatsDDatagramBuilder, client.datagram_builder_class
54
+ assert_equal(0.1, client.default_sample_rate)
55
+ assert_equal('bar', client.prefix)
56
+ assert_equal(['shard:1', 'env:production'], client.default_tags)
57
+ assert_equal(StatsD::Instrument::DogStatsDDatagramBuilder, client.datagram_builder_class)
58
58
 
59
- assert_kind_of StatsD::Instrument::NullSink, client.sink
59
+ assert_kind_of(StatsD::Instrument::NullSink, client.sink)
60
60
  end
61
61
 
62
62
  def test_capture
@@ -71,27 +71,27 @@ class ClientTest < Minitest::Test
71
71
  end
72
72
  @client.increment('quc')
73
73
 
74
- assert_equal ['bar', 'baz'], outer_datagrams.map(&:name)
75
- assert_equal ['baz'], inner_datagrams.map(&:name)
74
+ assert_equal(['bar', 'baz'], outer_datagrams.map(&:name))
75
+ assert_equal(['baz'], inner_datagrams.map(&:name))
76
76
  end
77
77
 
78
78
  def test_metric_methods_return_truish_void
79
- assert @client.increment('foo')
80
- assert @client.measure('bar', 122.54)
81
- assert @client.set('baz', 123)
82
- assert @client.gauge('baz', 12.3)
79
+ assert(@client.increment('foo'))
80
+ assert(@client.measure('bar', 122.54))
81
+ assert(@client.set('baz', 123))
82
+ assert(@client.gauge('baz', 12.3))
83
83
  end
84
84
 
85
85
  def test_increment_with_default_value
86
86
  datagrams = @client.capture { @client.increment('foo') }
87
- assert_equal 1, datagrams.size
88
- assert_equal 'foo:1|c', datagrams.first.source
87
+ assert_equal(1, datagrams.size)
88
+ assert_equal('foo:1|c', datagrams.first.source)
89
89
  end
90
90
 
91
91
  def test_measure_with_value
92
92
  datagrams = @client.capture { @client.measure('foo', 122.54) }
93
- assert_equal 1, datagrams.size
94
- assert_equal 'foo:122.54|ms', datagrams.first.source
93
+ assert_equal(1, datagrams.size)
94
+ assert_equal('foo:122.54|ms', datagrams.first.source)
95
95
  end
96
96
 
97
97
  def test_measure_with_block
@@ -99,32 +99,32 @@ class ClientTest < Minitest::Test
99
99
  datagrams = @client.capture do
100
100
  @client.measure('foo') {}
101
101
  end
102
- assert_equal 1, datagrams.size
103
- assert_equal 'foo:100.0|ms', datagrams.first.source
102
+ assert_equal(1, datagrams.size)
103
+ assert_equal('foo:100.0|ms', datagrams.first.source)
104
104
  end
105
105
 
106
106
  def test_gauge
107
107
  datagrams = @client.capture { @client.gauge('foo', 123) }
108
- assert_equal 1, datagrams.size
109
- assert_equal 'foo:123|g', datagrams.first.source
108
+ assert_equal(1, datagrams.size)
109
+ assert_equal('foo:123|g', datagrams.first.source)
110
110
  end
111
111
 
112
112
  def test_set
113
113
  datagrams = @client.capture { @client.set('foo', 12345) }
114
- assert_equal 1, datagrams.size
115
- assert_equal 'foo:12345|s', datagrams.first.source
114
+ assert_equal(1, datagrams.size)
115
+ assert_equal('foo:12345|s', datagrams.first.source)
116
116
  end
117
117
 
118
118
  def test_histogram
119
119
  datagrams = @dogstatsd_client.capture { @dogstatsd_client.histogram('foo', 12.44) }
120
- assert_equal 1, datagrams.size
121
- assert_equal 'foo:12.44|h', datagrams.first.source
120
+ assert_equal(1, datagrams.size)
121
+ assert_equal('foo:12.44|h', datagrams.first.source)
122
122
  end
123
123
 
124
124
  def test_distribution_with_value
125
125
  datagrams = @dogstatsd_client.capture { @dogstatsd_client.distribution('foo', 12.44) }
126
- assert_equal 1, datagrams.size
127
- assert_equal 'foo:12.44|d', datagrams.first.source
126
+ assert_equal(1, datagrams.size)
127
+ assert_equal('foo:12.44|d', datagrams.first.source)
128
128
  end
129
129
 
130
130
  def test_distribution_with_block
@@ -132,8 +132,8 @@ class ClientTest < Minitest::Test
132
132
  datagrams = @dogstatsd_client.capture do
133
133
  @dogstatsd_client.distribution('foo') {}
134
134
  end
135
- assert_equal 1, datagrams.size
136
- assert_equal "foo:100.0|d", datagrams.first.source
135
+ assert_equal(1, datagrams.size)
136
+ assert_equal("foo:100.0|d", datagrams.first.source)
137
137
  end
138
138
 
139
139
  def test_latency_emits_ms_metric
@@ -141,8 +141,8 @@ class ClientTest < Minitest::Test
141
141
  datagrams = @client.capture do
142
142
  @client.latency('foo') {}
143
143
  end
144
- assert_equal 1, datagrams.size
145
- assert_equal "foo:100.0|ms", datagrams.first.source
144
+ assert_equal(1, datagrams.size)
145
+ assert_equal("foo:100.0|ms", datagrams.first.source)
146
146
  end
147
147
 
148
148
  def test_latency_on_dogstatsd_prefers_distribution_metric_type
@@ -150,8 +150,8 @@ class ClientTest < Minitest::Test
150
150
  datagrams = @dogstatsd_client.capture do
151
151
  @dogstatsd_client.latency('foo') {}
152
152
  end
153
- assert_equal 1, datagrams.size
154
- assert_equal "foo:100.0|d", datagrams.first.source
153
+ assert_equal(1, datagrams.size)
154
+ assert_equal("foo:100.0|d", datagrams.first.source)
155
155
  end
156
156
 
157
157
  def test_latency_calls_block_even_when_not_sending_a_sample
@@ -159,19 +159,19 @@ class ClientTest < Minitest::Test
159
159
  @client.capture do
160
160
  @client.latency('foo', sample_rate: 0) { called = true }
161
161
  end
162
- assert called, "The block should have been called"
162
+ assert(called, "The block should have been called")
163
163
  end
164
164
 
165
165
  def test_service_check
166
166
  datagrams = @dogstatsd_client.capture { @dogstatsd_client.service_check('service', :ok) }
167
- assert_equal 1, datagrams.size
168
- assert_equal "_sc|service|0", datagrams.first.source
167
+ assert_equal(1, datagrams.size)
168
+ assert_equal("_sc|service|0", datagrams.first.source)
169
169
  end
170
170
 
171
171
  def test_event
172
172
  datagrams = @dogstatsd_client.capture { @dogstatsd_client.event('service', "event\ndescription") }
173
- assert_equal 1, datagrams.size
174
- assert_equal "_e{7,18}:service|event\\ndescription", datagrams.first.source
173
+ assert_equal(1, datagrams.size)
174
+ assert_equal("_e{7,18}:service|event\\ndescription", datagrams.first.source)
175
175
  end
176
176
 
177
177
  def test_no_prefix
@@ -181,9 +181,9 @@ class ClientTest < Minitest::Test
181
181
  client.increment('bar', no_prefix: true)
182
182
  end
183
183
 
184
- assert_equal 2, datagrams.size
185
- assert_equal "foo.bar", datagrams[0].name
186
- assert_equal "bar", datagrams[1].name
184
+ assert_equal(2, datagrams.size)
185
+ assert_equal("foo.bar", datagrams[0].name)
186
+ assert_equal("bar", datagrams[1].name)
187
187
  end
188
188
 
189
189
  def test_default_tags_normalization
@@ -192,9 +192,9 @@ class ClientTest < Minitest::Test
192
192
  client.increment('bar', tags: ['th|ird_#,tag'])
193
193
  end
194
194
 
195
- assert_includes datagrams.first.tags, 'first_tag:first_value'
196
- assert_includes datagrams.first.tags, 'second_tag:second_value'
197
- assert_includes datagrams.first.tags, 'third_#tag'
195
+ assert_includes(datagrams.first.tags, 'first_tag:first_value')
196
+ assert_includes(datagrams.first.tags, 'second_tag:second_value')
197
+ assert_includes(datagrams.first.tags, 'third_#tag')
198
198
  end
199
199
 
200
200
  def test_sampling
@@ -8,111 +8,111 @@ class DatagramBuilderTest < Minitest::Test
8
8
  end
9
9
 
10
10
  def test_normalize_name
11
- assert_equal 'foo', @datagram_builder.send(:normalize_name, 'foo')
12
- assert_equal 'fo_o', @datagram_builder.send(:normalize_name, 'fo|o')
13
- assert_equal 'fo_o', @datagram_builder.send(:normalize_name, 'fo@o')
14
- assert_equal 'fo_o', @datagram_builder.send(:normalize_name, 'fo:o')
11
+ assert_equal('foo', @datagram_builder.send(:normalize_name, 'foo'))
12
+ assert_equal('fo_o', @datagram_builder.send(:normalize_name, 'fo|o'))
13
+ assert_equal('fo_o', @datagram_builder.send(:normalize_name, 'fo@o'))
14
+ assert_equal('fo_o', @datagram_builder.send(:normalize_name, 'fo:o'))
15
15
  end
16
16
 
17
17
  def test_normalize_unsupported_tag_names
18
- assert_equal ['ign#ored'], @datagram_builder.send(:normalize_tags, ['ign#o|re,d'])
18
+ assert_equal(['ign#ored'], @datagram_builder.send(:normalize_tags, ['ign#o|re,d']))
19
19
  # Note: how this is interpreted by the backend is undefined.
20
20
  # We rely on the user to not do stuff like this if they don't want to be surprised.
21
21
  # We do not want to take the performance hit of normalizing this.
22
- assert_equal ['lol::class:omg::lol'], @datagram_builder.send(:normalize_tags, "lol::class" => "omg::lol")
22
+ assert_equal(['lol::class:omg::lol'], @datagram_builder.send(:normalize_tags, "lol::class" => "omg::lol"))
23
23
  end
24
24
 
25
25
  def test_normalize_tags_converts_hash_to_array
26
- assert_equal ['tag:value'], @datagram_builder.send(:normalize_tags, tag: 'value')
27
- assert_equal ['tag1:v1', 'tag2:v2'], @datagram_builder.send(:normalize_tags, tag1: 'v1', tag2: 'v2')
26
+ assert_equal(['tag:value'], @datagram_builder.send(:normalize_tags, tag: 'value'))
27
+ assert_equal(['tag1:v1', 'tag2:v2'], @datagram_builder.send(:normalize_tags, tag1: 'v1', tag2: 'v2'))
28
28
  end
29
29
 
30
30
  def test_c
31
31
  datagram = @datagram_builder.c('foo', 1, nil, nil)
32
- assert_equal "foo:1|c", datagram
32
+ assert_equal("foo:1|c", datagram)
33
33
 
34
34
  datagram = @datagram_builder.c('fo:o', 10, 0.1, nil)
35
- assert_equal "fo_o:10|c|@0.1", datagram
35
+ assert_equal("fo_o:10|c|@0.1", datagram)
36
36
  end
37
37
 
38
38
  def test_ms
39
39
  datagram = @datagram_builder.ms('foo', 1, nil, nil)
40
- assert_equal "foo:1|ms", datagram
40
+ assert_equal("foo:1|ms", datagram)
41
41
 
42
42
  datagram = @datagram_builder.ms('fo:o', 10, 0.1, nil)
43
- assert_equal "fo_o:10|ms|@0.1", datagram
43
+ assert_equal("fo_o:10|ms|@0.1", datagram)
44
44
  end
45
45
 
46
46
  def test_g
47
47
  datagram = @datagram_builder.g('foo', 1, nil, nil)
48
- assert_equal "foo:1|g", datagram
48
+ assert_equal("foo:1|g", datagram)
49
49
 
50
50
  datagram = @datagram_builder.g('fo|o', 10, 0.01, nil)
51
- assert_equal "fo_o:10|g|@0.01", datagram
51
+ assert_equal("fo_o:10|g|@0.01", datagram)
52
52
  end
53
53
 
54
54
  def test_s
55
55
  datagram = @datagram_builder.s('foo', 1, nil, nil)
56
- assert_equal "foo:1|s", datagram
56
+ assert_equal("foo:1|s", datagram)
57
57
 
58
58
  datagram = @datagram_builder.s('fo@o', 10, 0.01, nil)
59
- assert_equal "fo_o:10|s|@0.01", datagram
59
+ assert_equal("fo_o:10|s|@0.01", datagram)
60
60
  end
61
61
 
62
62
  def test_h
63
63
  datagram = @datagram_builder.h('foo', 1, nil, nil)
64
- assert_equal "foo:1|h", datagram
64
+ assert_equal("foo:1|h", datagram)
65
65
 
66
66
  datagram = @datagram_builder.h('fo@o', 10, 0.01, nil)
67
- assert_equal "fo_o:10|h|@0.01", datagram
67
+ assert_equal("fo_o:10|h|@0.01", datagram)
68
68
  end
69
69
 
70
70
  def test_d
71
71
  datagram = @datagram_builder.d('foo', 1, nil, nil)
72
- assert_equal "foo:1|d", datagram
72
+ assert_equal("foo:1|d", datagram)
73
73
 
74
74
  datagram = @datagram_builder.d('fo@o', 10, 0.01, nil)
75
- assert_equal "fo_o:10|d|@0.01", datagram
75
+ assert_equal("fo_o:10|d|@0.01", datagram)
76
76
  end
77
77
 
78
78
  def test_tags
79
79
  datagram = @datagram_builder.d('foo', 10, nil, ['foo', 'bar'])
80
- assert_equal "foo:10|d|#foo,bar", datagram
80
+ assert_equal("foo:10|d|#foo,bar", datagram)
81
81
 
82
82
  datagram = @datagram_builder.d('foo', 10, 0.1, ['foo:bar'])
83
- assert_equal "foo:10|d|@0.1|#foo:bar", datagram
83
+ assert_equal("foo:10|d|@0.1|#foo:bar", datagram)
84
84
 
85
85
  datagram = @datagram_builder.d('foo', 10, 1, foo: 'bar', baz: 'quc')
86
- assert_equal "foo:10|d|#foo:bar,baz:quc", datagram
86
+ assert_equal("foo:10|d|#foo:bar,baz:quc", datagram)
87
87
  end
88
88
 
89
89
  def test_prefix
90
90
  datagram_builder = StatsD::Instrument::DatagramBuilder.new(prefix: 'foo')
91
91
  datagram = datagram_builder.c('bar', 1, nil, nil)
92
- assert_equal 'foo.bar:1|c', datagram
92
+ assert_equal('foo.bar:1|c', datagram)
93
93
 
94
94
  # The prefix should also be normalized
95
95
  datagram_builder = StatsD::Instrument::DatagramBuilder.new(prefix: 'foo|bar')
96
96
  datagram = datagram_builder.c('baz', 1, nil, nil)
97
- assert_equal 'foo_bar.baz:1|c', datagram
97
+ assert_equal('foo_bar.baz:1|c', datagram)
98
98
  end
99
99
 
100
100
  def test_default_tags
101
101
  datagram_builder = StatsD::Instrument::DatagramBuilder.new(default_tags: ['foo'])
102
102
  datagram = datagram_builder.c('bar', 1, nil, nil)
103
- assert_equal 'bar:1|c|#foo', datagram
103
+ assert_equal('bar:1|c|#foo', datagram)
104
104
 
105
105
  datagram = datagram_builder.c('bar', 1, nil, a: 'b')
106
- assert_equal 'bar:1|c|#a:b,foo', datagram
106
+ assert_equal('bar:1|c|#a:b,foo', datagram)
107
107
 
108
108
  # We do not filter out duplicates, because detecting dupes is too time consuming.
109
109
  # We let the server deal with the situation
110
110
  datagram = datagram_builder.c('bar', 1, nil, ['foo'])
111
- assert_equal 'bar:1|c|#foo,foo', datagram
111
+ assert_equal('bar:1|c|#foo,foo', datagram)
112
112
 
113
113
  # Default tags are also normalized
114
114
  datagram_builder = StatsD::Instrument::DatagramBuilder.new(default_tags: ['f,o|o'])
115
115
  datagram = datagram_builder.c('bar', 1, nil, nil)
116
- assert_equal 'bar:1|c|#foo', datagram
116
+ assert_equal('bar:1|c|#foo', datagram)
117
117
  end
118
118
  end