public void GetComments()
 {
     CommentsController controller = new CommentsController(new InitialData());
     IEnumerable<Comment> comments = controller.GetComments();
     Assert.IsNotNull(comments);
     Assert.IsTrue(comments.Count() > 0);
 }
 public void GetComment()
 {
     CommentsController controller = new CommentsController(new InitialData());
     int id = 1;
     Comment comment = controller.GetComment(id);
     Assert.IsNotNull(comment);
     Assert.AreEqual(comment.ID, id);
 }
 public void PagingGet()
 {
     CommentsController controller = new CommentsController(new InitialData());
     List<Comment> comments = new List<Comment>(controller.GetComments());
     int pageIndex = 1;
     int pageSize = 2;
     List<Comment> commentsPage = new List<Comment>(controller.GetComments(pageIndex, pageSize));
     Assert.AreEqual(2, commentsPage.Count);
     for (int i = 0; i < commentsPage.Count; i++)
     {
         Assert.AreEqual(comments[pageIndex * pageSize + i].ID, commentsPage[i].ID);
     }
 }
 public void PostComment()
 {
     Comment comment = new Comment()
     {
         Author = "Scott",
         Email = "*****@*****.**",
         Text = "I love ASP.NET Web API!"
     };
     HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "http://localhost");
     ICommentRepository repository = new InitialData();
     CommentsController controller = new CommentsController(repository) { Request = request };
     HttpResponseMessage<Comment> response = controller.PostComment(comment);
     Assert.AreEqual(HttpStatusCode.Created, response.StatusCode);
     Assert.IsNotNull(response.Headers.Location);
     Comment postedComment = response.Content.ReadAsync().Result;
     Assert.IsTrue(repository.TryGet(postedComment.ID, out postedComment));
 }
 public void PostComment()
 {
     Comment comment = new Comment()
     {
         Author = "Dan",
         Email = "*****@*****.**",
         Text = "I love ASP.NET Web API!"
     };
     HttpConfiguration config = new HttpConfiguration();
     WebApiConfig.Register(config);
     HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "http://localhost");
     request.Properties[HttpPropertyKeys.HttpConfigurationKey] = config;
     ICommentRepository repository = new InitialData();
     CommentsController controller = new CommentsController(repository) { Request = request };
     HttpResponseMessage response = controller.PostComment(comment);
     Assert.AreEqual(HttpStatusCode.Created, response.StatusCode);
     Assert.IsNotNull(response.Headers.Location);
     Comment postedComment = response.Content.ReadAsAsync<Comment>().Result;
     Assert.IsTrue(repository.TryGet(postedComment.ID, out postedComment));
 }