Sha256: e568d10ebf48c07fb076675d44791797aa618075b4c4a6e779d5eb3b4d18e179

Contents?: true

Size: 844 Bytes

Versions: 1

Compression:

Stored size: 844 Bytes

Contents

# encoding: utf-8

require 'spec_helper'

describe TTY::Conversion do
  let(:new_class) { Class.new { include TTY::Conversion } }
  let(:object)    { new_class.new }
  let(:enumerable) { [] }

  subject { object.convert_to_array(enumerable) }

  context 'Array type' do
    it { is_expected.to eq(enumerable) }
  end

  context 'Hash type' do
    let(:enumerable) { {a: 1, b: 2} }

    it { is_expected.to include([:a, 1]) }

    it { is_expected.to include([:b, 2]) }
  end

  context 'responds to #to_ary' do
    let(:converted)  { [] }
    let(:enumerable) { double('Enumerable', :to_ary => converted) }

    it { is_expected.to eq(converted) }
  end

  context 'does not respond to #to_ary' do
    let(:enumerable) { double('Enumerable') }

    it 'raises error' do
      expect { subject }.to raise_error(TTY::TypeError)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
tty-0.1.0 spec/tty/support/conversion_spec.rb