Пример #1
0
        public void MakeSideBySideBookinForSameSpace()
        {
            // Arrange
            var booking_repository = new InMemoryBookingRepository();
            var response_handler   = new MakeBookingResponseHandler();
            var validator          = new BookingValidator();
            var booking_a          = new Booking {
                Id = 4, Name = "FirstName1 LastName1", Start = new DateTime(2018, 1, 1, 10, 0, 0), End = new DateTime(2018, 1, 1, 11, 0, 0), Space = new Space {
                    Name = "Boardroom"
                }
            };
            var booking_b = new Booking {
                Id = 5, Name = "FirstName1 LastName1", Start = new DateTime(2018, 1, 1, 11, 0, 0), End = new DateTime(2018, 1, 1, 12, 0, 0), Space = new Space {
                    Name = "Boardroom"
                }
            };

            var make_booking_interaction = new MakeBookingInteractor(response_handler, booking_repository, validator);

            make_booking_interaction.Booking = booking_a;

            // Act / Assert
            make_booking_interaction.Execute();

            Assert.IsTrue(response_handler.WasSuccessful);

            make_booking_interaction.Booking = booking_b;

            make_booking_interaction.Execute();

            Assert.IsTrue(response_handler.WasSuccessful);
        }
Пример #2
0
        public void Validation_Fails_When_Model_Is_Invalid()
        {
            //Arrange
            var validator = new BookingValidator();

            var invalidBookingModel = new Booking
            {
                BookingID         = 11,
                BookingStatus     = 0,
                CustomerID        = 1,
                FromDate          = null, //should fail validation
                ToDate            = "2021-05-30",
                Location          = "Esbjerg",
                BookingRessources = new List <BookingRessource> {
                    new BookingRessource
                    {
                        BookingRessourceID = 1,
                        Ressource          = new Ressource
                        {
                            RessourceID   = 2,
                            ModelNR       = 4444,
                            ItemName      = "Traktor",
                            NumberOfItems = 2
                        }
                    }
                },
                RowVersion = Encoding.ASCII.GetBytes("AAAAAAAAB9Y=")
            };
            //Act
            var result = validator.TestValidate(invalidBookingModel);

            //Assert

            result.ShouldHaveAnyValidationError();
        }
Пример #3
0
 public static BookingValidator GetBookingValidatorInstance()
 {
     if (bookingValidator == null)
     {
         bookingValidator = new BookingValidator(GetUnitOfWofkInstance());
     }
     return(bookingValidator);
 }
Пример #4
0
        public BookingController(IBookingService bookingService)
        {
            this.bookingService = bookingService;
            this.toModelMapper  = new MapperConfiguration(cfg => cfg.CreateMap <BookingDTO, BookingModel>()).CreateMapper();

            this.toDtoMapper = new MapperConfiguration(cfg => cfg.CreateMap <BookingModel, BookingDTO>()).CreateMapper();

            this.bookingValidator = new BookingValidator();
        }
Пример #5
0
 public TripServicesImpl(AccountRepository accountRepository, TripRepository tripRepository, BookingRepository bookingRepository, AccountValidator accountValidator, TripValidator tripValidator, BookingValidator bookingValidator)
 {
     this.accountRepository = accountRepository;
     this.tripRepository    = tripRepository;
     this.bookingRepository = bookingRepository;
     this.accountValidator  = accountValidator;
     this.tripValidator     = tripValidator;
     this.bookingValidator  = bookingValidator;
 }
Пример #6
0
        public void Validate(Booking entity)
        {
            var validationResults = new BookingValidator().Validate(entity);

            if (!validationResults.IsValid)
            {
                throw new ValidationException("Booking is invalid", validationResults.Errors);
            }
        }
        public void BookingValidator_ShouldFailIfEndDateTimeIsGreaterThenStartDateTime()
        {
            var bookingVal = new BookingValidator();
            var booking    = new BookingDto
            {
                StartDateTime = new DateTime(2018, 08, 22, 12, 00, 00),
                EndDateTime   = new DateTime(2018, 08, 22, 11, 00, 00)
            };

            bookingVal.ShouldHaveValidationErrorFor(e => e.EndDateTime, booking);
        }
Пример #8
0
        internal override Booking Validate(Action <Booking>?onFail = null)
        {
            var validationResults = new BookingValidator().Validate(this);

            if (!validationResults.IsValid)
            {
                onFail?.Invoke(this);
                throw new ValidationException("Booking is not valid", validationResults.Errors);
            }
            return(this);
        }
Пример #9
0
        public IDataResult <BookingDto> Create(Entity.Dtos.BookingDto bookingDto)
        {
            var validator      = new BookingValidator();
            var validateResult = validator.Validate(bookingDto);

            if (!validateResult.IsValid)
            {
                var validationErrors = ValidationHelper.GetErrors(validateResult.Errors);
                return(new ErrorDataResult <BookingDto>("Rezervasyon ekleme işlemi başarısız oldu.", validationErrors));
            }
            return(_bookingDal.Add(bookingDto));
        }
        public void ValidBookingPassesValidation()
        {
            // Arrange
            var bookingValidator = new BookingValidator();

            // Act
            var bookingValidation = bookingValidator.ValidateBooking(ValidRequest(), _agents, _properties);

            // Assert
            bookingValidation.IsValid.Should().BeTrue();
            bookingValidation.ErrorMessage.Should().BeEmpty();
        }
        public void ShouldFailIfPropertyDoesNotExist()
        {
            // Arrange
            var bookingRequest = ValidateBooking();

            bookingRequest.PropertyId = 17;
            var bookingValidator = new BookingValidator();

            // Act
            var bookingValidation = bookingValidator.ValidateBooking(bookingRequest, _agents, _properties);

            // Assert
            bookingValidation.IsValid.Should().BeFalse();
            bookingValidation.ErrorMessage.Should().Be("Sorry - we couldn't find a matching property.");
        }
        public void ShouldFailIfNameIsMissing()
        {
            // Arrange
            var bookingRequest = ValidRequest();

            bookingRequest.Name = null;
            var bookingValidator = new BookingValidator();

            // Act
            var bookingValidation = bookingValidator.ValidateBooking(bookingRequest, _agents, _properties);

            // Assert
            bookingValidation.IsValid.Should().BeFalse();
            bookingValidation.ErrorMessage.Should().Be("You must provide a name");
        }
        public void ShouldFailIfPhoneNumberIsMissing()
        {
            var bookingRequest = new BookingRequest
            {
                PhoneNumber = ""
            };
            var bookingValidator = new BookingValidator();

            // Act
            var bookingValidation = bookingValidator.ValidateBooking(bookingRequest, _agents, _properties);

            // Assert
            bookingValidation.IsValid.Should().BeFalse();
            bookingValidation.ErrorMessage.Should().Be("You must provide a phonenumber");
        }
        public void ShouldFailIfEmailAddressIsMissing()
        {
            var bookingRequest = new BookingRequest
            {
                EmailAddress = ""
            };
            var bookingValidator = new BookingValidator();

            // Act
            var bookingValidation = bookingValidator.ValidateBooking(bookingRequest, _agents, _properties);

            // Assert
            bookingValidation.IsValid.Should().BeFalse();
            bookingValidation.ErrorMessage.Should().Be("You must provide a valid email address");
        }
Пример #15
0
        public void MakeANullBooking()
        {
            // Arrange
            var booking_repository       = new InMemoryBookingRepository();
            var response_handler         = new MakeBookingResponseHandler();
            var validator                = new BookingValidator();
            var make_booking_interaction = new MakeBookingInteractor(response_handler, booking_repository, validator);

            // Act
            make_booking_interaction.Execute();

            // Assert
            Assert.IsTrue(make_booking_interaction.Booking == null);
            Assert.IsTrue(response_handler.Exception != null);
            Assert.IsTrue(response_handler.Exception.GetType() == typeof(ArgumentException));
        }
Пример #16
0
        public void GetBookingById()
        {
            //Arrange
            var mockUnitOfWork = new Mock <IUnitOfWork>();

            //Esperamos que se llame al metodo Get del AnnouncementRepository con un int
            mockUnitOfWork.Setup(un => un.BookingRepository.GetByID(It.IsAny <int>()));

            BookingValidator bookingValidator = new BookingValidator(mockUnitOfWork.Object);
            //Act

            Booking returnedBooking = bookingValidator.GetBooking("5");

            //Assert
            //mockUnitOfWork.VerifyAll();
        }
Пример #17
0
        public void BookingWithNoSpaceIsInvalid()
        {
            // Arrange
            var booking = new Booking
            {
                Id    = 0,
                Name  = "FirstName1 LastName1",
                Start = new DateTime(2018, 1, 1, 10, 0, 0),
                End   = new DateTime(2018, 1, 1, 11, 0, 0)
            };

            var validator = new BookingValidator();

            // Act
            var results = validator.Validate(booking);

            // Assert
            Assert.IsFalse(results.IsValid);
        }
Пример #18
0
        public void BookingWithNoPeriodIsInvalid()
        {
            // Arrange
            var booking = new Booking
            {
                Id    = 0,
                Name  = "FirstName1 LastName1",
                Space = new Space {
                    Id = 0, Name = "Boardroom"
                }
            };

            var validator = new BookingValidator();

            // Act
            var results = validator.Validate(booking);

            // Assert
            Assert.IsFalse(results.IsValid);
        }
Пример #19
0
        public void MakeABookingWithoutAName()
        {
            // Arrange
            var booking_repository       = new InMemoryBookingRepository();
            var response_handler         = new MakeBookingResponseHandler();
            var validator                = new BookingValidator();
            var make_booking_interaction = new MakeBookingInteractor(response_handler, booking_repository, validator);

            make_booking_interaction.Booking = new Booking {
                Start = new DateTime(2018, 1, 1, 10, 0, 0), End = new DateTime(2018, 1, 1, 11, 0, 0), Space = new Space {
                    Name = "Boardroom"
                }
            };

            // Act
            make_booking_interaction.Execute();

            // Assert
            Assert.IsFalse(response_handler.WasSuccessful);
        }
Пример #20
0
        public void BookingWithNoNameIsInvalid()
        {
            // Arrange
            var booking = new Booking
            {
                Id    = 0,
                Start = new DateTime(2018, 1, 1, 10, 0, 0),
                End   = new DateTime(2018, 1, 1, 11, 0, 0),
                Space = new Space {
                    Id = 0, Name = "Boardroom"
                }
            };

            var validator = new BookingValidator();

            // Act
            var results = validator.Validate(booking);

            // Assert
            Assert.IsFalse(results.IsValid);
        }
Пример #21
0
 static void Main(string[] args)
 {
     LOGGER.Info("loading application context");
     try
     {
         AccountRepository accountRepository = new AccountRepository();
         TripRepository    tripRepository    = new TripRepository();
         BookingRepository bookingRepository = new BookingRepository();
         BookingValidator  bookingValidator  = new BookingValidator();
         AccountValidator  accountValidator  = new AccountValidator();
         TripValidator     tripValidator     = new TripValidator();
         ITripServices     tripServices      = new TripServicesImpl(accountRepository, tripRepository, bookingRepository, accountValidator, tripValidator, bookingValidator);
         AbstractServer    server            = new RpcConcurrentServer(ConfigurationManager.AppSettings["host"],
                                                                       Int32.Parse(ConfigurationManager.AppSettings["port"]), tripServices);
         server.Start();
     }
     catch (Exception ex)
     {
         LOGGER.Warn(ex.StackTrace);
     }
 }
Пример #22
0
        public void DoesntUpdateNonExistingBooking()
        {
            //Arrange
            var mockUnitOfWork = new Mock <IUnitOfWork>();

            mockUnitOfWork
            .Setup(un => un.BookingRepository.GetByID(It.IsAny <int>())).Returns(() => null);

            mockUnitOfWork.Setup(un => un.BookingRepository.Update(It.IsAny <Booking>()));
            //mockUnitOfWork.Setup(un => un.Save());

            IBookingValidator bookingValidator = new BookingValidator(mockUnitOfWork.Object);

            //act
            bookingValidator.PutBooking("0", new Booking()
            {
            });

            //Assert
            //Retorna exception
        }
Пример #23
0
        static void Main(string[] args)
        {
            var logRepository = LogManager.GetRepository(Assembly.GetEntryAssembly());

            XmlConfigurator.Configure(logRepository, new FileInfo("log4net.config"));

            TripRepository    tripRepository    = new TripRepository();
            TripValidator     tripValidator     = new TripValidator();
            AccountRepository accountRepository = new AccountRepository();
            AccountValidator  accountValidator  = new AccountValidator();
            BookingRepository bookingRepository = new BookingRepository();
            BookingValidator  bookingValidator  = new BookingValidator();
            ITripServices     tripServices      = new TripServicesImpl(accountRepository, tripRepository, bookingRepository,
                                                                       accountValidator, tripValidator, bookingValidator);

            TripServicesGrpcImpl tripServicesGrpc = new TripServicesGrpcImpl(tripServices);
            GrpcServer           server           = new GrpcServer(int.Parse(ConfigurationManager.AppSettings["port"]),
                                                                   ConfigurationManager.AppSettings["host"], tripServicesGrpc);

            server.Start();
        }
Пример #24
0
        public void ValidateBooking()
        {
            // Arrange
            var booking = new Booking
            {
                Id    = 0,
                Name  = "FirstName1 LastName1",
                Start = new DateTime(2018, 1, 1, 10, 0, 0),
                End   = new DateTime(2018, 1, 1, 11, 0, 0),
                Space = new Space {
                    Id = 0, Name = "Boardroom"
                }
            };

            var validator = new BookingValidator();

            // Act
            var results = validator.Validate(booking);

            // Assert
            Assert.IsTrue(results.IsValid);
        }
Пример #25
0
        public void ShouldFailIfNameIsMissing()
        {
            // Arrange
            var bookingRequest = new BookingRequest
            {
                AgentId      = 1,
                PropertyId   = 3,
                Name         = "",
                EmailAddress = "*****@*****.**",
                StartsAt     = DateTime.Now.AddHours(2),
                EndsAt       = DateTime.Now.AddHours(3),
                PhoneNumber  = "0300 547 873"
            };
            var bookingValidator = new BookingValidator();

            // Act
            var bookingValidation = bookingValidator.ValidateBooking(bookingRequest, _agents, _properties);

            // Assert
            bookingValidation.IsValid.Should().BeFalse();
            bookingValidation.ErrorMessage.Should().Be("You must provide a name");
        }
        public void ShouldFailIfPhoneNumberMissing()
        {
            // Arrange
            var bookingRequest = new BookingRequest
            {
                AgentId      = 1,
                PropertyId   = 3,
                Name         = "Jane Doe",
                EmailAddress = "*****@*****.**",
                StartsAt     = DateTime.Now.AddHours(2),
                EndsAt       = DateTime.Now.AddHours(3),
                PhoneNumber  = ""
            };
            var bookingValidator = new BookingValidator();

            // Act
            var bookingValidation = bookingValidator.ValidateBooking(bookingRequest, _agents, _properties);

            // Assert
            bookingValidation.IsValid.Should().BeFalse();
            bookingValidation.ErrorMessage.Should().Be("You must provide a phone number.");
        }
Пример #27
0
        public void ValidBookingPassesValidation()
        {
            // Arrange
            var bookingRequest = new BookingRequest
            {
                AgentId      = 1,
                PropertyId   = 3,
                Name         = "Rebecca",
                EmailAddress = "*****@*****.**",
                StartsAt     = DateTime.Now.AddHours(2),
                EndsAt       = DateTime.Now.AddHours(3),
                PhoneNumber  = "0300 547 873"
            };
            var bookingValidator = new BookingValidator();

            // Act
            var bookingValidation = bookingValidator.ValidateBooking(bookingRequest, _agents, _properties);

            // Assert
            bookingValidation.IsValid.Should().BeTrue();
            bookingValidation.ErrorMessage.Should().BeEmpty();
        }
Пример #28
0
        public void ShouldFailIfPropertyIdIsInvalid()
        {
            // Arrange
            var bookingRequest = new BookingRequest
            {
                AgentId      = 1,
                PropertyId   = 0,
                Name         = "Rebecca",
                EmailAddress = "*****@*****.**",
                StartsAt     = DateTime.Now.AddHours(2),
                EndsAt       = DateTime.Now.AddHours(3),
                PhoneNumber  = "0300 547 873"
            };
            var bookingValidator = new BookingValidator();

            // Act
            var bookingValidation = bookingValidator.ValidateBooking(bookingRequest, _agents, _properties);

            // Assert
            bookingValidation.IsValid.Should().BeFalse();
            bookingValidation.ErrorMessage.Should().Be("This is not a valid Property Id");
        }
        public void BookingValidator_ShouldFailIfEndDateTimeIsEmpty()
        {
            var booking = new BookingValidator();

            booking.ShouldHaveValidationErrorFor(e => e.EndDateTime, default(DateTime));
        }
Пример #30
0
        public JsonResult UpdateBooking(BookingRequest br)
        {
            Cart cart = new Cart();

            BookingValidator v = new BookingValidator();

            v.Validate(br);

            List <String> errors = v.errors;

            foreach (ModelState state in ModelState.Values)
            {
                foreach (ModelError error in state.Errors)
                {
                    errors.Add(error.ErrorMessage);
                }
            }

            Boolean success = errors.Count == 0;

            if (success)
            {
                Booking b = cart.GetBooking(br.booking_id);
                //b.guests = br.guests;
                b.single_rooms = br.single_rooms;
                b.double_rooms = br.double_rooms;
                b.duration     = br.duration;
                b.start_date   = br.start_date;

                if (User.Identity.IsAuthenticated)
                {
                    if (User.IsInRole("TelesaleStaff"))
                    {
                        b.booker_id = (System.Guid)Membership.GetUser().ProviderUserKey;
                        Customer c = (Customer)System.Web.HttpContext.Current.Session["customer"];

                        b.customer_id = c.MembershipID;
                    }
                    else//normal customer
                    {
                        b.customer_id = (System.Guid)Membership.GetUser().ProviderUserKey;
                    }
                }

                b.Travel.TravelType = cart.ctx.TravelTypes.SingleOrDefault(t => t.id == br.travel_type_id);
                b.Travel.departure  = br.start_date;
                b.Travel.arrival    = br.start_date;

                foreach (Passanger p in b.Travel.Passangers.ToList())
                {
                    b.Travel.Passangers.Remove(p);
                    cart.ctx.DeleteObject(p);
                }

                //b.Travel.Passangers.Clear();
                for (int i = 0; i < b.guests(); i++)
                {
                    b.Travel.Passangers.Add(new Passanger {
                        id = Guid.NewGuid()
                    });
                }
            }
            return(Json(new { success = success, id = br.booking_id, errors = errors }));
        }