Module: Resilient::Test::MetricsStorageInterface

Defined in:
lib/resilient/test/metrics_storage_interface.rb

Instance Method Summary collapse

Instance Method Details

#test_incrementObject



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/resilient/test/metrics_storage_interface.rb', line 16

def test_increment
  buckets = [
    Resilient::CircuitBreaker::Metrics::Bucket.new(1, 5),
    Resilient::CircuitBreaker::Metrics::Bucket.new(6, 10),
  ]
  keys = [
    :successes,
    :failures,
  ]
  @object.increment(buckets, keys)
  assert_equal 1, @object.source[buckets[0]][:successes]
  assert_equal 1, @object.source[buckets[0]][:failures]
  assert_equal 1, @object.source[buckets[1]][:successes]
  assert_equal 1, @object.source[buckets[1]][:failures]
end

#test_pruneObject



72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# File 'lib/resilient/test/metrics_storage_interface.rb', line 72

def test_prune
  buckets = [
    Resilient::CircuitBreaker::Metrics::Bucket.new(1, 5),
    Resilient::CircuitBreaker::Metrics::Bucket.new(6, 10),
  ]
  keys = [
    :successes,
    :failures,
  ]
  @object.increment(buckets, keys)
  @object.increment(buckets, keys)
  @object.increment(buckets[0], keys)
  @object.prune(buckets, keys)
  result = @object.sum(buckets, keys)
  assert_equal 0, result[:successes]
  assert_equal 0, result[:failures]
end

#test_responds_to_incrementObject



4
5
6
# File 'lib/resilient/test/metrics_storage_interface.rb', line 4

def test_responds_to_increment
  assert_respond_to @object, :increment
end

#test_responds_to_pruneObject



12
13
14
# File 'lib/resilient/test/metrics_storage_interface.rb', line 12

def test_responds_to_prune
  assert_respond_to @object, :prune
end

#test_responds_to_sumObject



8
9
10
# File 'lib/resilient/test/metrics_storage_interface.rb', line 8

def test_responds_to_sum
  assert_respond_to @object, :sum
end

#test_sum_defaultsObject



32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/resilient/test/metrics_storage_interface.rb', line 32

def test_sum_defaults
  buckets = [
    Resilient::CircuitBreaker::Metrics::Bucket.new(1, 5),
    Resilient::CircuitBreaker::Metrics::Bucket.new(6, 10),
  ]
  keys = [
    :successes,
    :failures,
  ]
  result = @object.sum(buckets, keys)
  assert_equal 0, result[:successes]
  assert_equal 0, result[:failures]
end

#test_sum_with_valuesObject



46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/resilient/test/metrics_storage_interface.rb', line 46

def test_sum_with_values
  buckets = [
    Resilient::CircuitBreaker::Metrics::Bucket.new(1, 5),
    Resilient::CircuitBreaker::Metrics::Bucket.new(6, 10),
  ]
  keys = [
    :successes,
    :failures,
  ]
  @object.increment(buckets, keys)
  @object.increment(buckets, keys)
  @object.increment(buckets[0], keys)

  assert_equal 5, @object.sum(buckets, [:successes])[:successes]
  assert_equal 5, @object.sum(buckets, [:failures])[:failures]
  assert_equal 10, @object.sum(buckets, keys).values.inject(0) { |sum, value| sum += value }

  assert_equal 3, @object.sum(buckets[0], [:successes])[:successes]
  assert_equal 3, @object.sum(buckets[0], [:failures])[:failures]
  assert_equal 6, @object.sum(buckets[0], keys).values.inject(0) { |sum, value| sum += value }

  assert_equal 2, @object.sum(buckets[1], [:successes])[:successes]
  assert_equal 2, @object.sum(buckets[1], [:failures])[:failures]
  assert_equal 4, @object.sum(buckets[1], keys).values.inject(0) { |sum, value| sum += value }
end