Sha256: fde424b0d354b35d4d81809358a77cc9e2563403ef2f731513cc83e7a2f47750

Contents?: true

Size: 811 Bytes

Versions: 3

Compression:

Stored size: 811 Bytes

Contents

require 'minitest_helper'

describe Rasti::Types::TypedEnum do

  let(:enum) { Rasti::Types::TypedEnum[Colors] }

  ['BLUE', 'GREEN', 'RED'].each do |value|
    it "#{value.inspect} -> #{value}" do
      enum.cast(value).must_equal Colors[value]
    end
  end

  ['text', :symbol, true, false, 100, Time.now, [1,2], {a: 1, b: 2}, Object.new, nil].each do |value|
    it "#{value.inspect} -> CastError" do
      error = proc { enum.cast(value) }.must_raise Rasti::Types::CastError
      error.message.must_equal "Invalid cast: #{as_string(value)} -> Rasti::Types::TypedEnum[Colors]"
    end
  end

  it 'Values' do
    enum.blue.must_equal Colors::Blue.new
    enum.green.must_equal Colors::Green.new
    enum.red.must_equal Colors::Red.new
    enum.values.must_equal [enum.blue, enum.green, enum.red]
  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
rasti-types-1.1.2 spec/typed_enum_spec.rb
rasti-types-1.1.1 spec/typed_enum_spec.rb
rasti-types-1.1.0 spec/typed_enum_spec.rb