From 929600e6e5afc62dae6d929a167a2ed5f0da9548 Mon Sep 17 00:00:00 2001 From: Carlos Morais + Paulo Meirelles Date: Fri, 10 Feb 2012 12:34:27 -0200 Subject: [PATCH] [Mezuro] Refactoring ProjectContent --- plugins/mezuro/lib/kalibro/client/module_result_client.rb | 5 +++++ plugins/mezuro/lib/kalibro/client/project_result_client.rb | 4 ++++ plugins/mezuro/lib/mezuro_plugin/project_content.rb | 7 +++---- plugins/mezuro/test/unit/mezuro_plugin/project_content_test.rb | 19 +++++++++++++++++++ 4 files changed, 31 insertions(+), 4 deletions(-) diff --git a/plugins/mezuro/lib/kalibro/client/module_result_client.rb b/plugins/mezuro/lib/kalibro/client/module_result_client.rb index e203a9e..54ff7c9 100644 --- a/plugins/mezuro/lib/kalibro/client/module_result_client.rb +++ b/plugins/mezuro/lib/kalibro/client/module_result_client.rb @@ -1,4 +1,9 @@ class Kalibro::Client::ModuleResultClient + + def self.module_result(project_content, module_name) + project_result = project_content.project_result + new.module_result(project_result.project.name, module_name, project_result.date) + end def initialize @port = Kalibro::Client::Port.new('ModuleResult') diff --git a/plugins/mezuro/lib/kalibro/client/project_result_client.rb b/plugins/mezuro/lib/kalibro/client/project_result_client.rb index f885caa..b1c4e49 100644 --- a/plugins/mezuro/lib/kalibro/client/project_result_client.rb +++ b/plugins/mezuro/lib/kalibro/client/project_result_client.rb @@ -1,5 +1,9 @@ class Kalibro::Client::ProjectResultClient + def self.last_result(project_name) + new.last_result(project_name) + end + def initialize @port = Kalibro::Client::Port.new('ProjectResult') end diff --git a/plugins/mezuro/lib/mezuro_plugin/project_content.rb b/plugins/mezuro/lib/mezuro_plugin/project_content.rb index 68188cc..b8a8d7c 100644 --- a/plugins/mezuro/lib/mezuro_plugin/project_content.rb +++ b/plugins/mezuro/lib/mezuro_plugin/project_content.rb @@ -19,16 +19,15 @@ class MezuroPlugin::ProjectContent < Article # From ProjectClient def project - Kalibro::Client::ProjectClient.project(name) + @project ||= Kalibro::Client::ProjectClient.project(name) end def project_result - @project_result ||= Kalibro::Client::ProjectResultClient.new.last_result(name) + @project_result ||= Kalibro::Client::ProjectResultClient.last_result(name) end def module_result(module_name) - @module_client ||= Kalibro::Client::ModuleResultClient.new - @module_client.module_result(name, module_name, project_result.date) + @module_client ||= Kalibro::Client::ModuleResultClient.module_result(self, module_name) end after_save :send_project_to_service 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 942a764..b4b6660 100644 --- a/plugins/mezuro/test/unit/mezuro_plugin/project_content_test.rb +++ b/plugins/mezuro/test/unit/mezuro_plugin/project_content_test.rb @@ -31,6 +31,25 @@ class ProjectContentTest < ActiveSupport::TestCase assert_not_nil @content.to_html end + should 'get project from service' do + Kalibro::Client::ProjectClient.expects(:project).with(@content.name).returns(@project) + assert_equal @project, @content.project + end + + should 'get project result from service' do + project_result = mock + Kalibro::Client::ProjectResultClient.expects(:last_result).with(@content.name).returns(project_result) + assert_equal project_result, @content.project_result + end + + should 'get module result from service' do + module_name = 'My module name' + module_result = mock + Kalibro::Client::ModuleResultClient.expects(:module_result).with(@content, module_name). + returns(module_result) + assert_equal module_result, @content.module_result(module_name) + end + should 'run send project to service on after_save callback' do @content.expects :send_project_to_service @content.run_callbacks :after_save -- libgit2 0.21.2