Sha256: c6addbee5345c2d3f3dc641ced631769e5396a1254d35cf3f04b2903dcc403ba

Contents?: true

Size: 1.84 KB

Versions: 28

Compression:

Stored size: 1.84 KB

Contents

require 'test_helper'

module Vedeu

  class VisibilityTestModel
    attr_accessor :visible
    alias_method :visible?, :visible

    def initialize(visible = true)
      @visible = visible
    end

    def store
      self
    end
  end

  describe Visibility do

    let(:described) { Vedeu::Visibility }
    let(:instance)  { described.new(model) }
    let(:model)     { VisibilityTestModel.new(visible) }
    let(:visible)   { true }

    describe '#initialize' do
      it { instance.must_be_instance_of(described) }
      it { instance.instance_variable_get('@model').must_equal(model) }
    end

    describe '.for_cursor' do
      let(:_name) {}

      subject { described.for_cursor(_name) }

      it { subject.must_be_instance_of(described) }
    end

    describe '.show' do
      subject { described.show(model) }

      it { subject.must_equal(model) }

      it { subject; instance.state.must_equal(:visible) }
    end

    describe '.hide' do
      subject { described.hide(model) }

      it { subject.must_equal(model) }

      it { subject; instance.state.must_equal(:invisible) }
    end

    describe '.toggle' do
      subject { described.toggle(model) }

      it { subject.must_equal(model) }

      context 'when the model is visible' do
        it { subject; instance.state.must_equal(:invisible) }
      end

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

        it { subject; instance.state.must_equal(:visible) }
      end
    end

    describe '#state' do
      subject { instance.state }

      it { subject.must_be_instance_of(Symbol) }

      context 'when the model is visible' do
        it { subject.must_equal(:visible) }
      end

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

        it { subject.must_equal(:invisible) }
      end
    end

  end # Visibility

end # Vedeu

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
vedeu-0.4.45 test/lib/vedeu/support/visibility_test.rb
vedeu-0.4.44 test/lib/vedeu/support/visibility_test.rb
vedeu-0.4.43 test/lib/vedeu/support/visibility_test.rb
vedeu-0.4.42 test/lib/vedeu/support/visibility_test.rb
vedeu-0.4.41 test/lib/vedeu/support/visibility_test.rb
vedeu-0.4.40 test/lib/vedeu/support/visibility_test.rb
vedeu-0.4.39 test/lib/vedeu/support/visibility_test.rb
vedeu-0.4.38 test/lib/vedeu/support/visibility_test.rb
vedeu-0.4.37 test/lib/vedeu/support/visibility_test.rb
vedeu-0.4.36 test/lib/vedeu/support/visibility_test.rb
vedeu-0.4.35 test/lib/vedeu/support/visibility_test.rb
vedeu-0.4.34 test/lib/vedeu/support/visibility_test.rb
vedeu-0.4.33 test/lib/vedeu/support/visibility_test.rb
vedeu-0.4.32 test/lib/vedeu/support/visibility_test.rb
vedeu-0.4.31 test/lib/vedeu/support/visibility_test.rb
vedeu-0.4.30 test/lib/vedeu/support/visibility_test.rb
vedeu-0.4.29 test/lib/vedeu/support/visibility_test.rb
vedeu-0.4.28 test/lib/vedeu/support/visibility_test.rb
vedeu-0.4.27 test/lib/vedeu/support/visibility_test.rb
vedeu-0.4.26 test/lib/vedeu/support/visibility_test.rb