Sha256: 8e932f10bd5b552ae73a513ea8cb6bd5385877377bcc069bcf5daf813753ead0

Contents?: true

Size: 1.96 KB

Versions: 3

Compression:

Stored size: 1.96 KB

Contents

require 'spec_helper'

describe Rake::Builder::Presenters::MakefileAm::BuilderPresenter do
  context '.new' do
    it 'takes one parameter' do
      expect {
        Rake::Builder::Presenters::MakefileAm::BuilderPresenter.new
      }.to raise_error(ArgumentError, 'wrong number of arguments (0 for 1)')
    end
  end

  context '#to_s' do
    let(:builder) do
      stub(
        'Rake::Builder',
        :is_library?               => false,
        :label                     => 'fubar',
        :source_paths              => ['path/to/1', 'path/to/2'],
        :compiler_flags            => '-D FOO -D BAR',
        :library_dependencies_list => '-lfoo -lbar'
      )
    end
    let(:library) do
      builder.stub(:is_library? => true)
      builder.stub(:library_dependencies_list => [])
      builder
    end
    let(:binary) do
      builder.stub(:is_library? => false)
      builder
    end

    subject { Rake::Builder::Presenters::MakefileAm::BuilderPresenter.new(builder) }

    it 'lists sources' do
      sources_match = %r(fubar_SOURCES\s+=\s+path/to/1 path/to/2)
      expect(subject.to_s).to match(sources_match)
    end

    it 'shows cpp flags' do
      expect(subject.to_s).to match(/fubar_CPPFLAGS\s+=\s+-D FOO -D BAR/)
    end

    it 'ends with a blank line'

    context 'library builder' do
      subject { Rake::Builder::Presenters::MakefileAm::BuilderPresenter.new(library) }

      it "doesn't show ld flags" do
        expect(subject.to_s).to_not include('fubar_LDFLAGS')
      end

      it "doesn't list library dependencies" do
        expect(subject.to_s).to_not include('fubar_LDADD')
      end
    end

    context 'executable builder' do
      subject { Rake::Builder::Presenters::MakefileAm::BuilderPresenter.new(binary) }

      it 'shows ld flags' do
        expect(subject.to_s).to match(%r(fubar_LDFLAGS\s+=\s+-L))
      end

      it "lists library dependencies" do
        expect(subject.to_s).to match(%r(fubar_LDADD\s+=\s+-lfoo -lbar))
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
rake-builder-0.7.0 spec/unit/rake/builder/presenters/makefile_am/builder_presenter_spec.rb
rake-builder-0.0.19 spec/unit/rake/builder/presenters/makefile_am/builder_presenter_spec.rb
rake-builder-0.0.18 spec/unit/rake/builder/presenters/makefile_am/builder_presenter_spec.rb