summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2014-03-21 22:14:45 -0600
committermo khan <mo@mokhan.ca>2014-03-21 22:14:45 -0600
commit39b8d5d0afe845842b66f6ebb2d94b29c8dfc274 (patch)
tree26f9da9a453049f492e8af87d80b5c90f73a9a9a
parent1786b0d22b600d7e06a749777b91b0f496adeb06 (diff)
add specs for application controller.
-rw-r--r--lib/presentation/application_controller.rb14
-rw-r--r--lib/presentation/builders/menu_bar_builder.rb5
-rw-r--r--lib/presentation/windows/shell_view.rb2
-rw-r--r--spec/presentation/application_controller_spec.rb17
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