Report abuse


			
#RAKEFILE
require 'spec/rake/spectask'

#Rules for all tasks.
task :run => [:build,:test]
task :ci => [:gui]
task :test => [:build]
#Tasks for running tests
desc "Run all tests for rbgooey with rcov"
Spec::Rake::SpecTask.new('gui') do |t|
  t.spec_files = FileList['rbgooey/test/test.rb']
  t.rcov = true
  t.rcov_opts = ['--exclude', '/usr/local/lib/site_ruby']
end

desc "Run all tests for rbgooey without rcov"
Spec::Rake::SpecTask.new('test') do |t|
  t.spec_files = FileList['rbgooey/test/test.rb']
  t.rcov = false
end

#Commit task
task :ci do
  sh "svn st"
  sh "svn ci"
end

#Build and install gems task
task :build do
  sh "gem build rbgooey.gemspec"
  sh "sudo gem install rbGooey-0.0.1 --local"
end

#Build gem, run tests, run dynpet.rb
task :run do
  sh "ruby dynpet.rb"
end

#test.rb
require"rubygems"
require"rubygame"
gui = Dir.glob("rbgooey/lib/*.rb")
gui.each do |data|
  require(data)
end
require"rbgooey/test/main_init.rb"
require"rbgooey/test/mainscreen.rb"
require"rbgooey/test/mainflags.rb"
include Rubygame

#main_init.rb
context "A new Main object" do
  setup do
    @main = Main.new
  end
  specify "should have all of their instance variables empty" do
    @main.screen.should == nil
    @main.background.should == nil
    @main.font.should == nil
    @main.bgcolor.should == nil
    @main.fgcolor.should == nil
    @main.size.should == nil
    @main.y.should == nil
  end
  specify "should have instance variable @cursor return the value true when initialized" do
    @main.cursor.should == true
  end
  specify "should have instance variable @flags return all the flags when initialized" do
    @main.flags.should == [Rubygame::HWSURFACE,Rubygame::DOUBLEBUF]
  end
end

#mainscreen.rb
context "instance variable @screen of Main object" do
  setup do
    @main = Main.new
  end
  specify "should have @screen.size return [800 , 600] when 'set_new(800,600)' is called" do
    @main.set_new(800,600)
    @main.screen.size.should == [800,600]
  end
  specify "should stay the same when set_new is called without agurement" do
    @main.set_new(800,600)
    @main.set_new()
    @main.screen.size.should == [800,600]
  end
  specify "should return false when set_new is called without agurement after specifying set_new agurement with false for cursor value" do
    @main.set_new(800,600,false)
    @main.set_new()
    @main.cursor.should == false
  end
  specify "should return a new extra flag called Rubygame::FULLSCREEN" do
    @main.set_new(800,600)
    @main.add(1)
    @main.screen.flags[-1] == Rubygame::FULLSCREEN
    Rubygame.quit()
  end
end

#mainflags
context "@flags of Main object" do
  setup do
    @main = Main.new
    @main.set_new(800,600)
  end
  specify "should return via flags.length() as 3 when method add of Main is called" do
    @main.add(1)
    @main.flags.length.should() == 3
  end
  specify "should return via flags.last() as Rubygame::FULLSCREEN when method add of Main is called" do
    @main.add(1)
    @main.flags.last.should == Rubygame::FULLSCREEN
    Rubygame.quit()
  end
end