Commit b046e2a3e49e2f4dd27abe009a9f820e64fec692

Authored by Carlos Morais
1 parent 5d1f706a

[Mezuro] Initial functional tests

plugins/mezuro/controllers/mezuro_plugin_profile_controller.rb
... ... @@ -3,7 +3,8 @@ class MezuroPluginProfileController < ProfileController
3 3 def metrics
4 4 project_content = profile.articles.find(params[:id])
5 5 module_name = params[:module_name]
6   - render :partial => 'content_viewer/module_result', :locals => { :module_result => project_content.module_result(module_name) }
  6 + render :partial => 'content_viewer/module_result',
  7 + :locals => { :module_result => project_content.module_result(module_name)}
7 8 end
8 9  
9 10 end
... ...
plugins/mezuro/test/functional/mezuro_plugin_profile_controller_test.rb
1 1 require 'test_helper'
2 2  
3   -class MezuroPluginProfileControllerTest < ActiveSupport::TestCase
  3 +require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/module_result_fixtures"
  4 +require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/project_result_fixtures"
  5 +
  6 +class MezuroPluginProfileControllerTest < ActionController::TestCase
4 7  
5 8 def setup
6 9 @controller = MezuroPluginProfileController.new
7 10 @request = ActionController::TestRequest.new
8   - @response = ActionController::TestResponse.new
  11 + @response = ActionController::TestResponse.new
9 12 @profile = fast_create(Community)
10 13 @profile_id = @profile.identifier
  14 +
  15 + @module_result = ModuleResultFixtures.create
  16 + @project_result = ProjectResultFixtures.project_result
  17 + @project = @project_result.project
11 18 end
12 19  
13   -# def test_metrics_for_unknown_module
14   -# get :metrics, :profile => @profile_id, :id => 0
  20 +# def test_metrics_for_unknown_project
  21 +# get :metrics, :profile => @profile_id
15 22 # assert_response 404
16 23 # end
17   -
  24 +#
18 25 # def test_metric_unknown_module
19   -# get :metrics, :profile => @profile_id, :id => @project_content.id, :module_name => 'veryunlikelyname'
20   -# assert_response 404
  26 +# get :metrics, :profile => @profile_id, :id => @project_content.id, :module_name => 'veryunlikelyname'
  27 +# assert_response 404
21 28 # end
22 29  
23 30  
24   -# def test_metrics_for_known_module
25   -# @project_content = create_project_content(@profile)
26   -# get :metrics, :profile => @profile_id, :id => @project_content.id, :module_name => @project_content.name
27   -# assert_response 200
28   -# # assert_tag # TODO
29   -# end
  31 + def test_metrics_for_known_module
  32 + @project_content = create_project_content(@profile)
  33 + Kalibro::Client::ProjectResultClient.expects(:last_result).with(@project.name).returns(@project_result)
  34 + Kalibro::Client::ModuleResultClient.expects(:module_result).
  35 + with(@project.name, @project.name, @project_result.date).returns(@module_result)
  36 + get :metrics, :profile => @profile_id, :id => @project_content.id, :module_name => @project_content.title
  37 + assert_response 200
  38 + # assert_tag # TODO
  39 + end
30 40  
31 41 protected
32 42  
33 43 # returns a new ProjectContent for the given profile
34 44 def create_project_content(profile)
35   - project_content = MezuroPlugin::ProjectContent.create!(:profile => profile, :name => 'foo')
  45 + Kalibro::Client::ProjectClient.expects(:save).with(@project)
  46 + Kalibro::Client::KalibroClient.expects(:process_project).with(@project.name)
36 47  
37   - project = create_project(project_content.name)
38   - project_content.license = project.license
39   - project_content.description = project.description
40   - project_content.repository_type = project.repository.type
41   - project_content.repository_url = project.repository.address
42   - project_content.configuration_name = project.configuration_name
  48 + project_content = MezuroPlugin::ProjectContent.new(:profile => profile, :name => @project.name)
  49 + project_content.license = @project.license
  50 + project_content.description = @project.description
  51 + project_content.repository_type = @project.repository.type
  52 + project_content.repository_url = @project.repository.address
  53 + project_content.configuration_name = @project.configuration_name
  54 + project_content.save
43 55  
44 56 MezuroPlugin::ProjectContent.any_instance.stubs(:project_content).returns(project_content)
45 57 project_content
46 58 end
47   -
48   - def create_project(name)
49   - project = Kalibro::Entities::Project.new
50   - project.name = name
51   - project.license = 'GPL'
52   - project.description = 'testing'
53   - project.repository = crieate_repository
54   - project.configuration_name = 'Kalibro Default'
55   - project
56   - end
57   -
58   - def create_repository
59   - repository = Kalibro::Entities::Repository.new
60   - repository.type = 'git'
61   - repository.address = 'http://git.git'
62   - repository
63   - end
64 59  
65 60 #TODO Adicionar module result manualmente
66 61 #TODO Ver testes do project content, refatorar o project content em cima dos testes
... ...
plugins/mezuro/test/mezuro_test.rb
... ... @@ -1,12 +0,0 @@
1   -require "test_helper"
2   -
3   -require File.dirname(__FILE__) + '/../controllers/mezuro_plugin_myprofile_controller'
4   -
5   -class MezuroTest < ActiveSupport::TestCase
6   -
7   - should 'create a mezuro project' do
8   - controller = MezuroPluginMyprofileController.new
9   - controller.create
10   - end
11   -
12   -end