public IStartupView CreateStartupView()
 {
     var presenter = new OrderListPresenter(_orderFactory, _orderListDataBinder, this);
     var view = new OrderListForm(presenter);
     presenter.View = view;
     return view;
 }
 public void Constructor_throws_exception_with_null_viewFactory()
 {
     //arrange
     var orderFactory = MockRepository.GenerateStub<IOrderFactory>();
     var dataBinder = MockRepository.GenerateStub<IOrderListDataBinder>();
     //act, assert
     var target = new OrderListPresenter(orderFactory, dataBinder, null);
 }
 public void OnDeleteButtonClick_throws_exception_with_null_View()
 {
     //arrange
     var orderFactory = MockRepository.GenerateStub<IOrderFactory>();
     var dataBinder = MockRepository.GenerateStub<IOrderListDataBinder>();
     var viewFactory = MockRepository.GenerateStub<IViewFactory>();
     var target = new OrderListPresenter(orderFactory, dataBinder, viewFactory);
     //act, assert
     target.OnDeleteButtonClick();
 }
 public void OnDeleteButtonClick_when_user_answers_no_to_prompt_nothing_else_happens()
 {
     //arrange
     var orderFactory = MockRepository.GenerateMock<IOrderFactory>();
     var dataBinder = MockRepository.GenerateMock<IOrderListDataBinder>();
     var viewFactory = MockRepository.GenerateStub<IViewFactory>();
     var confirmView = MockRepository.GenerateMock<IMessageBoxView>();
     var view = MockRepository.GenerateMock<IOrderListView>();
     var target = new OrderListPresenter(orderFactory, dataBinder, viewFactory);
     target.View = view;
     viewFactory.Expect(x => x.CreateMessageBoxView())
         .Return(confirmView);
     confirmView.Expect(x => x.ShowYesNo(Arg<string>.Is.Anything, Arg<string>.Is.Anything))
         .Return(false);
     //act
     target.OnDeleteButtonClick();
     //assert
     viewFactory.VerifyAllExpectations();
     confirmView.VerifyAllExpectations();
 }
 public void OnDeleteButtonClick_when_user_answers_yes_to_prompt_deletes_selected_order_from_business_layer_and_binds_UI()
 {
     //arrange
     var orderFactory = MockRepository.GenerateMock<IOrderFactory>();
     var dataBinder = MockRepository.GenerateMock<IOrderListDataBinder>();
     var viewFactory = MockRepository.GenerateStub<IViewFactory>();
     var confirmView = MockRepository.GenerateMock<IMessageBoxView>();
     var view = MockRepository.GenerateMock<IOrderListView>();
     var selectedOrder = MockRepository.GenerateStub<IOrderInfo>();
     var target = new OrderListPresenter(orderFactory, dataBinder, viewFactory);
     target.View = view;
     viewFactory.Expect(x => x.CreateMessageBoxView())
         .Return(confirmView);
     confirmView.Expect(x => x.ShowYesNo(Arg<string>.Is.Anything, Arg<string>.Is.Anything))
         .Return(true);
     view.Expect(x => x.SelectedOrder)
         .Return(selectedOrder);
     selectedOrder.Stub(x => x.Id)
         .Return(1);
     orderFactory.Expect(x => x.Delete(1));
     dataBinder.Expect(x => x.BindUI(target));
     //act
     target.OnDeleteButtonClick();
     //assert
     viewFactory.VerifyAllExpectations();
     confirmView.VerifyAllExpectations();
     view.VerifyAllExpectations();
     orderFactory.VerifyAllExpectations();
     dataBinder.VerifyAllExpectations();
 }
 public void OnViewLoad_binds_UI()
 {
     //arrange
     var view = MockRepository.GenerateStub<IOrderListView>();
     var orderFactory = MockRepository.GenerateStub<IOrderFactory>();
     var dataBinder = MockRepository.GenerateMock<IOrderListDataBinder>();
     var viewFactory = MockRepository.GenerateStub<IViewFactory>();
     var target = new OrderListPresenter(orderFactory, dataBinder, viewFactory);
     target.View = view;
     dataBinder.Expect(x => x.BindUI(target));
     //act
     target.OnViewLoad();
     //assert
     dataBinder.VerifyAllExpectations();
 }
 public void OnOrdersGridCellMouseDoubleClick_fetches_selected_order_from_business_layer_and_opens_order_edit_view_and_binds_UI()
 {
     //arrange
     var orderFactory = MockRepository.GenerateMock<IOrderFactory>();
     var dataBinder = MockRepository.GenerateMock<IOrderListDataBinder>();
     var viewFactory = MockRepository.GenerateMock<IViewFactory>();
     var view = MockRepository.GenerateMock<IOrderListView>();
     var selectedOrder = MockRepository.GenerateStub<IOrderInfo>();
     var order = MockRepository.GenerateStub<IOrder>();
     var editView = MockRepository.GenerateMock<IOrderEditView>();
     var target = new OrderListPresenter(orderFactory, dataBinder, viewFactory);
     target.View = view;
     view.Expect(x => x.SelectedOrder)
         .Return(selectedOrder);
     selectedOrder.Stub(x => x.Id)
         .Return(1);
     orderFactory.Expect(x => x.Fetch(1))
         .Return(order);
     viewFactory.Expect(x => x.CreateOrderEditView(order))
         .Return(editView);
     editView.Expect(x => x.Show());
     dataBinder.Expect(x => x.BindUI(target));
     //act
     target.OnOrdersGridCellMouseDoubleClick();
     //assert
     view.VerifyAllExpectations();
     orderFactory.VerifyAllExpectations();
     editView.VerifyAllExpectations();
     dataBinder.VerifyAllExpectations();
 }
 public void OnNewButtonClick_creates_new_order_from_business_layer_and_opens_order_edit_view_and_binds_UI()
 {
     //arrange
     var orderFactory = MockRepository.GenerateMock<IOrderFactory>();
     var dataBinder = MockRepository.GenerateMock<IOrderListDataBinder>();
     var viewFactory = MockRepository.GenerateMock<IViewFactory>();
     var view = MockRepository.GenerateStub<IOrderListView>();
     var order = MockRepository.GenerateStub<IOrder>();
     var editView = MockRepository.GenerateMock<IOrderEditView>();
     var target = new OrderListPresenter(orderFactory, dataBinder, viewFactory);
     target.View = view;
     orderFactory.Expect(x => x.Create())
         .Return(order);
     viewFactory.Expect(x => x.CreateOrderEditView(order))
         .Return(editView);
     editView.Expect(x => x.Show());
     dataBinder.Expect(x => x.BindUI(target));
     //act
     target.OnNewButtonClick();
     //assert
     orderFactory.VerifyAllExpectations();
     viewFactory.VerifyAllExpectations();
     editView.VerifyAllExpectations();
     dataBinder.VerifyAllExpectations();
 }