Sha256: b02b18c1226c7bb3625228154902ab7fe479cad2963a4b98c52198a0b0c2184e

Contents?: true

Size: 1.64 KB

Versions: 1

Compression:

Stored size: 1.64 KB

Contents

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

module Vedeu
  describe Command do
    let(:described_class)    { Command }
    let(:described_instance) { described_class.new(attributes) }
    let(:subject)            { described_instance }
    let(:attributes)         {
      {
        name:      'dummy',
        entity:    DummyCommand,
        keyword:   "dummy",
        keypress:  "d",
        arguments: []
      }
    }

    it 'returns a Command instance' do
      subject.must_be_instance_of(Command)
    end

    it 'has a name attribute' do
      subject.name.must_be_instance_of(String)

      subject.name.must_equal('dummy')
    end

    it 'has an entity attribute' do
      subject.entity.must_be_instance_of(Class)

      subject.entity.must_equal(DummyCommand)
    end

    it 'has a keypress attribute' do
      subject.keypress.must_be_instance_of(String)

      subject.keypress.must_equal('d')
    end

    it 'has an keyword attribute' do
      subject.keyword.must_be_instance_of(String)

      subject.keyword.must_equal('dummy')
    end

    it 'has an arguments attribute' do
      subject.arguments.must_be_instance_of(Array)

      subject.arguments.must_equal([])
    end

    describe '#execute' do
      let(:subject) { described_instance.execute(args) }
      let(:args)    { [] }

      it 'returns a Symbol' do
        subject.must_be_instance_of(Symbol)
      end

      it 'returns the result of execution' do
        subject.must_equal(:dummy)
      end
    end

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

      it 'returns a proc' do
        subject.class.to_s.must_equal('Proc')
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
vedeu-0.0.25 test/lib/vedeu/repository/command_test.rb