public void CreateMissingAuthorDoesNotThrowException()
        {
            // arrange
            var service        = new Mock <ICommentService>();
            var subtextContext = new Mock <ISubtextContext>();

            FeedbackItem comment = null;

            service.Setup(s => s.Create(It.IsAny <FeedbackItem>(), It.IsAny <bool>())).Callback <FeedbackItem, bool>((f, b) => comment = f);
            var          controller = new CommentApiController(subtextContext.Object, service.Object);
            const string xmlText    = @"<?xml version=""1.0""?>
                            <item>
                                <title>Haack's Wild Ride</title>
                                <description>This tests the CommentAPI</description>
                                <link>http://subtextproject.com/</link>
                            </item>";
            var          doc        = new XmlDocument();

            doc.LoadXml(xmlText);

            // act
            controller.Create(123, doc);

            // assert
            Assert.IsNotNull(comment);
            Assert.AreEqual("Haack's Wild Ride", comment.Title);
            Assert.AreEqual("This tests the CommentAPI", comment.Body);
            Assert.AreEqual(string.Empty, comment.Author);
            Assert.AreEqual("http://subtextproject.com/", comment.SourceUrl.ToString());
        }
        public void CreateWithNullXmlThrowsInvalidOperationException()
        {
            // arrange
            ICommentService service        = new Mock <ICommentService>().Object;
            ISubtextContext subtextContext = new Mock <ISubtextContext>().Object;
            var             controller     = new CommentApiController(subtextContext, service);

            // act, assert
            UnitTestHelper.AssertThrowsArgumentNullException(() => controller.Create(1, null));
        }