mezuro_plugin_project_controller_test.rb
5.01 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
require 'test_helper'
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/repository_fixtures"
class MezuroPluginProjectControllerTest < ActionController::TestCase
def setup
@controller = MezuroPluginProjectController.new
@request = ActionController::TestRequest.new
@response = ActionController::TestResponse.new
@profile = fast_create(Community)
@project_result = ProjectResultFixtures.project_result
@repository_url = RepositoryFixtures.repository.address
@project = @project_result.project
@date = "2012-04-13T20:39:41+04:00"
Kalibro::Project.expects(:all_names).returns([])
@content = MezuroPlugin::ProjectContent.new(:profile => @profile, :name => @project.name, :repository_url => @repository_url)
@content.expects(:send_project_to_service).returns(nil)
@content.save
end
should 'test project state without kalibro_error' do
Kalibro::Project.expects(:request).with("Project", :get_project, :project_name => @project.name).returns({:project => @project.to_hash})
get :project_state, :profile => @profile.identifier, :id => @content.id
assert_response 200
assert_equal @content, assigns(:content)
end
should 'test project state with kalibro_error' do
Kalibro::Project.expects(:request).with("Project", :get_project, :project_name => @project.name).returns({:project => @project.to_hash.merge({:error => ErrorFixtures.error_hash})})
get :project_state, :profile => @profile.identifier, :id => @content.id
assert_response 200
assert_equal "ERROR", @response.body
assert_equal @content, assigns(:content)
end
should 'test project error' do
Kalibro::Project.expects(:request).with("Project", :get_project, :project_name => @project.name).returns({:project => @project.to_hash.merge({:error => ErrorFixtures.error_hash})})
get :project_error, :profile => @profile.identifier, :id => @content.id
assert_response 200
assert_select('h3', 'ERROR')
assert_equal @content, assigns(:content)
assert_equal @project.name, assigns(:project).name
end
should 'test project result without date' do
Kalibro::ProjectResult.expects(:request).with("ProjectResult", :get_last_result_of, {:project_name => @project.name}).returns({:project_result => @project_result.to_hash})
get :project_result, :profile => @profile.identifier, :id => @content.id, :date => nil
assert_equal @content, assigns(:content)
assert_equal @project_result.project.name, assigns(:project_result).project.name
assert_response 200
assert_select('h4', 'Last Result')
end
should 'test project results from a specific date' do
request_body = {:project_name => @project.name, :date => @date}
Kalibro::ProjectResult.expects(:request).with("ProjectResult", :has_results_before, request_body).returns({:has_results => true})
Kalibro::ProjectResult.expects(:request).with("ProjectResult", :get_last_result_before, request_body).returns({:project_result => @project_result.to_hash})
get :project_result, :profile => @profile.identifier, :id => @content.id, :date => @date
assert_equal @content, assigns(:content)
assert_equal @project_result.project.name, assigns(:project_result).project.name
assert_response 200
assert_select('h4', 'Last Result')
end
should 'test project tree without date' do
Kalibro::ProjectResult.expects(:request).with("ProjectResult", :get_last_result_of, {:project_name => @project.name}).returns({:project_result => @project_result.to_hash})
Kalibro::Project.expects(:request).with("Project", :get_project, :project_name => @project.name).returns({:project => @project.to_hash})
get :project_tree, :profile => @profile.identifier, :id => @content.id, :module_name => @project.name, :date => nil
assert_equal @content, assigns(:content)
assert_equal @project.name, assigns(:project_name)
assert_equal @project_result.source_tree.module.name, assigns(:source_tree).module.name
assert_response 200
assert_select('h2', /Qt-Calculator/)
end
should 'test project tree with a specific date' do
request_body = {:project_name => @project.name, :date => @project_result.date}
Kalibro::Project.expects(:request).with("Project", :get_project, :project_name => @project.name).returns({:project => @project.to_hash})
Kalibro::ProjectResult.expects(:request).with("ProjectResult", :has_results_before, request_body).returns({:has_results => true})
Kalibro::ProjectResult.expects(:request).with("ProjectResult", :get_last_result_before, request_body).returns({:project_result => @project_result.to_hash})
get :project_tree, :profile => @profile.identifier, :id => @content.id, :module_name => @project.name, :date => @project_result.date
assert_equal @content, assigns(:content)
assert_equal @project.name, assigns(:project_name)
assert_equal @project_result.source_tree.module.name, assigns(:source_tree).module.name
assert_response 200
end
end