Class AbstractTest
In: lib/abstract.rb
Parent: Test::Unit::TestCase

Methods

Classes and Modules

Class AbstractTest::A
Class AbstractTest::AA_
Class AbstractTest::AArg
Class AbstractTest::B
Class AbstractTest::BB_
Class AbstractTest::C
Class AbstractTest::CArg
Class AbstractTest::CC
Class AbstractTest::CC_
Class AbstractTest::DD_
Class AbstractTest::IsA
Class AbstractTest::IsB
Class AbstractTest::R
Class AbstractTest::SA
Class AbstractTest::SB
Class AbstractTest::SC
Class AbstractTest::SCC

Public Instance methods

[Source]

# File lib/abstract.rb, line 78
  def test_abstract
    assert_nothing_raised { R.new }
    assert(A.include?(Abstract))
    assert_raises(TypeError) { A.new }
    assert_raises(TypeError) { B.new }
    assert_raises(TypeError) do
      AbstractTest.module_eval %q{
        class D
          include Concrete
          include Abstract
        end
      }
    end
  end

[Source]

# File lib/abstract.rb, line 174
  def test_abstract?
    assert(IsA.abstract?)
    assert(! IsB.abstract?)
  end

[Source]

# File lib/abstract.rb, line 133
  def test_abstract_singleton
    assert(SA.include?(Abstract))
    assert_raises(NoMethodError) { SA.new }
    assert_raises(TypeError) { SA.instance }
    assert_raises(NoMethodError) { SB.new }
    assert_raises(TypeError) { SB.instance }
    assert_raises(TypeError) do
      AbstractTest.module_eval %q{
        class SD; include Concrete; include Abstract; end
      }
    end
  end

[Source]

# File lib/abstract.rb, line 194
  def test_arg
    assert_nothing_raised { CArg.new('toto') }
    assert_raises(ArgumentError) { CArg.new }
  end

[Source]

# File lib/abstract.rb, line 106
  def test_concrete
    assert_raises(TypeError) do
      AbstractTest.module_eval %q{ class D; include Concrete; end }
    end
    assert(C.new.initialized)
    assert_nil(C.new.toto)
    assert_equal('toto', C.new('toto').toto)
    assert(CC.new.initialized)
    assert_equal(SC.instance, SC.instance)
    assert_equal(SCC.instance, SCC.instance)
    assert_not_equal(SC.instance, SCC.instance)
  end

[Source]

# File lib/abstract.rb, line 153
  def test_concrete_singleton
    assert_raises(TypeError) do
      AbstractTest.module_eval %q{ class SD; include Concrete; end }
    end
    assert_raises(NoMethodError) { SC.new }
    assert(SC.instance.initialized)
    assert(SCC.instance.initialized)
    assert_equal(SC.instance, SC.instance)
    assert_equal(SCC.instance, SCC.instance)
    assert_not_equal(SC.instance, SCC.instance)
  end

[Source]

# File lib/abstract.rb, line 204
  def test_double_abstract
    assert_raises(TypeError) { AA_.new }
    assert_raises(TypeError) { BB_.new }
    assert_nothing_raised { CC_.new }
    assert_nothing_raised { DD_.new }
  end

[Source]

# File lib/abstract.rb, line 168
  def test_is_a
    assert(! IsB.new.is_a?(Abstract))
    assert(IsB.new.is_a?(IsA))
    assert(IsB.include?(Abstract))
  end

[Validate]