Sha256: 059005f49db2f08035f1758cc6ab5b61b2bda583ab72171853b5d491ae23a8b1

Contents?: true

Size: 1.55 KB

Versions: 39

Compression:

Stored size: 1.55 KB

Contents

require 'test_helper'

module Vedeu

  describe Options do

    let(:described) { Vedeu::Options }
    let(:instance)  { described.new(options) }
    let(:options)   {
      {}
    }

    describe '#initialize' do
      it { instance.must_be_instance_of(described) }
      it { instance.instance_variable_get('@_options').must_equal(options) }
    end

    describe '#_build' do
      subject { instance._build }

      it { subject.must_be_instance_of(described) }

      context 'with no options' do
        it 'defines no methods' do
          subject
          instance._defined.must_equal([])
        end
      end

      context 'with a predicate option' do
        let(:options) {
          {
            predicate: false
          }
        }

        it 'defines the method and the predicate as an alias to that method' do
          subject
          instance.must_respond_to(:predicate)
          instance.predicate.must_equal(false)

          instance.must_respond_to(:predicate?)
          instance.predicate?.must_equal(false)

          instance._defined.must_equal([:predicate, :predicate?])
        end
      end

      context 'with a normal option' do
        let(:options) {
          {
            some_option: 'some_value'
          }
        }

        it 'defines the method' do
          subject
          instance.must_respond_to(:some_option)
          instance.some_option.must_equal('some_value')

          instance.wont_respond_to(:some_option?)

          instance._defined.must_equal([:some_option])
        end
      end
    end

  end # Option

end # Vedeu

Version data entries

39 entries across 39 versions & 1 rubygems

Version Path
vedeu-0.4.53 test/lib/vedeu/support/options_test.rb
vedeu-0.4.52 test/lib/vedeu/support/options_test.rb
vedeu-0.4.51 test/lib/vedeu/support/options_test.rb
vedeu-0.4.50 test/lib/vedeu/support/options_test.rb
vedeu-0.4.49 test/lib/vedeu/support/options_test.rb
vedeu-0.4.48 test/lib/vedeu/support/options_test.rb
vedeu-0.4.47 test/lib/vedeu/support/options_test.rb
vedeu-0.4.46 test/lib/vedeu/support/options_test.rb
vedeu-0.4.45 test/lib/vedeu/support/options_test.rb
vedeu-0.4.44 test/lib/vedeu/support/options_test.rb
vedeu-0.4.43 test/lib/vedeu/support/options_test.rb
vedeu-0.4.42 test/lib/vedeu/support/options_test.rb
vedeu-0.4.41 test/lib/vedeu/support/options_test.rb
vedeu-0.4.40 test/lib/vedeu/support/options_test.rb
vedeu-0.4.39 test/lib/vedeu/support/options_test.rb
vedeu-0.4.38 test/lib/vedeu/support/options_test.rb
vedeu-0.4.37 test/lib/vedeu/support/options_test.rb
vedeu-0.4.36 test/lib/vedeu/support/options_test.rb
vedeu-0.4.35 test/lib/vedeu/support/options_test.rb
vedeu-0.4.34 test/lib/vedeu/support/options_test.rb