require 'pathname' require Pathname.new( File.dirname(__FILE__)).join( 'test_helper' ).cleanpath require 'build-tool/module' require 'build-tool/repository' require 'build-tool/errors' require 'build-tool/vcs/git-svn' require 'build-tool/environment' require 'build-tool/build-system/cmake' class TestModule < Test::Unit::TestCase # Test a simple default created object def test_simple_creation mod = BuildTool::Module.new('kdelibs') assert_raise StandardError do BuildTool::Module.new(nil) end end def test_template mod = BuildTool::Module.new('kdelibs') mod.is_template = true assert_raise BuildTool::ConfigurationError do mod.local_path = "/kde/trunk" end assert_raise BuildTool::ConfigurationError do mod.remote_path = "/kde/trunk" end end # Test all properties for required behaviour def test_properties mod = BuildTool::Module.new('kdelibs') # It's not allowed to change the name assert !mod.respond_to?( 'name=' ) # The name assert_equal mod.name, 'kdelibs' # defaults to name assert_equal mod.local_path, 'kdelibs' # defaults to name assert_equal mod.remote_path, 'kdelibs' end # Test checking out the module def test_checkout mod = BuildTool::Module.new('kdelibs') assert_raise BuildTool::ConfigurationError do mod.rebase( nil ) end end # Test checking error message because of missing configuration def test_build_prefix mod = BuildTool::Module.new('kdelibs') assert_raise BuildTool::ConfigurationError do mod.build_prefix_required end assert_nothing_raised do mod.build_prefix end assert_nothing_raised do mod.build_prefix= "/kde/src" mod.build_prefix_required end end # Test checking error message because of missing configuration def test_build_system mod = BuildTool::Module.new('kdelibs') assert_raise BuildTool::ConfigurationError do mod.build_system_required end assert_nothing_raised do mod.build_system end assert_nothing_raised do mod.build_system= BuildTool::BuildSystem::CMake.new mod.build_system_required end end # Test checking error message because of missing configuration def test_environment mod = BuildTool::Module.new('kdelibs') assert_raise BuildTool::ConfigurationError do mod.environment_required end assert_nothing_raised do mod.environment end assert_nothing_raised do mod.environment= BuildTool::Environment.new( 'kde' ) mod.environment_required end end # Test checking error message because of missing configuration def test_install_prefix mod = BuildTool::Module.new('kdelibs') # It's nil assert_nil mod.install_prefix # Raises an expression if required assert_raise BuildTool::ConfigurationError do mod.install_prefix_required end # But not on the normal accessor assert_nothing_raised do mod.install_prefix end # Set a value mod.install_prefix= "/opt/kde" assert_kind_of Pathname, mod.install_prefix # It's available on the normal accessor assert_equal "/opt/kde", mod.install_prefix.to_s # Does not throw an expception assert_nothing_raised do mod.install_prefix_required end # It's available on the normal accessor assert_equal mod.install_prefix, mod.install_prefix_required end # Test checking error message because of missing configuration def test_repository mod = BuildTool::Module.new('kdelibs') assert_raise BuildTool::ConfigurationError do mod.repository_required end assert_nothing_raised do mod.repository end assert_nothing_raised do mod.repository= BuildTool::Repository.new( 'kde' ) mod.repository_required end end # Test checking error message because of missing configuration def test_vcs mod = BuildTool::Module.new('kdelibs') assert_raise BuildTool::ConfigurationError do mod.vcs_required end assert_nothing_raised do mod.vcs end mod.repository = BuildTool::Repository.new( "repo" ) mod.build_prefix = "$HOME/build" assert_nothing_raised do mod.vcs_configuration = BuildTool::VCS::GitSvnConfiguration.new mod.vcs_required end end end