Sha256: 5674ad35c3ff8ecca679c1b23ea0354f1bac54286773c08280d986dcddcd36b9

Contents?: true

Size: 1.41 KB

Versions: 1

Compression:

Stored size: 1.41 KB

Contents

require_relative '../../../test_helper'

module Vedeu
  describe Interfaces do
    let(:described_class)    { Interfaces }
    let(:instance) { described_class.new }
    let(:block)    {}

    it { instance.must_be_instance_of(Interfaces) }

    describe '.default' do
      subject { described_class.default }

      it { subject.must_be_instance_of(Interfaces) }

      it 'adds the dummy interface to the interface list' do
        subject.show.wont_be_empty
      end
    end

    describe '.define' do
      subject { described_class.define }

      it { subject.must_be_instance_of(Interfaces) }
    end

    describe '#add' do
      let(:interface_name)  {}
      let(:klass) { Class }
      let(:options)         { {} }

      subject { instance.add(interface_name, klass, options) }

      it { subject.must_be_instance_of(Hash) }

      it { subject.wont_be_empty }

      context 'when the interface class does not exist' do
        before { Object.stubs(:const_defined?).returns(false) }

        it { proc { subject }.must_raise(UndefinedInterface) }
      end
    end

    describe '#show' do
      subject { instance.show }

      it { subject.must_be_instance_of(Hash) }
    end

    describe '#initial' do
      subject { instance.initial }

      it { subject.must_be_instance_of(Array) }
    end

    describe '#main' do
      subject { instance.main }

      it { subject.must_be_instance_of(Array) }
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
vedeu-0.0.4 test/lib/vedeu/interface/interfaces_test.rb