Sha256: 988b436458e4b89746a251721c1c4082345ed9db41ed0bc768971e6abcba8b70

Contents?: true

Size: 1.31 KB

Versions: 3

Compression:

Stored size: 1.31 KB

Contents

require 'spec_helper'
module Qrb
  describe SetType, 'dress' do

    let(:type){ SetType.new(byte) }

    subject{ type.dress(arg) }

    context 'with an empty array' do
      let(:arg){ [] }

      it{ should eq([].to_set) }
    end

    context 'with a valid array' do
      let(:arg){ [12, 16] }

      it{ should eq([12, 16].to_set) }
    end

    context 'with not a enumerable' do
      let(:arg){ "foo" }

      it 'should raise an error' do
        ->{
          subject
        }.should raise_error("Invalid value `foo` for {Byte}")
      end
    end

    context 'with an array with non bytes' do
      let(:arg){ [2, 4, -12] }

      subject{
        type.dress(arg) rescue $!
      }

      it 'should raise an error' do
        subject.should be_a(TypeError)
        subject.message.should eq("Invalid value `-12` for Byte")
      end

      it 'should have correct location' do
        subject.location.should eq("2")
      end
    end

    context 'with an array with duplicates' do
      let(:arg){ [2, 4, 2] }

      subject{
        type.dress(arg) rescue $!
      }

      it 'should raise an error' do
        subject.should be_a(TypeError)
        subject.message.should eq("Duplicate value `2`")
      end

      it 'should have correct location' do
        subject.location.should eq("2")
      end
    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
qrb-0.3.0 spec/unit/type/set_type/test_dress.rb
qrb-0.2.0 spec/unit/type/set_type/test_dress.rb
qrb-0.1.0 spec/unit/type/set_type/test_dress.rb