Sha256: 860a8f80fab6b171aef6469f9327441e5073ccf91325415628f8eddaa0c81c2f

Contents?: true

Size: 921 Bytes

Versions: 1

Compression:

Stored size: 921 Bytes

Contents

require 'spec_helper'

describe ServState::Rotator do
  let(:size) { 10 }
  let(:rotator) { described_class.new(size) }

  it 'should create array with right size' do
    expect(rotator.data.size).to eq(size)
  end

  it 'should create right array structure' do
    expect(rotator.data.first).to eq([0, 0, 0, 0])
  end

  context 'when add value' do
    let(:params) { { cpu: 1, ram: 2, down: 3, up: 4} }

    it 'should save array size' do
      rotator.append(params)
      expect(rotator.data.size).to eq(size)
    end

    it 'should add value' do
      rotator.append(params)
      expect(rotator.data.last).to eq([1, 2, 3, 4])
      expect(rotator.data.first).to eq([0, 0, 0, 0])
    end

    it 'should rotate values' do
      9.times { rotator.append(params) }
      expect(rotator.data.first).to eq([0, 0, 0, 0])
      rotator.append(params)
      expect(rotator.data.first).to eq([1, 2 ,3 ,4])
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ServState-0.1.3 spec/unit/rotator_spec.rb