public void should_post_city_in_repository_and_Created()
        {
            var target = new CityController(_repository, new DefaultEventBus())
            {
                Request = MocksUtils.MockRequest()
            };

            HttpResponseMessage expected = target.Request.CreateResponse(HttpStatusCode.Created);
            HttpResponseMessage actual   = target.Post(new Resources.City {
                Name = "Montreal", Country = "Canada"
            });

            Assert.AreEqual(expected.StatusCode, actual.StatusCode);
            Assert.IsTrue(_repository.All().SingleOrDefault(x => x.Name == "Montreal" && x.Country == "Canada") != null);
        }
        public void should_retrieve_all_cities_in_repository_and_OK()
        {
            var target = new CityController(_repository, new DefaultEventBus())
            {
                Request = MocksUtils.MockRequest()
            };

            IEnumerable <Resources.City> expectedContent = _repository.All().ToResource <City, Resources.City>();
            IEnumerable <Resources.City> actualContent;

            HttpResponseMessage expected = target.Request.CreateResponse(HttpStatusCode.OK, expectedContent);
            HttpResponseMessage actual   = target.GetAll();

            Assert.AreEqual(expected.StatusCode, actual.StatusCode);
            Assert.IsTrue(actual.TryGetContentValue(out actualContent));
            Assert.AreEqual(expectedContent.Count(), actualContent.Count());
        }
        public void should_delete_city_in_repository_and_OK()
        {
            var target = new CityController(_repository, new DefaultEventBus())
            {
                Request = MocksUtils.MockRequest()
            };

            HttpResponseMessage expected = target.Request.CreateResponse(HttpStatusCode.OK);

            int expectedCount = _repository.All().Count() - 1;

            HttpResponseMessage actual = target.Delete(1);

            int actualCount = _repository.All().Count();

            Assert.AreEqual(expected.StatusCode, actual.StatusCode);
            Assert.AreEqual(expectedCount, actualCount);
        }