diff options
| author | mo khan <mo@mokhan.ca> | 2014-03-21 22:14:45 -0600 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2014-03-21 22:14:45 -0600 |
| commit | 39b8d5d0afe845842b66f6ebb2d94b29c8dfc274 (patch) | |
| tree | 26f9da9a453049f492e8af87d80b5c90f73a9a9a | |
| parent | 1786b0d22b600d7e06a749777b91b0f496adeb06 (diff) | |
add specs for application controller.
| -rw-r--r-- | lib/presentation/application_controller.rb | 14 | ||||
| -rw-r--r-- | lib/presentation/builders/menu_bar_builder.rb | 5 | ||||
| -rw-r--r-- | lib/presentation/windows/shell_view.rb | 2 | ||||
| -rw-r--r-- | spec/presentation/application_controller_spec.rb | 17 |
4 files changed, 26 insertions, 12 deletions
diff --git a/lib/presentation/application_controller.rb b/lib/presentation/application_controller.rb index 3ca0913..715cdd3 100644 --- a/lib/presentation/application_controller.rb +++ b/lib/presentation/application_controller.rb @@ -1,14 +1,14 @@ class ApplicationController - def initialize(container) - @container = container + def initialize(presenter_factory) + @presenter_factory = presenter_factory end def run(presenter_key) - presenter = @container.resolve(presenter_key) - view = presenter.view - view.builder = create_builder_for(presenter_key.to_s) - view.bind_to(presenter) - presenter.present + #presenter = @container.resolve(presenter_key) + #view = presenter.view + #view.builder = create_builder_for(presenter_key.to_s) + #view.bind_to(presenter) + @presenter_factory.create(presenter_key).present end private diff --git a/lib/presentation/builders/menu_bar_builder.rb b/lib/presentation/builders/menu_bar_builder.rb index ef5e26b..298e428 100644 --- a/lib/presentation/builders/menu_bar_builder.rb +++ b/lib/presentation/builders/menu_bar_builder.rb @@ -8,12 +8,9 @@ class MenuBarBuilder self end - def add_to(view) - #menu_bar = Create.menu_bar - menu_bar = view.menu_bar + def add_to(menu_bar) @menus.each do |menu| menu_bar.append(menu) end - #view.add(Create.vertical_box(menu_bar)) end end diff --git a/lib/presentation/windows/shell_view.rb b/lib/presentation/windows/shell_view.rb index b3bb703..57de773 100644 --- a/lib/presentation/windows/shell_view.rb +++ b/lib/presentation/windows/shell_view.rb @@ -25,7 +25,7 @@ class ShellView builder.connect_signals do |signal| proc { presenter.public_send(signal) } end - Build.menu_bar.with(File.menu(@event_aggregator)).add_to(self) + Build.menu_bar.with(File.menu(@event_aggregator)).add_to(@menu_bar) @window.fullscreen end diff --git a/spec/presentation/application_controller_spec.rb b/spec/presentation/application_controller_spec.rb new file mode 100644 index 0000000..56d2a91 --- /dev/null +++ b/spec/presentation/application_controller_spec.rb @@ -0,0 +1,17 @@ +require "spec_helper" + +describe ApplicationController do + let(:presenter_factory) { double } + subject { ApplicationController.new(presenter_factory) } + + describe "#run" do + it "builds a new presenter and presents it" do + presenter = double(present: true) + + presenter_factory.stub(:create).with(:stock_presenter).and_return(presenter) + + subject.run(:stock_presenter) + presenter.should have_received(:present) + end + end +end |
