Sha256: 7df2fe996ec589596688dbd65c67c3ecedbd81edcd4bb6b7e960ba3d7604e8c1

Contents?: true

Size: 1.93 KB

Versions: 16

Compression:

Stored size: 1.93 KB

Contents

# frozen_string_literal: true

require 'test_helper'

module Vedeu

  module Cursors

    describe Move do

      let(:described) { Vedeu::Cursors::Move }
      let(:instance)  { described.new(_name, direction, offset) }
      let(:_name)     {}
      let(:direction) {}
      let(:offset)    { 1 }
      let(:visible)   { true }

      describe '#initialize' do
        it { instance.must_be_instance_of(described) }
        it { instance.instance_variable_get('@name').must_equal(_name) }
        it do
          instance.instance_variable_get('@direction').must_equal(direction)
        end
        it { instance.instance_variable_get('@offset').must_equal(offset) }
      end

      describe '.move' do
        let(:cursor) {
          Vedeu::Cursors::Cursor.new(name: _name, visible: visible)
        }

        before do
          Vedeu.stubs(:trigger).with(:_refresh_cursor_, _name)
        end

        subject { described.move(_name, direction, offset) }

        context 'when a name is given' do
          let(:_name) { :vedeu_cursors_move }

          before do
            Vedeu.cursors.stubs(:by_name).returns(cursor)
          end

          context 'when the cursor is visible' do
            context 'when a valid direction is given' do
              let(:direction) { :move_right }

              it { subject.must_be_instance_of(Vedeu::Cursors::Cursor) }
            end

            context 'when an invalid direction is given' do
              let(:direction) { :move_left }

              it { subject.must_equal(nil) }
            end
          end

          context 'when the cursor is not visible' do
            let(:visible) { false }

            it { subject.must_equal(nil) }
          end
        end

        context 'when a name is not given' do
          it { subject.must_equal(nil) }
        end
      end

      describe '#move' do
        it { instance.must_respond_to(:move) }
      end

    end # Move

  end # Cursors

end # Vedeu

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
vedeu-0.8.32 test/lib/vedeu/cursors/move_test.rb
vedeu-0.8.31 test/lib/vedeu/cursors/move_test.rb
vedeu-0.8.30 test/lib/vedeu/cursors/move_test.rb
vedeu-0.8.29 test/lib/vedeu/cursors/move_test.rb
vedeu-0.8.28 test/lib/vedeu/cursors/move_test.rb
vedeu-0.8.27 test/lib/vedeu/cursors/move_test.rb
vedeu-0.8.26 test/lib/vedeu/cursors/move_test.rb
vedeu-0.8.25 test/lib/vedeu/cursors/move_test.rb
vedeu-0.8.24 test/lib/vedeu/cursors/move_test.rb
vedeu-0.8.23 test/lib/vedeu/cursors/move_test.rb
vedeu-0.8.22 test/lib/vedeu/cursors/move_test.rb
vedeu-0.8.21 test/lib/vedeu/cursors/move_test.rb
vedeu-0.8.20 test/lib/vedeu/cursors/move_test.rb
vedeu-0.8.19 test/lib/vedeu/cursors/move_test.rb
vedeu-0.8.18 test/lib/vedeu/cursors/move_test.rb
vedeu-0.8.17 test/lib/vedeu/cursors/move_test.rb