Commit 39b8d5d

mo khan <mo@mokhan.ca>
2014-03-22 04:14:45
add specs for application controller.
1 parent 1786b0d
Changed files (4)
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
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
 
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
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