public void PostNewBug_WhenTextIsNull_ShouldReturn400()
        {
            IBugLoggerData data = Mock.Create<IBugLoggerData>();

            Bug bug = new Bug() { Text = null };

            var server = new InMemoryHttpServer(this.inMemoryServerUrl, data);

            var response = server.Post("/api/bugs", bug);

            Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode);
        }
        public void PostArticle_WhenTitleIsEmpty_ShouldReturn400()
        {
            IArticlesData data = Mock.Create<IArticlesData>();

            Article article = new Article() { DateCreated = DateTime.Now };
            Mock.Arrange(() => data.Articles.Add(Arg.IsAny<Article>()));

            var server = new InMemoryHttpServer(this.inMemoryServerUrl, data);
            var response = server.Post("/api/articles", article);

            Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode);
        }
        public void PostArticle_WhenValid_ShouldReturn201AndLocationHeader()
        {
            IArticlesData data = Mock.Create<IArticlesData>();

            Article article = new Article() { Title = "Test", DateCreated = DateTime.Now };
            Mock.Arrange(() => data.Articles.Add(Arg.IsAny<Article>()));

            var server = new InMemoryHttpServer(this.inMemoryServerUrl, data);
            var response = server.Post("/api/articles", article);

            Assert.AreEqual(HttpStatusCode.Created, response.StatusCode);
            Assert.IsNotNull(response.Headers.Location);
        }
        public void PostNewBug_WhenTextIsValid_ShouldReturn201AndLocationHeader()
        {
            IBugLoggerData data = Mock.Create<IBugLoggerData>();

            Bug bug = GetValidBug();

            Mock.Arrange(() => data.Bugs.Add(Arg.IsAny<Bug>()));

            var server = new InMemoryHttpServer(this.inMemoryServerUrl, data);

            var response = server.Post("/api/bugs", bug);

            Assert.AreEqual(HttpStatusCode.Created, response.StatusCode);
            Assert.IsNotNull(response.Headers.Location);
        }