Exemple #1
0
        public async Task GetHotelTypeByNamec_WithExistentName_ShouldReturnCorrectResult()
        {
            var errorMessagePrefix = "HotelsService GetHotelByName() method does not work properly.";

            // Arrange
            MapperInitializer.InitializeMapper();
            var context         = HotelDbContextInMemoryFactory.InitializeContext();
            var hotelRepository = new EfDeletableEntityRepository <HotelData>(context);
            var hotelsService   = this.GetHotelsService(hotelRepository);
            var seeder          = new HotelsServiceTestsSeeder();
            await seeder.SeedHotelTypeAsync(context);

            var hotelName = hotelRepository.All().First().Name;

            // Act
            var actualResult   = hotelsService.GetHotelByName(hotelName);
            var expectedResult = await hotelRepository
                                 .All()
                                 .SingleOrDefaultAsync(x => x.Name == hotelName);

            // Assert
            Assert.True(expectedResult.Name == actualResult.Name, errorMessagePrefix + " " + "Name is not returned properly.");
            Assert.True(expectedResult.Address == actualResult.Address, errorMessagePrefix + " " + "Address is not returned properly.");
            Assert.True(expectedResult.UniqueIdentifier == actualResult.UniqueIdentifier, errorMessagePrefix + " " + "UniqueIdentifier is not returned properly.");
            Assert.True(expectedResult.Owner == actualResult.Owner, errorMessagePrefix + " " + "Owner is not returned properly.");
            Assert.True(expectedResult.Manager == actualResult.Manager, errorMessagePrefix + " " + "Manager is not returned properly.");
            Assert.True(expectedResult.PhoneNumber == actualResult.PhoneNumber, errorMessagePrefix + " " + "Phone number is not returned properly.");
        }
        public async Task EditAsync_ShouldWorkCorrectly()
        {
            // Arrange
            var context = ApplicationDbContextInMemoryFactory.InitializeContext();
            var seeder  = new HotelsServiceTestsSeeder();
            await seeder.SeedHotelAsync(context);

            var hotelRepository = new EfDeletableEntityRepository <Hotel>(context);

            var service = new HotelsService(hotelRepository);
            var hotel   = hotelRepository.All().First();
            var model   = new HotelViewModel
            {
                Id                     = hotel.Id,
                Name                   = hotel.Name,
                ImageUrl               = hotel.ImageUrl,
                Description            = hotel.Description,
                Address                = hotel.Address,
                DestinationId          = hotel.DestinationId,
                PricePerNightPerPerson = hotel.PricePerNightPerPerson,
                Stars                  = hotel.Stars,
                AvailableRooms         = hotel.AvailableRooms,
                FeedingType            = hotel.FeedingType,
                ReservationType        = hotel.ReservationType,
            };

            model.Name     = "EditedHotelName";
            model.ImageUrl = "EditedImageUrl";
            model.PricePerNightPerPerson = 50;
            model.ReservationType        = ReservationType.Hotel;
            model.Description            = "EditedDescription";
            model.Address        = "EditedAddress";
            model.DestinationId  = 1;
            model.Stars          = 1;
            model.AvailableRooms = 2;
            model.FeedingType    = FeedingType.HalfBoard;

            // Act
            await service.EditAsync(model.Id, model);

            var actualResult   = hotelRepository.All().First();
            var expectedResult = model;

            // Assert
            Assert.True(expectedResult.Name == actualResult.Name);
            Assert.True(expectedResult.ImageUrl == actualResult.ImageUrl);
            Assert.True(expectedResult.Description == actualResult.Description);
            Assert.True(expectedResult.ReservationType == actualResult.ReservationType);
            Assert.True(expectedResult.PricePerNightPerPerson == actualResult.PricePerNightPerPerson);
            Assert.True(expectedResult.Address == actualResult.Address);
            Assert.True(expectedResult.AvailableRooms == actualResult.AvailableRooms);
            Assert.True(expectedResult.Stars == actualResult.Stars);
            Assert.True(expectedResult.FeedingType == actualResult.FeedingType);
            Assert.True(expectedResult.DestinationId == actualResult.DestinationId);
        }
        public async Task IsExistingMethod_ShouldReturnFalseIfFlightNotExists()
        {
            // Arrange
            var context = ApplicationDbContextInMemoryFactory.InitializeContext();
            var seeder  = new HotelsServiceTestsSeeder();
            await seeder.SeedHotelAsync(context);

            var hotelRepository = new EfDeletableEntityRepository <Hotel>(context);

            var service = new HotelsService(hotelRepository);

            // Act
            var actualResult   = service.Exists(2);
            var expectedResult = false;

            // Assert
            Assert.True(actualResult == expectedResult);
        }
        public async Task DeleteAsync_ShouldSuccessfullyDelete()
        {
            // Arrange
            var context = ApplicationDbContextInMemoryFactory.InitializeContext();
            var seeder  = new HotelsServiceTestsSeeder();
            await seeder.SeedHotelAsync(context);

            var hotelRepository = new EfDeletableEntityRepository <Hotel>(context);

            var service = new HotelsService(hotelRepository);
            var hotelId = hotelRepository.All().First().Id;

            // Act
            var hotelsCount = hotelRepository.All().Count();
            await service.DeleteAsync(hotelId);

            var actualResult   = hotelRepository.All().Count();
            var expectedResult = hotelsCount - 1;

            // Assert
            Assert.True(actualResult == expectedResult);
        }