Commit 63911c6616d8175e83fe3084ff604c062b36120f

Authored by João M. M. da Silva + Alessandro Palmeira
Committed by Paulo Meireles
1 parent 59b3e458

[Mezuro] Fixed fixtures and added new test for new project model

plugins/mezuro/lib/kalibro/project.rb
... ... @@ -7,8 +7,12 @@ class Kalibro::Project < Kalibro::Model
7 7 end
8 8  
9 9 def self.find_by_name(project_name)
10   - attributes = request(:get_project, :project_name => project_name)[:project]
11   - new attributes
  10 + begin
  11 + attributes = request(:get_project, :project_name => project_name)[:project]
  12 + new attributes
  13 + rescue Exception => error
  14 + nil
  15 + end
12 16 end
13 17  
14 18 def self.destroy(project_name)
... ... @@ -29,7 +33,12 @@ class Kalibro::Project < Kalibro::Model
29 33 end
30 34  
31 35 def save
32   - self.class.request(:save_project, {:project => to_hash})
  36 + begin
  37 + self.class.request(:save_project, {:project => to_hash})
  38 + true
  39 + rescue Exception => error
  40 + false
  41 + end
33 42 end
34 43  
35 44 def repository=(value)
... ...
plugins/mezuro/test/fixtures/project_fixtures.rb
... ... @@ -3,20 +3,18 @@ require File.dirname(__FILE__) + '/repository_fixtures'
3 3 class ProjectFixtures
4 4  
5 5 def self.qt_calculator
6   - project = Kalibro::Project.new
7   - project.name = 'Qt-Calculator'
8   - project.license = 'GPL'
9   - project.description = 'Calculator for Qt'
10   - project.repository = RepositoryFixtures.qt_calculator
11   - project.configuration_name = 'Kalibro for Java'
12   - project.state = 'READY'
13   - project
  6 + Kalibro::Project.new qt_calculator_hash
14 7 end
15 8  
16 9 def self.qt_calculator_hash
17   - {:name => 'Qt-Calculator', :license => 'GPL', :description => 'Calculator for Qt',
18   - :repository => RepositoryFixtures.qt_calculator_hash,
19   - :configuration_name => 'Kalibro for Java', :state => 'READY'}
  10 + {
  11 + :name => 'Qt-Calculator',
  12 + :license => 'GPL',
  13 + :description => 'Calculator for Qt',
  14 + :repository => RepositoryFixtures.qt_calculator_hash,
  15 + :configuration_name => 'Kalibro for Java',
  16 + :state => 'READY'
  17 + }
20 18 end
21 19  
22 20 end
... ...
plugins/mezuro/test/fixtures/repository_fixtures.rb
1 1 class RepositoryFixtures
2 2  
3 3 def self.qt_calculator
4   - repository = Kalibro::Repository.new
5   - repository.type = 'SUBVERSION'
6   - repository.address = 'https://qt-calculator.svn.sourceforge.net/svnroot/qt-calculator'
7   - repository
  4 + Kalibro::Repository.new qt_calculator_hash
8 5 end
9 6  
10 7 def self.qt_calculator_hash
... ...
plugins/mezuro/test/unit/kalibro/project_test.rb
... ... @@ -12,30 +12,38 @@ class ProjectTest < ActiveSupport::TestCase
12 12 should 'get project by name' do
13 13 request_body = {:project_name => @project.name}
14 14 response_hash = {:project => @hash}
  15 + Kalibro::Project.expects(:new).with(@hash).returns(@project)
15 16 Kalibro::Project.expects(:request).with(:get_project, request_body).returns(response_hash)
16 17 assert_equal @project, Kalibro::Project.find_by_name(@project.name)
17 18 end
18 19  
19   -=begin
20 20 should 'raise error when project doesnt exist' do
21 21 request_body = {:project_name => @project.name}
22   - @port.expects(:request).with(:get_project, request_body).raises(Exception.new("(S:Server) There is no project named " + @project.name))
23   - assert_nil Kalibro::Client::ProjectClient.project(@project.name)
  22 + Kalibro::Project.expects(:request).with(:get_project, request_body).raises(Exception.new("(S:Server) There is no project named " + @project.name))
  23 + assert_nil Kalibro::Project.find_by_name(@project.name)
  24 + end
  25 +
  26 + should 'return true when project is saved successfully' do
  27 + Kalibro::Project.expects(:request).with(:save_project, {:project => @project.to_hash})
  28 + assert @project.save
24 29 end
25 30  
26   - should 'save project' do
27   - create_project_content_mock
28   - @project.state = nil
29   - @port.expects(:request).with(:save_project, {:project => @project.to_hash})
30   - Kalibro::Client::ProjectClient.save(@project_content)
  31 + should 'return false when project is not saved successfully' do
  32 + Kalibro::Project.expects(:request).with(:save_project, {:project => @project.to_hash}).raises(Exception.new)
  33 + assert !(@project.save)
31 34 end
32 35  
33 36 should 'remove existent project from service' do
34   - @port.expects(:request).with(:get_project_names).returns({:project_name => @project.name})
35   - @port.expects(:request).with(:remove_project, {:project_name => @project.name})
36   - Kalibro::Client::ProjectClient.remove(@project.name)
  37 + Kalibro::Project.expects(:request).with(:remove_project, {:project_name => @project.name})
  38 + Kalibro::Project.destroy(@project.name)
37 39 end
38 40  
  41 + should 'raise error when try to remove inexistent project from service' do
  42 + Kalibro::Project.expects(:request).with(:remove_project, {:project_name => @project.name}).raises(Exception.new)
  43 + assert_raise Exception do Kalibro::Project.destroy(@project.name) end
  44 + end
  45 +
  46 +=begin
39 47 should 'not try to remove inexistent project from service' do
40 48 @port.expects(:request).with(:get_project_names).returns({:project_name => 'Different project'})
41 49 @port.expects(:request).with(:remove_project, {:project_name => @project.name}).never
... ...
plugins/mezuro/test/unit/kalibro/repository_test.rb
... ... @@ -9,13 +9,8 @@ class RepositoryTest < ActiveSupport::TestCase
9 9 @repository = RepositoryFixtures.qt_calculator
10 10 end
11 11  
12   - #TODO como pegar o nome de TODAS as variáveis, mesmo as não setadas???
13   - should 'create repository from hash' do
14   - repository = Kalibro::Repository.new(@hash)
15   - attributes = repository.instance_variable_names.map { |variable| variable.to_s.sub(/@/, '') }
16   - attributes.each { |field| assert_equal(@repository.send("#{field}"), repository.send("#{field}")) }
17   - attributes = @repository.instance_variable_names.map { |variable| variable.to_s.sub(/@/, '') }
18   - attributes.each { |field| assert_equal(@repository.send("#{field}"), repository.send("#{field}")) }
  12 + should 'new repository from hash' do
  13 + assert_equal @repository.type, Kalibro::Repository.new(@hash).type
19 14 end
20 15  
21 16 should 'convert repository to hash' do
... ...