public void Do3Fluent() { var mockRepository = new MockRepository(); var view = mockRepository.StrictMock<IButtonView>(); var model = mockRepository.StrictMock<IToggleModel>(); var presenter = new ButtonPresenter(model); presenter.ConnectView(view); //IEventRaiser clicked = null; //view.Clicked += null; //clicked = LastCall.GetEventRaiser(); IEventSubscriber subscriber = mockRepository.StrictMock<IEventSubscriber>(); IWithEvents events = new WithEvents(); // This doesn't create an expectation because no method is called on subscriber!! events.Blah += subscriber.Handler; subscriber.Handler(VisibilityState.Visible); With.Mocks(mockRepository) .Expecting(delegate { Expect.Call(model.ToggleVisibility); Expect.Call(() => model.VisibilityStateChanged += null).IgnoreArguments(); Expect.Call(() => view.SetCheckedState(CheckedState.Checked)); }) .Verify(delegate { events.RaiseEvent(VisibilityState.Visible); //clicked.Raise(); }); }
public void ConstructingConnectingHandling_WithRaisingTwoEvents_Works_Fluent() { var mockRepository = new MockRepository(); var view = mockRepository.StrictMock<IButtonView>(); var model = mockRepository.StrictMock<IToggleModel>(); IEventRaiser clicked = null; IEventRaiser visibilityChanged = null; With.Mocks(mockRepository) .Expecting(delegate { visibilityChanged = Expect.Call(() => model.VisibilityStateChanged += null).IgnoreArguments().GetEventRaiser(); clicked = Expect.Call(() => view.Clicked += null).IgnoreArguments().GetEventRaiser(); Expect.Call(model.ToggleVisibility); Expect.Call(() => view.SetCheckedState(CheckedState.Checked)); }); With.Mocks(mockRepository) .Verify(delegate { var presenter = new ButtonPresenter(model); presenter.ConnectView(view); clicked.Raise(); visibilityChanged.Raise(VisibilityState.Visible); }); }
public void Do3Classic() { var mockRepository = new MockRepository(); var view = mockRepository.StrictMock<IButtonView>(); var model = mockRepository.StrictMock<IToggleModel>(); model.VisibilityStateChanged += null; IEventRaiser visibilityChanged = LastCall.GetEventRaiser(); view.Clicked += null; IEventRaiser clicked = LastCall.GetEventRaiser(); var presenter = new ButtonPresenter(model); presenter.ConnectView(view); mockRepository.BackToRecordAll(); //mockRepository.Playback(); Expect.Call(model.ToggleVisibility); Expect.Call(() => model.VisibilityStateChanged += null).IgnoreArguments(); Expect.Call(() => view.SetCheckedState(CheckedState.Checked)); mockRepository.ReplayAll(); clicked.Raise(); visibilityChanged.Raise(VisibilityState.Visible); mockRepository.VerifyAll(); }
public void ConnectingView() { var mockRepository = new MockRepository(); var view = mockRepository.StrictMock<IButtonView>(); var model = mockRepository.Stub<IToggleModel>(); var presenter = new ButtonPresenter(model); With.Mocks(mockRepository) .Expecting(delegate { Expect.Call(() => view.Clicked += null).IgnoreArguments(); }) .Verify(delegate { presenter.ConnectView(view); }); }
public void RoundtripViewToModelToView_Hiding() { var view = new Mock<IButtonView>(MockBehavior.Strict); var model = new Mock<IToggleModel>(MockBehavior.Strict); var presenter = new ButtonPresenter(model.Object); presenter.ConnectView(view.Object); // Erwartungen definieren // User-Interaktion im View -> Änderung im Model muss erfolgen model.Setup(m => m.ToggleVisibility()); // Model-Änderungs-Event -> View muss aktualisiert werden view.Setup(v => v.SetCheckedState(CheckedState.Unchecked)); // Events auslösen view.Raise(m => m.Clicked += null); model.Raise(m => m.VisibilityStateChanged += null, VisibilityState.Invisible); // Erwartungen verifizieren model.VerifyAll(); view.VerifyAll(); }
public void ConstructingConnectingHandlingWorks_Fluent2() { var mockRepository = new MockRepository(); var view = mockRepository.DynamicMock<IButtonView>(); var model = mockRepository.DynamicMock<IToggleModel>(); IEventRaiser clicked = null; With.Mocks(mockRepository) .Expecting(delegate { Expect.Call(() => model.VisibilityStateChanged += null).IgnoreArguments(); clicked = Expect.Call(() => view.Clicked += null).IgnoreArguments().GetEventRaiser(); Expect.Call(model.ToggleVisibility); }) .Verify(delegate { var presenter = new ButtonPresenter(model); presenter.ConnectView(view); clicked.Raise(); }); }
public void Do3Using() { var mockRepository = new MockRepository(); var view = mockRepository.StrictMock<IButtonView>(); var model = mockRepository.StrictMock<IToggleModel>(); model.VisibilityStateChanged += null; IEventRaiser visibilityChanged = LastCall.GetEventRaiser(); view.Clicked += null; IEventRaiser clicked = LastCall.GetEventRaiser(); //IEventRaiser raiser = new EventRaiser((IMockedObject)view, "Clicked"); //onCreateFeatureEventRaiser.Raise(_objectMock); var presenter = new ButtonPresenter(model); presenter.ConnectView(view); //mockRepository.BackToRecordAll(); //productDetailView.Raise(view => view.EditClick += null).Raise(sender, EventArgs.Empty); view.BackToRecord(); model.BackToRecord(); using (mockRepository.Record()) { var v = Expect.Call(() => model.VisibilityStateChanged += null).IgnoreArguments(); Expect.Call(model.ToggleVisibility); //Expect.Call(() => view.SetCheckedState(CheckedState.Checked)); } using (mockRepository.Playback()) { //raiser.Raise(); //view.Raise(v => v.Clicked += null); //model.Raise(m => m.VisibilityChanged += null).Raise(VisibilityState.Visible); clicked.Raise(); //visibilityChanged.Raise(VisibilityState.Visible); } }
public void Do3Fluent_A() { var mockRepository = new MockRepository(); var view = mockRepository.StrictMock<IButtonView>(); var model = mockRepository.DynamicMock<IToggleModel>(); view.Clicked += null; IEventRaiser clicked = LastCall.GetEventRaiser(); var presenter = new ButtonPresenter(model); presenter.ConnectView(view); clicked = Expect.Call(() => view.Clicked += null).IgnoreArguments().GetEventRaiser(); view.BackToRecord(); model.BackToRecord(); With.Mocks(mockRepository) .Expecting(delegate { Expect.Call(model.ToggleVisibility); //Expect.Call(() => model.VisibilityChanged += null).IgnoreArguments(); //Expect.Call(() => view.SetCheckedState(CheckedState.Checked)); }) .Verify(delegate { model.ToggleVisibility(); model.ToggleVisibility(); //events.RaiseEvent(VisibilityState.Visible); clicked.Raise(); }); }