Sha256: 3706b3d72854779d9db57b4cb6c5a5f846697757223bdebace6b7063daa9ecf5

Contents?: true

Size: 1.73 KB

Versions: 46

Compression:

Stored size: 1.73 KB

Contents

require 'test_helper'

module Vedeu

  module Input

    describe DSL do

      let(:described) { Vedeu::Input::DSL }
      let(:instance)  { described.new(model) }
      let(:model)     { Vedeu::Input::Keymap.new(name: '_test_') }

      describe '#key' do
        let(:value_or_values) { ['j', :down] }

        subject { instance.key(*value_or_values) { :some_action } }

        it { instance.must_respond_to(:key=) }

        context 'when a block was not given' do
          subject { instance.key(value_or_values) }

          it { proc { subject }.must_raise(Vedeu::Error::InvalidSyntax) }
        end

        context 'when a key was not given' do
          let(:value_or_values) {}

          it { proc { subject }.must_raise(Vedeu::Error::InvalidSyntax) }
        end

        context 'when an invalid key was given (nil)' do
          let(:value_or_values) { ['v', nil] }

          it { proc { subject }.must_raise(Vedeu::Error::InvalidSyntax) }
        end

        context 'when an invalid key was given (empty)' do
          let(:value_or_values) { ['v', ''] }

          it { proc { subject }.must_raise(Vedeu::Error::InvalidSyntax) }
        end

        context 'when the key is valid (not already defined)' do
          before { model.stubs(:add).returns(Vedeu::Input::Keymap) }

          it { subject.must_equal(['j', :down]) }
        end

        context 'when the key is not valid (already defined)' do
        end
      end

      describe '#name' do
        let(:_value) { 'gold' }

        subject { instance.name(_value) }

        it { instance.must_respond_to(:name=) }

        it 'defines the name of the keymap' do
          subject
          model.name.must_equal(_value)
        end
      end

    end # DSL

  end # Input

end # Vedeu

Version data entries

46 entries across 46 versions & 1 rubygems

Version Path
vedeu-0.7.4 test/lib/vedeu/input/dsl_test.rb
vedeu-0.7.3 test/lib/vedeu/input/dsl_test.rb
vedeu-0.7.2 test/lib/vedeu/input/dsl_test.rb
vedeu-0.7.1 test/lib/vedeu/input/dsl_test.rb
vedeu-0.7.0 test/lib/vedeu/input/dsl_test.rb
vedeu-0.6.71 test/lib/vedeu/input/dsl_test.rb
vedeu-0.6.70 test/lib/vedeu/input/dsl_test.rb
vedeu-0.6.69 test/lib/vedeu/input/dsl_test.rb
vedeu-0.6.68 test/lib/vedeu/input/dsl_test.rb
vedeu-0.6.67 test/lib/vedeu/input/dsl_test.rb
vedeu-0.6.66 test/lib/vedeu/input/dsl_test.rb
vedeu-0.6.65 test/lib/vedeu/input/dsl_test.rb
vedeu-0.6.64 test/lib/vedeu/input/dsl_test.rb
vedeu-0.6.63 test/lib/vedeu/input/dsl_test.rb
vedeu-0.6.62 test/lib/vedeu/input/dsl_test.rb
vedeu-0.6.61 test/lib/vedeu/input/dsl_test.rb
vedeu-0.6.60 test/lib/vedeu/input/dsl_test.rb
vedeu-0.6.59 test/lib/vedeu/input/dsl_test.rb
vedeu-0.6.58 test/lib/vedeu/input/dsl_test.rb
vedeu-0.6.57 test/lib/vedeu/input/dsl_test.rb