Commit 922a3b8e9d1ad46c23f31a44e7521d6a136a7313

Authored by Diego Camarinha
Committed by Diego Martinez
1 parent 998035d2

Ignore this commit

plugins/mezuro/controllers/profile/mezuro_plugin_repository_controller.rb
@@ -37,7 +37,7 @@ class MezuroPluginRepositoryController < MezuroPluginProfileController @@ -37,7 +37,7 @@ class MezuroPluginRepositoryController < MezuroPluginProfileController
37 @configuration_select = configurations.map do |configuration| 37 @configuration_select = configurations.map do |configuration|
38 [configuration.name,configuration.id] 38 [configuration.name,configuration.id]
39 end 39 end
40 - @repository = @project_content.repositories.select{ |repository| repository.id == params[:repository_id].to_s }.first 40 + @repository = @project_content.repositories.select{ |repository| repository.id.to_s == params[:repository_id] }.first
41 end 41 end
42 42
43 def update 43 def update
@@ -57,7 +57,7 @@ class MezuroPluginRepositoryController < MezuroPluginProfileController @@ -57,7 +57,7 @@ class MezuroPluginRepositoryController < MezuroPluginProfileController
57 project_content = profile.articles.find(params[:id]) 57 project_content = profile.articles.find(params[:id])
58 @project_name = project_content.name 58 @project_name = project_content.name
59 @repository = project_content.repositories.select{ |repository| repository.id == params[:repository_id].to_s }.first 59 @repository = project_content.repositories.select{ |repository| repository.id == params[:repository_id].to_s }.first
60 - @configuration_name = Kalibro::Configuration.find(@repository.configuration_id).name 60 + @configuration_name = Kalibro::Configuration.configuration_of(@repository.id).name
61 @processing = processing(@repository.id) 61 @processing = processing(@repository.id)
62 end 62 end
63 63
@@ -74,32 +74,6 @@ class MezuroPluginRepositoryController < MezuroPluginProfileController @@ -74,32 +74,6 @@ class MezuroPluginRepositoryController < MezuroPluginProfileController
74 74
75 private 75 private
76 76
77 - def processing(repository_id)  
78 - begin  
79 - if Kalibro::Processing.has_ready_processing(repository_id)  
80 - @processing ||= Kalibro::Processing.last_ready_processing_of(repository_id)  
81 - else  
82 - @processing = Kalibro::Processing.last_processing_of(repository_id)  
83 - end  
84 - rescue Exception => error  
85 - errors.add_to_base(error.message)  
86 - end  
87 - @processing  
88 - end  
89 -  
90 - def processing_with_date(repository_id, date)  
91 - begin  
92 - if Kalibro::Processing.has_processing_after(repository_id, date)  
93 - @processing ||= Kalibro::Processing.first_processing_after(repository_id, date)  
94 - elsif Kalibro::Processing.has_processing_before(repository_id, date)  
95 - @processing ||= Kalibro::Processing.last_processing_before(repository_id, date)  
96 - end  
97 - rescue Exception => error  
98 - errors.add_to_base(error.message)  
99 - end  
100 - @processing  
101 - end  
102 -  
103 def module_result(repository_id, date = nil) 77 def module_result(repository_id, date = nil)
104 @processing ||= date.nil? ? processing(repository_id) : processing_with_date(repository_id, date) 78 @processing ||= date.nil? ? processing(repository_id) : processing_with_date(repository_id, date)
105 begin 79 begin
plugins/mezuro/lib/kalibro/processing.rb
@@ -2,6 +2,42 @@ class Kalibro::Processing < Kalibro::Model @@ -2,6 +2,42 @@ class Kalibro::Processing < Kalibro::Model
2 2
3 attr_accessor :id, :date, :state, :error, :process_time, :results_root_id 3 attr_accessor :id, :date, :state, :error, :process_time, :results_root_id
4 4
  5 + def self.processing_of(repository_id)
  6 + if has_ready_processing(repository_id)
  7 + last_ready_processing_of(repository_id)
  8 + else
  9 + last_processing_of(repository_id)
  10 + end
  11 + end
  12 +
  13 + def self.processing_with_date_of(repository_id, date)
  14 + if has_processing_after(repository_id, date)
  15 + first_processing_after(repository_id, date)
  16 + elsif has_processing_before(repository_id, date)
  17 + last_processing_before(repository_id, date)
  18 + else
  19 + last_processing_of(repository_id)
  20 + end
  21 + end
  22 +
  23 + def date=(value)
  24 + @date = value.is_a?(String) ? DateTime.parse(value) : value
  25 + end
  26 +
  27 + def process_times=(value)
  28 + process_time=value
  29 + end
  30 +
  31 + def process_time=(value)
  32 + @process_time = Kalibro::ProcessTime.to_objects_array value
  33 + end
  34 +
  35 + def process_times
  36 + process_time
  37 + end
  38 +
  39 + private
  40 +
5 def self.has_processing(repository_id) 41 def self.has_processing(repository_id)
6 request(:has_processing, {:repository_id => repository_id})[:exists] 42 request(:has_processing, {:repository_id => repository_id})[:exists]
7 end 43 end
@@ -42,20 +78,4 @@ class Kalibro::Processing < Kalibro::Model @@ -42,20 +78,4 @@ class Kalibro::Processing < Kalibro::Model
42 new request(:last_processing_before, {:repository_id => repository_id, :date => date})[:processing] 78 new request(:last_processing_before, {:repository_id => repository_id, :date => date})[:processing]
43 end 79 end
44 80
45 - def date=(value)  
46 - @date = value.is_a?(String) ? DateTime.parse(value) : value  
47 - end  
48 -  
49 - def process_times=(value)  
50 - process_time=value  
51 - end  
52 -  
53 - def process_time=(value)  
54 - @process_time = Kalibro::ProcessTime.to_objects_array value  
55 - end  
56 -  
57 - def process_times  
58 - process_time  
59 - end  
60 -  
61 end 81 end
plugins/mezuro/test/functional/profile/mezuro_plugin_repository_controller_test.rb
@@ -14,6 +14,9 @@ class MezuroPluginRepositoryControllerTest < ActionController::TestCase @@ -14,6 +14,9 @@ class MezuroPluginRepositoryControllerTest < ActionController::TestCase
14 @response = ActionController::TestResponse.new 14 @response = ActionController::TestResponse.new
15 @profile = fast_create(Community) 15 @profile = fast_create(Community)
16 16
  17 + @configuration = ConfigurationFixtures.configuration
  18 + @repository_types = RepositoryFixtures.types
  19 + @all_configurations = ConfigurationFixtures.all
17 @repository = RepositoryFixtures.repository 20 @repository = RepositoryFixtures.repository
18 @repository_hash = RepositoryFixtures.hash 21 @repository_hash = RepositoryFixtures.hash
19 @content = MezuroPlugin::ProjectContent.new(:profile => @profile, :name => name) 22 @content = MezuroPlugin::ProjectContent.new(:profile => @profile, :name => name)
@@ -22,28 +25,75 @@ class MezuroPluginRepositoryControllerTest < ActionController::TestCase @@ -22,28 +25,75 @@ class MezuroPluginRepositoryControllerTest < ActionController::TestCase
22 @content.save 25 @content.save
23 end 26 end
24 27
25 - should 'provide the correct variables to the "new" view' do  
26 - repository_types = RepositoryFixtures.types  
27 - all_configurations = ConfigurationFixtures.all  
28 - Kalibro::Repository.expects(:repository_types).returns(repository_types)  
29 - Kalibro::Configuration.expects(:all).returns(all_configurations) 28 + should 'set variables to create a new repository' do
  29 + Kalibro::Repository.expects(:repository_types).returns(@repository_types)
  30 + Kalibro::Configuration.expects(:all).returns(@all_configurations)
30 31
31 get :new, :profile => @profile.identifier, :id => @content.id 32 get :new, :profile => @profile.identifier, :id => @content.id
32 33
33 - #assert_equal @content, assigns(:project_content)  
34 - assert_equal repository_types, assigns(:repository_types)  
35 - assert_equal all_configurations.first.name, assigns(:configuration_select).first.first  
36 - assert_equal all_configurations.first.id, assigns(:configuration_select).first.last 34 + assert_equal @content, assigns(:project_content)
  35 + assert_equal @repository_types, assigns(:repository_types)
  36 + assert_equal @all_configurations.first.name, assigns(:configuration_select).first.first
  37 + assert_equal @all_configurations.first.id, assigns(:configuration_select).first.last
37 end 38 end
38 39
39 - should 'create a repository and redirect correctly' do  
40 - Kalibro::Repository.expects(:new).returns(@repository)  
41 - @repository.expects(:save).with(@content.project_id).returns(true)  
42 - get :create, :profile => @profile.identifier, :id => @content.id, :repository => @repository_hash  
43 - assert @repository.errors.empty?  
44 - assert_response :redirect  
45 - assert_select('h5', 'Repositories') 40 + should 'create a repository' do
  41 + Kalibro::Repository.expects(:new).returns(@repository)
  42 + @repository.expects(:save).with(@content.project_id).returns(true)
  43 + get :create, :profile => @profile.identifier, :id => @content.id, :repository => @repository_hash
  44 + assert @repository.errors.empty?
  45 + assert_response :redirect
46 end 46 end
47 47
  48 + should 'not create a repository' do
  49 + @repository.errors = [Exception.new]
  50 + Kalibro::Repository.expects(:new).returns(@repository)
  51 + @repository.expects(:save).with(@content.project_id).returns(false)
  52 + get :create, :profile => @profile.identifier, :id => @content.id, :repository => @repository_hash
  53 + assert !@repository.errors.empty?
  54 + assert_response :redirect
  55 + end
  56 +
  57 + should 'set variables to edit a repository' do
  58 + articles = mock
  59 + Kalibro::Repository.expects(:repository_types).returns(@repository_types)
  60 + Kalibro::Configuration.expects(:all).returns(@all_configurations)
  61 + Kalibro::Repository.expects(:repositories_of).with(@content.project_id).returns([@repository])
  62 +
  63 + get :edit, :profile => @profile.identifier, :id => @content.id, :repository_id => @repository.id
  64 +
  65 + assert_equal @content, assigns(:project_content)
  66 + assert_equal @repository_types, assigns(:repository_types)
  67 + assert_equal @all_configurations.first.name, assigns(:configuration_select).first.first
  68 + assert_equal @all_configurations.first.id, assigns(:configuration_select).first.last
  69 + assert_equal @repository, assigns(:repository)
  70 + end
  71 +
  72 + should 'update a repository' do
  73 + Kalibro::Repository.expects(:new).returns(@repository)
  74 + @repository.expects(:save).with(@content.project_id).returns(true)
  75 + get :update, :profile => @profile.identifier, :id => @content.id, :repository => @repository_hash
  76 + assert @repository.errors.empty?
  77 + assert_response :redirect
  78 + end
  79 +
  80 + should 'not update a repository' do
  81 + @repository.errors = [Exception.new]
  82 + Kalibro::Repository.expects(:new).returns(@repository)
  83 + @repository.expects(:save).with(@content.project_id).returns(false)
  84 + get :update, :profile => @profile.identifier, :id => @content.id, :repository => @repository_hash
  85 + assert !@repository.errors.empty?
  86 + assert_response :redirect
  87 + end
  88 +
  89 + should 'show a repository' do
  90 + Kalibro::Repository.expects(:repositories_of).with(@content.project_id).returns([@repository])
  91 + Kalibro::Configuration.expects(:configuration_of).with(@repository.id).returns(@configuration)
  92 +
  93 + assert_equal @content.name, assigns(:project_name)
  94 + assert_equal @repository, assigns(:repository)
  95 + @configuration_name = Kalibro::Configuration.find(@repository.configuration_id).name
  96 + @processing = processing(@repository.id)
  97 + end
48 98
49 end 99 end