public void ShouldShowEmptyTopicFormOnLoadWithNoId()
 {
     var view = _repository.DynamicMock<ITopicFormView>();
     var provider = _repository.DynamicMock<ITopicProvider>();
     var loader = default(IEventRaiser);
     var id = 0;
     var data = new TopicInput();
     With.Mocks(_repository).
         ExpectingInSameOrder(() =>
                                  {
                                      view.Load += null;
                                      loader = LastCall.IgnoreArguments().GetEventRaiser();
                                      Expect.Call(view.IsPostBack).Return(false);
                                      Expect.Call(view.CurrentId).Return(id).Repeat.Any();
                                      Expect.Call(view.Topic = data);
                                      LastCall.IgnoreArguments();
                                      SetupResult.For(view.Topic).Return(data);
                                  }).
         Verify(() =>
                    {
                        new TopicFormPresenter(view, provider);
                        loader.Raise(null, new EventArgs());
                        Assert.IsNotNull(view.Topic);
                        Assert.AreEqual(data.Title, view.Topic.Title);
                    });
 }
 public void ShouldGoToShowTopicOnCreateWithNoId()
 {
     var view = _repository.DynamicMock<ITopicFormView>();
     var provider = _repository.DynamicMock<ITopicProvider>();
     var loader = default(IEventRaiser);
     var creator = default(IEventRaiser);
     var input = new TopicInput
                     {
                         ForumId = 1423,
                         Title = "New Topic",
                         Body = "New topic body",
                         Sticky = false
                     };
     var data = new TopicMapper().FromInput(input);
     var newId = 321;
     With.Mocks(_repository).
         ExpectingInSameOrder(() =>
                                  {
                                      view.Load += null;
                                      loader = LastCall.IgnoreArguments().GetEventRaiser();
                                      view.Create += null;
                                      creator = LastCall.IgnoreArguments().GetEventRaiser();
                                      Expect.Call(view.IsPostBack).Return(true);
                                      Expect.Call(view.IsValid).Return(true);
                                      Expect.Call(view.Topic).Return(input);
                                      Expect.Call(provider.Create(data)).IgnoreArguments().Return(newId);
                                      Expect.Call(() => view.GoToShowTopic(newId));
                                  }).
         Verify(() =>
                    {
                        new TopicFormPresenter(view, provider);
                        loader.Raise(null, new EventArgs());
                        creator.Raise(null, new EventArgs());
                    });
 }
 public void ShouldMapTopicEntityFromInput()
 {
     // Arrange
     var input = new TopicInput
                     {
                         Id = 1423, 
                         ForumId = 1411, 
                         Sticky = true, 
                         Title = "FromInput name",
                         Body = "FromInput body"
                     };
     // Act
     var data = new TopicMapper().FromInput(input);
     // Assert
     Assert.AreEqual(input.Id, data.Id);
     Assert.AreEqual(input.ForumId, data.Forum.Id);
     Assert.AreEqual(input.Sticky, data.Sticky);
     Assert.AreEqual(input.Title, data.Title);
     Assert.AreEqual(input.Body, data.Body);
 }