Sha256: 8f0417916a6f9049e833a4955b07a7ffe69de5a0e92b19a2620c3ff090aaf44a

Contents?: true

Size: 1.13 KB

Versions: 1

Compression:

Stored size: 1.13 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('some input')
        Commands.stubs(:execute).returns('some output')
      end

      it { subject.must_be_instance_of(String) }
    end

    describe '#output' do
      let(:subject) { described_instance.output(command) }
      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.9 test/lib/vedeu/interface/interface_test.rb