Sha256: fdcb8ebdbe1290a6cf3281c2d03edcee4afedc245f183636f9df6fe8629385e0

Contents?: true

Size: 970 Bytes

Versions: 2

Compression:

Stored size: 970 Bytes

Contents

# encoding: UTF-8

describe Central::Devtools::Flay::Scale, '#measure' do
  subject(:measure) { instance.measure }

  let(:minimum_mass) { 0 }
  let(:files) { [instance_double(File)] }
  let(:flay_masses) { { 0 => 5, 1 => 10 } }

  let(:instance) do
    described_class.new(minimum_mass: minimum_mass, files: files)
  end

  let(:flay_hashes) do
    {
      0 => instance_double(Array, size: 3),
      1 => instance_double(Array, size: 11)
    }
  end

  let(:flay) do
    instance_double(
      ::Flay,
      analyze: nil,
      masses: flay_masses,
      hashes: flay_hashes
    )
  end

  before do
    allow(::Flay).to receive(:new).with(mass: minimum_mass).and_return(flay)
    allow(flay).to receive(:process).with(*files)
  end

  it { should eql([Rational(5, 3), Rational(10, 11)]) }

  context 'when minimum mass is not 0' do
    let(:minimum_mass) { 1 }

    specify do
      measure
      expect(::Flay).to have_received(:new).with(mass: 1)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
central-devtools-0.8.4 spec/unit/central/devtools/flay/scale/measure_spec.rb
central-devtools-0.8.3 spec/unit/central/devtools/flay/scale/measure_spec.rb