Sha256: 27c64529c139bef6547d00f5933b34c0d5aa2824e1bff521295339fb14d407d5

Contents?: true

Size: 1.14 KB

Versions: 7

Compression:

Stored size: 1.14 KB

Contents

# -*- coding: utf-8 -*-


require_relative 'helper'


class TestConstSymbolAccessor < Test::Unit::TestCase

  Unknown = -1
  Const0  = 0
  Const1  = 1

  class ConstAccessor
    attr_accessor :const
    alias set const=
    alias get const
    def initialize (&block)
      @const = Const0
      block.call self if block
    end
  end

  class SymbolAccessor < ConstAccessor
    const_symbol_accessor :const, {
      const0: Const0,
      const1: Const1
    }
  end

  def const (&block)
    ConstAccessor.new &block
  end

  def symbol (&block)
    SymbolAccessor.new &block
  end

  def test_const_accessor ()
    assert_equal Const0, const.get
    assert_equal Const1, const{|o| o.const = Const1}.get
    assert_nothing_raised {const.const = Unknown}
  end

  def test_symbol_writer ()
    assert_equal Const0, symbol.get
    assert_equal Const1, symbol{|o| o.const = :const1}.get
    assert_raise(ArgumentError) {symbol.const = :unknown}
  end

  def test_symbol_reader ()
    assert_equal :const0, symbol.const
    assert_equal :const1, symbol{|o| o.set Const1}.const
    assert_raise(RuntimeError) {symbol{|o| o.set Unknown}.const}
  end

end# TestBitFlagAccessor

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
xot-0.1.21 test/test_const_symbol_accessor.rb
xot-0.1.20 test/test_const_symbol_accessor.rb
xot-0.1.19 test/test_const_symbol_accessor.rb
xot-0.1.16 test/test_const_symbol_accessor.rb
xot-0.1.15 test/test_const_symbol_accessor.rb
xot-0.1.14 test/test_const_symbol_accessor.rb
xot-0.1.13 test/test_const_symbol_accessor.rb