From b08a3f7ef3cc1eab2be5400c452c22b41a4282a5 Mon Sep 17 00:00:00 2001 From: Eric Davis Date: Wed, 7 Apr 2010 08:58:11 -0700 Subject: [PATCH] Refactor: Remove Middle Man and use the KanbanPanes directly. --- app/models/kanban.rb | 72 ++++++--------------- test/test_helper.rb | 2 +- test/unit/kanban_pane/backlog_pane_test.rb | 11 ++++ test/unit/kanban_pane/canceled_pane_test.rb | 11 ++++ test/unit/kanban_pane/finished_pane_test.rb | 11 ++++ test/unit/kanban_pane/incoming_pane_test.rb | 11 ++++ test/unit/kanban_pane/quick_pane_test.rb | 11 ++++ test/unit/kanban_test.rb | 35 ---------- 8 files changed, 75 insertions(+), 89 deletions(-) create mode 100644 test/unit/kanban_pane/backlog_pane_test.rb create mode 100644 test/unit/kanban_pane/canceled_pane_test.rb create mode 100644 test/unit/kanban_pane/finished_pane_test.rb create mode 100644 test/unit/kanban_pane/incoming_pane_test.rb create mode 100644 test/unit/kanban_pane/quick_pane_test.rb diff --git a/app/models/kanban.rb b/app/models/kanban.rb index 8690b48..982254b 100644 --- a/app/models/kanban.rb +++ b/app/models/kanban.rb @@ -1,4 +1,6 @@ class Kanban + attr_reader :incoming_pane, :backlog_pane, :quick_pane, :canceled_pane, :finished_pane, :active_pane, :testing_pane + attr_accessor :incoming_issues attr_accessor :quick_issues attr_accessor :backlog_issues @@ -10,6 +12,16 @@ class Kanban attr_accessor :settings attr_accessor :users + def initialize + @incoming_pane = KanbanPane::IncomingPane.new + @backlog_pane = KanbanPane::BacklogPane.new + @quick_pane = KanbanPane::QuickPane.new + @canceled_pane = KanbanPane::CanceledPane.new + @finished_pane = KanbanPane::FinishedPane.new + @active_pane = KanbanPane::ActivePane.new + @testing_pane = KanbanPane::TestingPane.new + end + def self.non_kanban_issues_panes ["incoming","backlog", "quick","finished","canceled"] end @@ -30,37 +42,17 @@ def self.find kanban = Kanban.new kanban.settings = Setting.plugin_redmine_kanban kanban.users = kanban.get_users - kanban.incoming_issues = kanban.get_incoming_issues - kanban.quick_issues = kanban.get_quick_issues - kanban.backlog_issues = kanban.get_backlog_issues(kanban.quick_issues.to_a.flatten.collect(&:id)) + kanban.incoming_issues = kanban.incoming_pane.get_issues + kanban.quick_issues = kanban.quick_pane.get_issues + kanban.backlog_issues = kanban.backlog_pane.get_issues(:exclude_ids => kanban.quick_issue_ids) kanban.selected_issues = KanbanIssue.find_selected - kanban.active_issues = kanban.get_active - kanban.testing_issues = kanban.get_testing - kanban.finished_issues = kanban.get_finished_issues - kanban.canceled_issues = kanban.get_canceled_issues + kanban.active_issues = kanban.active_pane.get_issues(:users => kanban.users) + kanban.testing_issues = kanban.testing_pane.get_issues(:users => kanban.users) + kanban.finished_issues = kanban.finished_pane.get_issues + kanban.canceled_issues = kanban.canceled_pane.get_issues kanban end - def get_incoming_issues - get_issues_for_pane(:incoming) - end - - def get_backlog_issues(exclude_ids=[]) - get_issues_for_pane(:backlog, :exclude_ids => exclude_ids) - end - - def get_quick_issues - get_issues_for_pane(:quick) - end - - def get_finished_issues - get_issues_for_pane(:finished) - end - - def get_canceled_issues - get_issues_for_pane(:canceled) - end - def get_users role = Role.find_by_id(@settings["staff_role"]) @users = role.members.collect(&:user).uniq.compact.sort if role @@ -69,14 +61,6 @@ def get_users @users << UnknownUser.instance @users end - - def get_active - KanbanPane::ActivePane.new.get_issues(:users => @users) - end - - def get_testing - KanbanPane::TestingPane.new.get_issues(:users => @users) - end def quick_issue_ids return @quick_issues.collect {|ary| ary[1] }.flatten.collect(&:id) @@ -177,22 +161,4 @@ def group_by_priority_position(issues) a[0].position <=> b[0].position } end - - def get_issues_for_pane(pane, options = {}) - case pane - when :finished - KanbanPane::FinishedPane.new.get_issues(options) - when :canceled - KanbanPane::CanceledPane.new.get_issues(options) - when :quick - KanbanPane::QuickPane.new.get_issues(options) - when :backlog - KanbanPane::BacklogPane.new.get_issues(options) - when :incoming - KanbanPane::IncomingPane.new.get_issues(options) - else - return [[]] - end - - end end diff --git a/test/test_helper.rb b/test/test_helper.rb index 8f91d07..bf8f0d9 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -357,7 +357,7 @@ def self.should_allow_state_change_from(starting_state, options = {:to => nil, : def self.should_not_raise_an_exception_if_the_settings_are_missing(&block) should "not raise an exception if the settings are missing" do - @kanban = Kanban.new + Setting.plugin_redmine_kanban = {} assert_nothing_thrown do block.call diff --git a/test/unit/kanban_pane/backlog_pane_test.rb b/test/unit/kanban_pane/backlog_pane_test.rb new file mode 100644 index 0000000..0c6c0c9 --- /dev/null +++ b/test/unit/kanban_pane/backlog_pane_test.rb @@ -0,0 +1,11 @@ +require File.dirname(__FILE__) + '/../../test_helper' + +class KanbanPane::BacklogPaneTest < ActiveSupport::TestCase + + context "#get_issues" do + should_not_raise_an_exception_if_the_settings_are_missing do + KanbanPane::BacklogPane.new.get_issues + end + end + +end diff --git a/test/unit/kanban_pane/canceled_pane_test.rb b/test/unit/kanban_pane/canceled_pane_test.rb new file mode 100644 index 0000000..a2f34f1 --- /dev/null +++ b/test/unit/kanban_pane/canceled_pane_test.rb @@ -0,0 +1,11 @@ +require File.dirname(__FILE__) + '/../../test_helper' + +class KanbanPane::CanceledPaneTest < ActiveSupport::TestCase + + context "#get_issues" do + should_not_raise_an_exception_if_the_settings_are_missing do + KanbanPane::CanceledPane.new.get_issues + end + end + +end diff --git a/test/unit/kanban_pane/finished_pane_test.rb b/test/unit/kanban_pane/finished_pane_test.rb new file mode 100644 index 0000000..c692835 --- /dev/null +++ b/test/unit/kanban_pane/finished_pane_test.rb @@ -0,0 +1,11 @@ +require File.dirname(__FILE__) + '/../../test_helper' + +class KanbanPane::FinishedPaneTest < ActiveSupport::TestCase + + context "#get_issues" do + should_not_raise_an_exception_if_the_settings_are_missing do + KanbanPane::FinishedPane.new.get_issues + end + end + +end diff --git a/test/unit/kanban_pane/incoming_pane_test.rb b/test/unit/kanban_pane/incoming_pane_test.rb new file mode 100644 index 0000000..5c82b4f --- /dev/null +++ b/test/unit/kanban_pane/incoming_pane_test.rb @@ -0,0 +1,11 @@ +require File.dirname(__FILE__) + '/../../test_helper' + +class KanbanPane::IncomingPaneTest < ActiveSupport::TestCase + + context "#get_issues" do + should_not_raise_an_exception_if_the_settings_are_missing do + KanbanPane::IncomingPane.new.get_issues + end + end + +end diff --git a/test/unit/kanban_pane/quick_pane_test.rb b/test/unit/kanban_pane/quick_pane_test.rb new file mode 100644 index 0000000..9d6785c --- /dev/null +++ b/test/unit/kanban_pane/quick_pane_test.rb @@ -0,0 +1,11 @@ +require File.dirname(__FILE__) + '/../../test_helper' + +class KanbanPane::QuickPaneTest < ActiveSupport::TestCase + + context "#get_issues" do + should_not_raise_an_exception_if_the_settings_are_missing do + KanbanPane::QuickPane.new.get_issues + end + end + +end diff --git a/test/unit/kanban_test.rb b/test/unit/kanban_test.rb index 95c8c6d..b9a3d72 100644 --- a/test/unit/kanban_test.rb +++ b/test/unit/kanban_test.rb @@ -360,39 +360,4 @@ def shared_setup end end - context "#get_incoming_issues" do - should_not_raise_an_exception_if_the_settings_are_missing do - @kanban = Kanban.new - @kanban.get_incoming_issues - end - end - - context "#get_backlog_issues" do - should_not_raise_an_exception_if_the_settings_are_missing do - @kanban = Kanban.new - @kanban.get_backlog_issues - end - end - - context "#get_quick_issues" do - should_not_raise_an_exception_if_the_settings_are_missing do - @kanban = Kanban.new - @kanban.get_quick_issues - end - end - - context "#get_finished_issues" do - should_not_raise_an_exception_if_the_settings_are_missing do - @kanban = Kanban.new - @kanban.get_finished_issues - end - end - - context "#get_canceled_issues" do - should_not_raise_an_exception_if_the_settings_are_missing do - @kanban = Kanban.new - @kanban.get_canceled_issues - end - end - end