mezuro_plugin_profile_controller_test.rb
3.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
require 'test_helper'
require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/module_result_fixtures"
require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/project_result_fixtures"
require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/error_fixtures"
require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/base_tool_fixtures"
require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/native_metric_fixtures"
require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/metric_configuration_fixtures"
class MezuroPluginProfileControllerTest < ActionController::TestCase
def setup
@controller = MezuroPluginProfileController.new
@request = ActionController::TestRequest.new
@response = ActionController::TestResponse.new
@profile = fast_create(Community)
@project_result = ProjectResultFixtures.qt_calculator
@module_result = ModuleResultFixtures.create
@project = @project_result.project
@name = @project.name
@date = "2012-04-13T20:39:41+04:00"
end
should 'not find module result for inexistent project content' do
get :module_result, :profile => '', :id => -1, :module_name => ''
assert_response 404
end
should 'get project state' do
create_project_content
Kalibro::Client::ProjectClient.expects(:project).with(@name).returns(@project)
get :project_state, :profile => @profile.identifier, :id => @content.id
assert_response 200
assert_equal @project.state, @response.body
end
should 'get error state if project has error' do
create_project_content
Kalibro::Client::ProjectClient.expects(:project).with(@name).returns(@project)
@project.expects(:error).returns("")
get :project_state, :profile => @profile.identifier, :id => @content.id
assert_response 200
assert_equal "ERROR", @response.body
end
should 'get project error' do
create_project_content
Kalibro::Client::ProjectClient.expects(:project).with(@name).returns(@project)
@project.expects(:error).returns(ErrorFixtures.create)
get :project_error, :profile => @profile.identifier, :id => @content.id
assert_response 200
assert_select('h3', 'ERROR')
end
should 'get project results' do
create_project_content
Kalibro::Client::ProjectResultClient.expects(:last_result).with(@name).returns(@project_result)
get :project_result, :profile => @profile.identifier, :id => @content.id
assert_response 200
assert_select('h4', 'Last Result')
end
should 'get project results from a specific date' do
create_project_content
client = mock
Kalibro::Client::ProjectResultClient.expects(:new).returns(client)
client.expects(:has_results_before).returns(true)
client.expects(:last_result_before).returns(@project_result)
get :project_result, :profile => @profile.identifier, :id => @content.id, :date => "2012-04-13T20:39:41+04:00"
assert_response 200
end
should 'get module result' do
create_project_content
module_result_client = mock
Kalibro::Client::ProjectResultClient.expects(:last_result).with(@name).returns(@project_result)
Kalibro::Client::ModuleResultClient.expects(:new).returns(module_result_client)
module_result_client.expects(:module_result).with(@name, @name, @project_result.date).returns(@module_result)
get :module_result, :profile => @profile.identifier, :id => @content.id, :module_name => @name
assert_response 200
assert_select('h5', 'Metric results for: Qt-Calculator (APPLICATION)')
end
private
def create_project_content
@content = MezuroPlugin::ProjectContent.new(:profile => @profile, :name => @name)
@content.expects(:send_project_to_service).returns(nil)
@content.save
end
end