Sha256: 655a266d98c8125f3c8d40ffd8171178589991aa307998191937bb2ed0af4480

Contents?: true

Size: 1.13 KB

Versions: 21

Compression:

Stored size: 1.13 KB

Contents

require 'pathname'
require Pathname.new( File.dirname(__FILE__)).join( 'test_helper' ).cleanpath

require 'build-tool/singleton'

class TestSingleton < Test::Unit::TestCase

        class Child1 < BuildTool::Singleton
        end

        class GrandChild1 < Child1
        end

        class Child2 < BuildTool::Singleton
        end

        class GrandChild2 < Child2
        end
    def test_singletion


        c1 = Child1.new
        c1.instance
        assert_equal c1.instance, Child1.instance

        assert_raise StandardError do
            Child1.new
        end

        assert_raise StandardError do
            gc = GrandChild1.new
        end


        gc2 = GrandChild2.new
        assert_equal gc2.instance, Child2.instance
        assert_equal gc2.instance, GrandChild2.instance

        assert_not_equal Child1.instance, GrandChild2.instance

        gc2.destroy
        assert_nil gc2.instance
        assert_nil Child2.instance
        assert_nil GrandChild2.instance

        gc2_new = GrandChild2.new
        assert_equal gc2_new.instance, Child2.instance
        assert_equal gc2_new.instance, GrandChild2.instance
    end

end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
build-tool-0.5.3 test/test_singleton.rb
build-tool-0.5.2 test/test_singleton.rb
build-tool-0.4.6 test/test_singleton.rb
build-tool-0.5.1 test/test_singleton.rb
build-tool-0.4.5 test/test_singleton.rb
build-tool-0.5.0 test/test_singleton.rb
build-tool-0.4.4 test/test_singleton.rb
build-tool-0.4.3 test/test_singleton.rb
build-tool-0.4.2 test/test_singleton.rb
build-tool-0.4.1 test/test_singleton.rb
build-tool-0.4.0 test/test_singleton.rb
build-tool-0.3.3 test/test_singleton.rb
build-tool-0.3.2 test/test_singleton.rb
build-tool-0.3.1 test/test_singleton.rb
build-tool-0.3 test/test_singleton.rb
build-tool-0.2 test/test_singleton.rb
build-tool-0.1.4 test/test_singleton.rb
build-tool-0.1.3 test/test_singleton.rb
build-tool-0.1.2 test/test_singleton.rb
build-tool-0.1.0 test/test_singleton.rb