Sha256: 87b9770acbd501eae7f77942ced50aca0f6948669476f71da4f1c50ae21c50d7

Contents?: true

Size: 1.23 KB

Versions: 16

Compression:

Stored size: 1.23 KB

Contents

require 'spec_helper'

describe Acfs::Resource::Attributes::List do
  let(:type) { Acfs::Resource::Attributes::List.new }

  describe '#cast' do
    subject { -> { type.cast value } }

    context 'with nil' do
      let(:value) { nil }
      it { expect(subject.call).to eq nil }
    end

    context 'with blank string (I)' do
      let(:value) { '' }
      it { expect(subject.call).to eq Array.new }
    end

    context 'with blank string (II)' do
      let(:value) { "  \t" }
      it { expect(subject.call).to eq Array.new }
    end

    context 'with array' do
      let(:value) { %w(abc cde efg) }
      it { expect(subject.call).to eq value }
    end

    context 'with convertable object (I)' do
      let(:value) do
        Class.new do
          def to_ary
            [1, 2, 3]
          end
        end.new
      end

      it { expect(subject.call).to eq [1, 2, 3] }
    end

    context 'with convertable object (II)' do
      let(:value) do
        Class.new do
          def to_a
            [1, 2, 3]
          end
        end.new
      end

      it { expect(subject.call).to eq [1, 2, 3] }
    end

    context 'with non castable object' do
      let(:value) { Object.new }
      it { expect(subject.call).to eq [value] }
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
acfs-1.3.2 spec/acfs/resource/attributes/list_spec.rb
acfs-1.3.1 spec/acfs/resource/attributes/list_spec.rb
acfs-1.3.0 spec/acfs/resource/attributes/list_spec.rb
acfs-1.2.1 spec/acfs/resource/attributes/list_spec.rb
acfs-0.50.0 spec/acfs/resource/attributes/list_spec.rb
acfs-1.2.0 spec/acfs/resource/attributes/list_spec.rb
acfs-0.49.1 spec/acfs/resource/attributes/list_spec.rb
acfs-1.1.1 spec/acfs/resource/attributes/list_spec.rb
acfs-0.49.0 spec/acfs/resource/attributes/list_spec.rb
acfs-1.1.0 spec/acfs/resource/attributes/list_spec.rb
acfs-0.48.2 spec/acfs/resource/attributes/list_spec.rb
acfs-1.0.1 spec/acfs/resource/attributes/list_spec.rb
acfs-0.48.1 spec/acfs/resource/attributes/list_spec.rb
acfs-1.0.0 spec/acfs/resource/attributes/list_spec.rb
acfs-0.48.0 spec/acfs/resource/attributes/list_spec.rb
acfs-0.47.0 spec/acfs/resource/attributes/list_spec.rb