Sha256: 3525f7275d2c162c043d81ea53a191a47319cf32cef182f703302964ebf4a2e0

Contents?: true

Size: 981 Bytes

Versions: 5

Compression:

Stored size: 981 Bytes

Contents

RSpec.describe Fear::None do
  include Fear::Option::Mixin

  it_behaves_like Fear::RightBiased::Left do
    let(:left) { None() }
  end

  subject(:none) { None() }

  describe '#get' do
    subject { proc { none.get } }
    it { is_expected.to raise_error(Fear::NoSuchElementError) }
  end

  describe '#or_nil' do
    subject { none.or_nil }
    it { is_expected.to eq(nil) }
  end

  describe '#or_else' do
    subject { none.or_else { alternative } }
    let(:alternative) { Some(42) }

    it 'returns alternative' do
      is_expected.to eq(alternative)
    end
  end

  describe '#empty?' do
    subject { none.empty? }
    it { is_expected.to eq(true) }
  end

  describe '#select' do
    subject { none.select { |value| value > 42 } }

    it 'always return None' do
      is_expected.to eq(None())
    end
  end

  describe '#reject' do
    subject { none.reject { |value| value > 42 } }

    it 'always return None' do
      is_expected.to eq(None())
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
fear-0.10.0 spec/fear/none_spec.rb
fear-0.9.0 spec/fear/none_spec.rb
fear-0.8.0 spec/fear/none_spec.rb
fear-0.7.0 spec/fear/none_spec.rb
fear-0.6.0 spec/fear/none_spec.rb