Sha256: 25e0837d336f3b602af45d412c2557eba6c7e6ecc3d299899b20bd78a1b0cb4b
Contents?: true
Size: 1.11 KB
Versions: 1
Compression:
Stored size: 1.11 KB
Contents
require 'spec_helper' module Qrb describe TypeFactory, "DSL#adt" do let(:factory){ TypeFactory.new } let(:contracts){ { rgb: [intType, Color.method(:rgb), Qrb::IDENTITY ], hex: [floatType, Color.method(:hex), Qrb::IDENTITY ]} } shared_examples_for "The <Color> type" do it{ should be_a(AdType) } it 'should have the correct ruby type' do subject.ruby_type.should be(Color) end it 'should have the two contracts' do subject.contracts.keys.should eq([:rgb, :hex]) end end before do subject end context 'when used with the standard signature' do subject{ factory.adt(Color, contracts) } it_should_behave_like "The <Color> type" it 'should have the correct name' do subject.name.should eq("Color") end end context 'when used with a name' do subject{ factory.adt(Color, contracts, "MyColor") } it_should_behave_like "The <Color> type" it 'should have the correct name' do subject.name.should eq("MyColor") end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
qrb-0.3.0 | spec/unit/type_factory/dsl/test_adt.rb |