Skip to content

Commit

Permalink
Tests for project class.
Browse files Browse the repository at this point in the history
  • Loading branch information
kommen committed Jan 13, 2009
1 parent 5cdf5a9 commit 9b3cd34
Show file tree
Hide file tree
Showing 4 changed files with 46 additions and 12 deletions.
3 changes: 2 additions & 1 deletion Rakefile
Expand Up @@ -13,7 +13,8 @@ $hoe = Hoe.new('freckle', Freckle::VERSION) do |p|
['activeresource', '>= 2.2.2']
]
p.extra_dev_deps = [
['newgem', ">= #{::Newgem::VERSION}"]
['newgem', ">= #{::Newgem::VERSION}"],
['activesupport', '>= 2.2.2']
]

p.clean_globs |= %w[**/.DS_Store tmp *.log]
Expand Down
5 changes: 4 additions & 1 deletion freckle.gemspec
Expand Up @@ -6,7 +6,7 @@ Gem::Specification.new do |s|

s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
s.authors = ["Dieter Komendera"]
s.date = %q{2009-01-10}
s.date = %q{2009-01-13}
s.default_executable = %q{freckle}
s.description = %q{FIX (describe your package)}
s.email = ["dieter@abloom.at"]
Expand All @@ -31,17 +31,20 @@ Gem::Specification.new do |s|
s.add_runtime_dependency(%q<json>, [">= 1.1.3"])
s.add_runtime_dependency(%q<activeresource>, [">= 2.2.2"])
s.add_development_dependency(%q<newgem>, [">= 1.2.3"])
s.add_development_dependency(%q<activesupport>, [">= 2.2.2"])
s.add_development_dependency(%q<hoe>, [">= 1.8.0"])
else
s.add_dependency(%q<json>, [">= 1.1.3"])
s.add_dependency(%q<activeresource>, [">= 2.2.2"])
s.add_dependency(%q<newgem>, [">= 1.2.3"])
s.add_dependency(%q<activesupport>, [">= 2.2.2"])
s.add_dependency(%q<hoe>, [">= 1.8.0"])
end
else
s.add_dependency(%q<json>, [">= 1.1.3"])
s.add_dependency(%q<activeresource>, [">= 2.2.2"])
s.add_dependency(%q<newgem>, [">= 1.2.3"])
s.add_dependency(%q<activesupport>, [">= 2.2.2"])
s.add_dependency(%q<hoe>, [">= 1.8.0"])
end
end
45 changes: 36 additions & 9 deletions test/project_test.rb
@@ -1,14 +1,41 @@
require File.join(File.dirname(__FILE__), "test_helper.rb")

class TestFreckleCli < Test::Unit::TestCase
class Freckle::ProjectTest < Test::Unit::TestCase

class Freckle::Project
def self.headers
{ 'X_FRECKLETOKEN' => '123' }
end
end

def setup
@stdout_io = StringIO.new
Freckle::CLI.execute(@stdout_io, [])
@stdout_io.rewind
@stdout = @stdout_io.read
end

def test_not_print_default_output
assert_no_match(/To update this executable/, @stdout)
@projects = [{ :id => 1, :name => "Test1" }].to_xml(:root => "projects")
@project = { :id => 2, :name => "Test2" }.to_xml(:root => "project")
@no_projects = [].to_xml(:root=> 'projects')
ActiveResource::HttpMock.respond_to do |mock|
mock.post "/api/projects.xml", { 'X_FRECKLETOKEN' => '123' }, @project, 201, "Location" => "/api/projects/1.xml"
mock.get "/api/projects.xml?name=Test1", { 'X_FRECKLETOKEN' => '123' }, @projects
mock.get "/api/projects.xml?name=Test2", { 'X_FRECKLETOKEN' => '123' }, @no_projects
end
end

def test_finding_project_by_name
project = Freckle::Project.find(:first, :params => { :name => 'Test1' })
assert_equal "Test1", project.name
end

def test_create_project
project = Freckle::Project.create(:name => 'Test2')
assert_equal 2, project.id
end

def test_find_or_create_by_name_should_find_existing_project
project = Freckle::Project.find_or_create_by_name('Test1')
assert_equal 1, project.id
end

def test_find_or_create_by_name_should_create_non_existing_project
project = Freckle::Project.find_or_create_by_name('Test2')
assert_equal 2, project.id
end
end
5 changes: 4 additions & 1 deletion test/test_helper.rb
@@ -1,6 +1,9 @@
require 'stringio'
require 'test/unit'
require 'mocha'
require 'rubygems'
require 'active_support'
require 'active_resource/http_mock'

require File.dirname(__FILE__) + '/../lib/freckle'
require File.dirname(__FILE__) + '/../lib/freckle/cli'

0 comments on commit 9b3cd34

Please sign in to comment.