Sha256: 1a0261c2b8255fdbcabe8474d9618e8c015758ed0e52f826012714eaac749618

Contents?: true

Size: 810 Bytes

Versions: 4

Compression:

Stored size: 810 Bytes

Contents

require 'spec_helper'
module Alf
  module Engine
    describe TypeSafe do

      let(:heading){ Heading.new(name: String, status: Fixnum) }
      let(:cog){ TypeSafe.new(tuples, TypeCheck.new(heading, false)) }

      context 'when all valid tuples' do
        let(:tuples){
          [ {name: "Smith", status: 20}, {name: "Jones"} ]
        }

        it 'simply let the tuples pass' do
          cog.to_a.should eq(tuples)
        end
      end

      context 'when at least one invalid tuple' do
        let(:tuples){
          [ {name: "Smith", status: 20}, {name: "Jones", status: "40"} ]
        }

        it 'raises a TypeCheckError' do
          lambda{
            cog.to_a
          }.should raise_error(TypeCheckError, /Jones/)
        end
      end

    end
  end # module Engine
end # module Alf

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
alf-core-0.15.0 spec/unit/alf-engine/test_type_safe.rb
alf-core-0.14.0 spec/unit/alf-engine/test_type_safe.rb
alf-core-0.13.1 spec/unit/alf-engine/test_type_safe.rb
alf-core-0.13.0 spec/unit/alf-engine/test_type_safe.rb