public void Events_raised_for_comment_and_post_actions()
{
var post = MockRepository.GenerateStub<Model.Post>();
var postComment = MockRepository.GenerateStub<Feedback>();
bool p1 = false, p2 = false, p3 = false, p4 = false;
bool c1 = false, c2 = false;
postService.CommentAdded += delegate(CommentAddedEventArgs eventArgs)
{
c1 = true;
Assert.AreEqual(postComment, eventArgs.Comment);
};
postService.CommentAdding += delegate(CommentAddingEventArgs eventArgs)
{
c2 = true;
Assert.AreEqual(postComment, eventArgs.Comment);
};
postService.PostAdding += delegate(PostAddingEventArgs eventArgs)
{
p1 = true;
Assert.AreEqual(post, eventArgs.Post);
};
postService.PostAdded += delegate(PostAddedEventArgs eventArgs)
{
p2 = true;
Assert.AreEqual(post, eventArgs.Post);
};
postService.PostRemoved += delegate(PostRemovedEventArgs eventArgs)
{
p3 = true;
Assert.AreEqual(post, eventArgs.Post);
};
postService.PostRemoving += delegate(PostRemovingEventArgs eventArgs)
{
p4 = true;
Assert.AreEqual(post, eventArgs.Post);
};
postService.AddComment(postComment);
postRepository.AssertWasCalled(x => x.SaveComment(postComment));
postService.AddPost(post);
postRepository.AssertWasCalled(x => x.SavePost(post));
postService.RemovePost(post);
postRepository.AssertWasCalled(x => x.DeletePost(post));
Assert.True(p1);
Assert.True(p2);
Assert.True(p3);
Assert.True(p4);
Assert.True(c1);
Assert.True(c2);
}