Sha256: 98abfbdda3c77281737e5929cd6c5dd62ac27279fcf87f96722e1775011767e6

Contents?: true

Size: 1.76 KB

Versions: 1

Compression:

Stored size: 1.76 KB

Contents

require 'test_helper'

class EpochCounterTest < Minitest::Test

  def test_with_two_valid_pollcycles
    @counter = NewRelic::Processor::EpochCounter.new
    firstProcess = @counter.process(5)
    modify_counter_clock(@counter, 1)
    secondProcess = @counter.process(6)

    assert_nil(firstProcess)
    assert(secondProcess > 0)
  end

  def test_with_null_second_pollcycle
    @counter = NewRelic::Processor::EpochCounter.new
    firstProcess = @counter.process(5)
    modify_counter_clock(@counter, 1)
    secondProcess = @counter.process(nil)
    modify_counter_clock(@counter, 1)
    thirdProcess = @counter.process(6)
    modify_counter_clock(@counter, 1)
    fourthProcess = @counter.process(7)

    assert_nil(firstProcess)
    assert_nil(secondProcess)
    assert_nil(thirdProcess)
    assert(fourthProcess > 0)
  end

  def test_with_null_first_pollcycle
    @counter = NewRelic::Processor::EpochCounter.new
    firstProcess = @counter.process(nil)
    modify_counter_clock(@counter, 1)
    secondProcess = @counter.process(5)
    modify_counter_clock(@counter, 1)
    thirdProcess = @counter.process(6)

    assert_nil(firstProcess)
    assert_nil(secondProcess)
    assert(thirdProcess > 0)
  end

  def test_with_string_values
    @counter = NewRelic::Processor::EpochCounter.new
    firstProcess = @counter.process("5")
    modify_counter_clock(@counter, 1)
    secondProcess = @counter.process("6")
    modify_counter_clock(@counter, 1)
    thirdProcess = @counter.process(7)

    assert_nil(firstProcess)
    assert(secondProcess > 0)
    assert(thirdProcess > 0)
  end

  def modify_counter_clock(counter, seconds)
    time = counter.instance_variable_get(:@last_time)
    counter.instance_variable_set(:@last_time, counter.instance_variable_get(:@last_time) - seconds)
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
newrelic_plugin-1.3.1 test/newrelic_plugin/epoch_counter_processor_test.rb