예제 #1
0
        public void SetupTests()
        {
            var configuration = new HttpConfiguration();

            var carsJson = GetInputFile("Cars.json").ReadToEnd();
            var cars = JsonConvert.DeserializeObject<List<Car>>(carsJson);
            CarRepository = new FakeCarRepository(cars);

            var categoriesJson = GetInputFile("Categories.json").ReadToEnd();
            var categories =
                JsonConvert
                    .DeserializeObject<List<CarCategory>>(categoriesJson);
            CarCategoryRepository = new FakeCarCategoryRepository(categories);

            var citiesJson = GetInputFile("Cities.json").ReadToEnd();
            var cities = JsonConvert.DeserializeObject<List<City>>(citiesJson);
            CityRepository = new FakeCityRepository(cities);

            CarService = new CarService(CarRepository, 
                                        CarCategoryRepository,
                                        CityRepository);

            Controller = new CarsController(CarService);
            Controller.Configuration = configuration;
            TestStartupConfiguration.HttpConfiguration = configuration;
            TestStartupConfiguration.CarRepository = CarRepository;
            TestStartupConfiguration.CarService = CarService;
        }
        public void GetPoi_PoiDoesNotExist_ReturnNotFoundResult()
        {
            var city = CityPoiItemBuilder.GenerateCity();

            FakeCityRepository.CityExists(city.Id).Returns(true);


            var result = PoiController.GetPointOfInterest(city.Id, BadId);


            result.Should().BeOfType <NotFoundResult>();
        }
        public void GetPoiList_NoPoiFound_ReturnObjectNotFound()
        {
            //Arrange
            var city = CityPoiItemBuilder.GenerateCity();

            city.PointsOfInterest = null;
            FakeCityRepository.GetPointsOfInterestForCity(city.Id).Returns(city.PointsOfInterest);

            //Action
            var result = PoiController.GetPointsOfInterestForCity(city.Id);

            // Assert
            result.Should().BeOfType <NotFoundResult>();
        }
        public void Delete_PoiIsNotInRepository_ReturnsNotFound()
        {
            const int badId = 0;
            //Arrange
            var city = CityPoiItemBuilder.GenerateCity();

            FakeCityRepository.CityExists(city.Id).Returns(true);
            FakeCityRepository.GetCity(city.Id, true).Returns(city);

            //Action
            var result = PoiController.DeletePointOfIntetest(city.Id, badId);

            // Assert
            result.Should().BeOfType <NotFoundResult>();
        }
예제 #5
0
        public void UpdatePointOfInterest_PoiFound_CallsUpdateOnRepository()
        {
            var city = CityPoiItemBuilder.GenerateCity();
            var poi  = CityPoiItemBuilder.GeneratePointOfInterest();

            city.PointsOfInterest.Add(poi);
            poi.CityId = city.Id;
            var poiDto = DtoMapper.PoiToPoiDto(poi);

            FakeCityRepository.GetCity(city.Id, IncludePointsOfInterest).Returns(city);

            var result = PoiController.UpdatePointOfInterest(poi.Id, poiDto);

            result.Should().BeOfType <NoContentResult>();
        }
        public void Delete_ItemIsInRepository_ReturnNoContentResult()
        {
            //Arrange
            var city = CityPoiItemBuilder.GenerateCity();
            var poi  = city.PointsOfInterest.First();

            FakeCityRepository.CityExists(city.Id).Returns(true);
            FakeCityRepository.GetPointOfInterestForCity(city.Id, poi.Id).Returns(poi);
            FakeCityRepository.GetCity(city.Id, true).Returns(city);


            //Action
            var result = PoiController.DeletePointOfIntetest(city.Id, city.PointsOfInterest.First().Id);


            // Assert
            result.Should().BeOfType <NoContentResult>();
        }
        public void Delete_CityAndPoiIsInRepository_CallDeletePoiInRepository()
        {
            //Arrange
            var city = CityPoiItemBuilder.GenerateCity();
            var poi  = city.PointsOfInterest.First();

            FakeCityRepository.GetCity(city.Id, true).Returns(city);
            FakeCityRepository.GetPointOfInterestForCity(city.Id, poi.Id).Returns(poi);
            FakeCityRepository.CityExists(city.Id).Returns(true);


            //Action
            PoiController.DeletePointOfIntetest(city.Id, poi.Id);


            // Assert
            FakeCityRepository.Received().DeletePointOfInterest(city.PointsOfInterest.First());
        }
        public void GetCity_ItemExistAndPOIisNotRequested_ReturnCityWithNoPOIDTO()
        {
            var city    = CityPoiItemBuilder.GenerateCity();
            var cityDto = new CityWithNoPoidto
            {
                CityId     = city.Id,
                Name       = city.Name,
                Country    = city.Country,
                Population = city.Population
            };

            FakeCityRepository.GetCity(city.Id, false).Returns(city);


            var result = CityPoiController.GetCity(city.Id, false);


            result.Should().BeOfType <ObjectResult>().Which.Value.ShouldBeEquivalentTo(cityDto);
        }
        public void GetPOIList_CityExist_ReturnPOIList()
        {
            //Arrange
            var city = CityPoiItemBuilder.GenerateCity();

            FakeCityRepository.GetPointsOfInterestForCity(city.Id).Returns(city.PointsOfInterest);
            FakeCityRepository.CityExists(city.Id).Returns(true);

            var poiDto = new PointsOfInterestDto
            {
                PoiList = city.PointsOfInterest
            };

            //Action
            var result = PoiController.GetPointsOfInterestForCity(city.Id);


            // Assert
            result.Should().BeOfType <ObjectResult>().Which.Value.ShouldBeEquivalentTo(poiDto);
        }
예제 #10
0
        public void GetCities_CititesExist_ReturnCityDtos()
        {
            //Arrange
            const int listLength = 10;
            var       cities     = CityPoiItemBuilder.GenerateCityList(listLength);
            var       dtoList    = cities.Select(city => new CityWithNoPoidto
            {
                CityId     = city.Id,
                Name       = city.Name,
                Country    = city.Country,
                Population = city.Population
            }).ToList();

            FakeCityRepository.GetCities().Returns(cities);


            //Action
            var result = CityPoiController.GetAll();


            // Assert
            result.ShouldBeEquivalentTo(dtoList);
        }
        public void GetPoi_PoiExist_ReturnPointOfInterestDTO()
        {
            var city   = CityPoiItemBuilder.GenerateCity();
            var poi    = city.PointsOfInterest.First();
            var poiDto = new PointOfInterestDto
            {
                CityId      = poi.CityId,
                Name        = poi.Name,
                Address     = poi.Address,
                Description = poi.Description,
                Id          = poi.Id,
                Latitude    = poi.Latitude,
                Longitude   = poi.Longitude
            };

            FakeCityRepository.GetPointOfInterestForCity(city.Id, poi.Id).Returns(poi);
            FakeCityRepository.CityExists(city.Id).Returns(true);


            var result = PoiController.GetPointOfInterest(city.Id, poi.Id);


            result.Should().BeOfType <ObjectResult>().Which.Value.ShouldBeEquivalentTo(poiDto);
        }
예제 #12
0
        public void SetupTests()
        {
            //initiating testin configurations / connections
            var configuration = new HttpConfiguration();

            var carsJson = GetInputFile("Cars.json").ReadToEnd();
            var cars     = JsonConvert.DeserializeObject <List <Car> >(carsJson);

            CarRepository = new FakeCarRepository(cars);

            var categoriesJson = GetInputFile("Categories.json").ReadToEnd();
            var categories     =
                JsonConvert
                .DeserializeObject <List <CarCategory> >(categoriesJson);

            CarCategoryRepository = new FakeCarCategoryRepository(categories);

            var citiesJson = GetInputFile("Cities.json").ReadToEnd();
            var cities     = JsonConvert.DeserializeObject <List <City> >(citiesJson);

            CityRepository = new FakeCityRepository(cities);

            var bookingsJson = GetInputFile("Bookings.json").ReadToEnd();
            var bookings     =
                JsonConvert.DeserializeObject <List <Booking> >(bookingsJson);

            BookingRepository = new FakeBookingRepository(bookings);

            TransactionHistoryRepository =
                new FakeTransactionHistoryRepository(
                    new List <TransactionHistory>());
            UserRepository          = new FakeUserRepository();
            RegistrationRepository  = new FakeRegistrationRepository();
            PaymentMethodRepository =
                new FakePaymentMethodRepository(
                    new List <PaymentMethod>()
            {
                new PaymentMethod
                {
                    AccountID             = 1,
                    CardName              = "Visa",
                    CardNumber            = "123456789",
                    CardVerificationValue = "551",
                    ExpiryMonth           = 11,
                    ExpiryYear            = 2020
                }
            });         //todo make this

            BookingService = new BookingService(
                BookingRepository,
                CarRepository,
                UserRepository,
                CarCategoryRepository,
                CityRepository,
                TransactionHistoryRepository,
                PaymentMethodRepository
                );


            Controller = new BookingsController(BookingService);
            Controller.Configuration = configuration;
            TestStartupConfiguration.HttpConfiguration     = configuration;
            TestStartupConfiguration.UserRepository        = UserRepository;
            TestStartupConfiguration.BookingRepository     = BookingRepository;
            TestStartupConfiguration.CityRepository        = CityRepository;
            TestStartupConfiguration.CarCategoryRepository =
                CarCategoryRepository;
            TestStartupConfiguration.RegistrationRepository =
                RegistrationRepository;
            TestStartupConfiguration.TransactionHistoryRepository =
                TransactionHistoryRepository;
            TestStartupConfiguration.CarRepository  = CarRepository;
            TestStartupConfiguration.BookingService = BookingService;
        }