diff --git a/plugins/mezuro/lib/mezuro_plugin/project_content.rb b/plugins/mezuro/lib/mezuro_plugin/project_content.rb index 82c8cd2..f847a67 100644 --- a/plugins/mezuro/lib/mezuro_plugin/project_content.rb +++ b/plugins/mezuro/lib/mezuro_plugin/project_content.rb @@ -14,7 +14,17 @@ class MezuroPlugin::ProjectContent < Article include ActionView::Helpers::TagHelper def to_html(options = {}) lambda do - render :file => 'content_viewer/show_project.rhtml' + + render :file => 'content_viewer/show_project.rhtml', :locals => { :project => project_kalibro, :error_kalibro => error_kalibro } + end + end + + def rescue_error_kalibro + error_kalibro = false + begin + project_kalibro = project + rescue + error_kalibro = true end end diff --git a/plugins/mezuro/test/unit/mezuro_plugin/project_content_test.rb b/plugins/mezuro/test/unit/mezuro_plugin/project_content_test.rb index 7202674..730f6c1 100644 --- a/plugins/mezuro/test/unit/mezuro_plugin/project_content_test.rb +++ b/plugins/mezuro/test/unit/mezuro_plugin/project_content_test.rb @@ -14,15 +14,6 @@ class ProjectContentTest < ActiveSupport::TestCase @content.repository_url = @project.repository.address @content.configuration_name = @project.configuration_name @content.periodicity_in_days = 1 - - @content2 = MezuroPlugin::ProjectContent.new - @content2.name = @content.name - @content2.license = @project.license - @content2.description = @project.description - @content2.repository_type = @project.repository.type - @content2.repository_url = @project.repository.address - @content2.configuration_name = @project.configuration_name - @content2.periodicity_in_days = 1 end should 'be an article' do @@ -40,6 +31,11 @@ class ProjectContentTest < ActiveSupport::TestCase should 'have an html view' do assert_not_nil @content.to_html end + + should 'rescue error when project doesnt exist in kalibro' do + MezuroPlugin::ProjectContent.expects(:project).returns(create_project_error) + assert_equal true, @content.rescue_error_kalibro + end should 'get project from service' do Kalibro::Client::ProjectClient.expects(:project).with(@content.name).returns(@project) @@ -107,6 +103,7 @@ returns(module_result) end private + def mock_project_client Kalibro::Client::ProjectClient.expects(:project).with(@content.name).returns(@project) end @@ -117,4 +114,8 @@ returns(module_result) project_result end + def create_project_error + raise "Error on Kalibro" + end + end diff --git a/plugins/mezuro/views/content_viewer/show_project.rhtml b/plugins/mezuro/views/content_viewer/show_project.rhtml index 1e83de7..a546211 100644 --- a/plugins/mezuro/views/content_viewer/show_project.rhtml +++ b/plugins/mezuro/views/content_viewer/show_project.rhtml @@ -1,6 +1,8 @@ - -<% @project = @page.project %> +<% if error_kalibro %> + Projeto nao existe TODO: Perguntar oa usuário se deseja excluir o projeto do Noosfero +<% else %> +<% @project = project %> @@ -43,3 +45,4 @@
+<% end %> -- libgit2 0.21.2
<%= _('Name') %>