require 'test_helper.rb' setup_database() require 'build-tool/model/command_log' require 'build-tool/model/module' class HistoryTest < ActiveSupport::TestCase test "Module/Command Logs successfully created" do # Create some modules. kdelibs = BuildTool::Module.new( :name => 'KDE/kdelibs' ) kdelibs.save!() kdebase_runtime = BuildTool::Module.new( :name => 'KDE/kdebase/runtime' ) kdebase_runtime.save!() kdebase_workspace = BuildTool::Module.new( :name => 'KDE/kdebase/workspace' ) kdebase_workspace.save!() # Create a command history touching alls three modules. cmd = BuildTool::History::CommandLog.new( :command => 'first_command', :logdir => '/home/build-tool/log') cmd.started() assert( cmd.id ) assert( kdelibs.id ) cmd.module_logs.build( :module => kdelibs, :event => "build", :logfile => "build.log" ) cmd.module_logs.build( :module => kdebase_runtime, :event => "fetch", :logfile => "fetch.log" ) cmd.module_logs.build( :module => kdebase_runtime, :event => "build", :logfile => "build.log" ) cmd.module_logs.build( :module => kdebase_workspace, :event => "build", :logfile => "build.log" ) cmd.finished( BuildTool::History::CommandLog::FINISHED_SUCCESSFUL ) cmd = nil # Check all module logs are found cmd = BuildTool::History::CommandLog.where( :command => 'first_command' ).first() assert( cmd ) assert_equal( 4, cmd.module_logs.count() ) assert_equal( 'KDE/kdelibs', cmd.module_logs[0].module.name ) assert_equal( 'KDE/kdebase/runtime', cmd.module_logs[1].module.name ) assert_equal( 'KDE/kdebase/runtime', cmd.module_logs[2].module.name ) assert_equal( 'KDE/kdebase/workspace', cmd.module_logs[3].module.name ) # Now check from the module site. mod = BuildTool::Module.where( :name => 'KDE/kdebase/runtime' ).first assert( mod ) assert_equal( 'KDE/kdebase/runtime', mod.name ) assert_equal( 2, mod.module_logs.count() ) # Delete the module and check it takes the modules logs with it. mod.destroy() mod = nil # Check all module logs are found but the kdebase/runtime ones. cmd = BuildTool::History::CommandLog.where( :command => 'first_command' ).first() assert( cmd ) assert_equal( 2, cmd.module_logs.count() ) assert_equal( 'KDE/kdelibs', cmd.module_logs[0].module.name ) assert_equal( 'KDE/kdebase/workspace', cmd.module_logs[1].module.name ) # Now delete the command log and check all module and command logs are gone cmd.destroy() assert_equal( 0, BuildTool::History::ModuleLog::count() ) assert_equal( 0, BuildTool::History::CommandLog::count() ) end end # HistoryTest