Sha256: 46bb27e1d8582bf51bdbd92736860925d45787c15b7ffe4cc3154afba9cdc0e8

Contents?: true

Size: 1.1 KB

Versions: 1

Compression:

Stored size: 1.1 KB

Contents

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

module Vedeu
  describe Interface do
    let(:described_class)    { Interface }
    let(:described_instance) { described_class.new(options) }
    let(:options)            { {} }

    it { described_instance.must_be_instance_of(Interface) }

    describe '#initial_state' do
      let(:subject) { described_instance.initial_state }

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

    describe '#input' do
      let(:subject) { described_instance.input }

      before do
        Terminal.stubs(:input).returns('stop')
        Commands.stubs(:execute)
      end

      it { subject.must_be_instance_of(NilClass) }
    end

    describe '#output' do
      let(:subject) { described_instance.output }
      let(:command) { mock }

      before { Compositor.stubs(:arrange).returns([]) }

      it 'sends the output of the command to the compositor' do
        subject.must_be_instance_of(Array)
      end
    end

    describe '#geometry' do
      let(:subject) { described_instance.geometry }

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

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
vedeu-0.0.10 test/lib/vedeu/interface/interface_test.rb