require File.dirname(__FILE__) + '/../spec_helper' module TestResultSpecHelper def self.valid_parameters { :ruby_version => '1.8.4', :rails_version => '1.1.6', :plugin => SpecFixtures.sample_plugin, :percentage_passed => 100, :revision_number => 1234 } end end context "New test result" do setup do @valid_params = TestResultSpecHelper.valid_parameters @result = TestResult.new end specify "should require a ruby version" do @result.attributes = @valid_params.except(:ruby_version) @result.should_not_be_valid end specify "should require a rails version" do @result.attributes = @valid_params.except(:rails_version) @result.should_not_be_valid end specify "should require an associated plugin" do @result.attributes = @valid_params.except(:plugin) @result.should_not_be_valid end specify "should require a percentage passed figure between 0 and 100" do @result.attributes = @valid_params.except(:percentage_passed) @result.should_not_be_valid @result.percentage_passed = -1 @result.should_not_be_valid @result.percentage_passed = 101 @result.should_not_be_valid @result.percentage_passed = 100 @result.should_be_valid end specify "should require a revision number" do @result.attributes = @valid_params.except(:revision_number) @result.should_not_be_valid end specify "should be creatable from a full set of valid parameters" do @result.attributes = @valid_params @result.save.should_be true end end context "Saved test result" do setup do @result = TestResult.new(TestResultSpecHelper.valid_parameters) @result.save end specify "should not be a new record" do @result.should_not_be_new_record end specify "should be valid" do @result.should_be_valid end specify "should belong to a plugin" do @result.plugin.should_be_an_instance_of Plugin end end