Sha256: ffb6e7e1a5366501122c392481b0d6e2e4f3c82c9e53717c089a69e9b09eba7c

Contents?: true

Size: 1.76 KB

Versions: 13

Compression:

Stored size: 1.76 KB

Contents

require File.join(File.dirname(__FILE__), '..', 'spec_helper.rb')

describe Attributor::Boolean do

  subject(:type) { Attributor::Boolean }

  context '.valid_type?' do

    context 'for incoming Boolean values' do

      [false, true].each do |value|

        it "returns true for #{value.inspect}" do
          type.valid_type?(value).should be_true
        end

      end

    end

    context 'for incoming non-Boolean values' do

      ['false', 2, 1.0, Class, Object.new].each do |value|

        it "returns false for #{value.inspect}" do
          type.valid_type?(value).should be_false
        end

      end

    end

  end

  context '.example' do
    it "should return a valid Boolean" do
      [true, false].should include type.example
    end
  end

  context '.load' do

    context 'for incoming Boolean false values' do

      [false, 'false', 'FALSE', '0', 0, 'f', 'F'].each do |value|

        it "returns false for #{value.inspect}" do
          type.load(value).should be(false)
        end

      end

    end

    context 'for incoming Boolean false values' do

      [true, 'true', 'TRUE', '1', 1, 't', 'T'].each do |value|

        it "returns true for #{value.inspect}" do
          type.load(value).should be(true)
        end

      end

    end

    it 'returns nil for nil' do
      type.load(nil).should be(nil)
    end

    context 'that are not valid Booleans' do
      let(:context){ ['root','subattr'] }
      ['string', 2, 1.0, Class, Object.new].each do |value|

        it "raises Attributor::CoercionError for #{value.inspect}" do
          expect {
            type.load(value,context)
          }.to raise_error(Attributor::CoercionError, /Error coercing from .+ to Attributor::Boolean.* #{context.join('.')}/)
        end

      end

    end

  end

end


Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
attributor-5.0.1 spec/types/boolean_spec.rb
attributor-5.0 spec/types/boolean_spec.rb
attributor-4.2.0 spec/types/boolean_spec.rb
attributor-4.1.0 spec/types/boolean_spec.rb
attributor-4.0.1 spec/types/boolean_spec.rb
attributor-4.0.0 spec/types/boolean_spec.rb
attributor-3.0.1 spec/types/boolean_spec.rb
attributor-3.0 spec/types/boolean_spec.rb
attributor-2.6.1 spec/types/boolean_spec.rb
attributor-2.6.0 spec/types/boolean_spec.rb
attributor-2.5.0 spec/types/boolean_spec.rb
attributor-2.4.0 spec/types/boolean_spec.rb
attributor-2.3.0 spec/types/boolean_spec.rb