public async Task UpdateReservationWithOptimisticConcurrencyTest()
        {
            //arrange
            GetReservationRequest requestId = new GetReservationRequest {
                IdFilter = 2
            };
            ReservationDto toUpdate = _target.GetReservation(requestId);

            GetCustomerRequest customer1Request = new GetCustomerRequest {
                IdFilter = 1
            };
            CustomerDto customer1 = _kundeClient.GetCustomer(customer1Request);

            GetCustomerRequest customer2Request = new GetCustomerRequest {
                IdFilter = 2
            };
            CustomerDto customer2 = _kundeClient.GetCustomer(customer2Request);

            //act
            toUpdate.Customer = customer1;

            Empty emptyUpdate = _target.UpdateReservation(toUpdate);

            toUpdate.Customer = customer2;
            // assert
            Assert.Throws <RpcException>(() => _target.UpdateReservation(toUpdate));
        }
        public GetReservationResponse GetReservation(GetReservationRequest request)
        {
            var response = new GetReservationResponse
            {
                IsSuccessful = false,
                Message      = ""
            };

            try
            {
                var customer = _context.Customers
                               .FirstOrDefault(x => x.Id == request.CustomerId);

                var reservation = _context.TableReservations
                                  .Include(x => x.Customer)
                                  .Where(x => x.Customer.FirstName == customer.FirstName)
                                  .Where(x => x.Customer.LastName == customer.LastName)
                                  .Where(x => x.Customer.Id == customer.Id)
                                  .FirstOrDefault(x => x.Id == request.ReservationId);

                if (reservation != null)
                {
                    response.TableReservation = reservation;
                    response.IsSuccessful     = true;
                    response.Message          = "Successfully found reservation.";
                }
            }
            catch (Exception ex)
            {
                response.IsSuccessful = false;
                response.Message      = ex.ToString();
            }

            return(response);
        }
        public void GetRequestObject()
        {
            moq::Mock <Reservations.ReservationsClient> mockGrpcClient = new moq::Mock <Reservations.ReservationsClient>(moq::MockBehavior.Strict);

            mockGrpcClient.Setup(x => x.CreateOperationsClientForZoneOperations()).Returns(new moq::Mock <lro::Operations.OperationsClient>().Object);
            GetReservationRequest request = new GetReservationRequest
            {
                Zone        = "zone255f4ea8",
                Reservation = "reservationf22d3388",
                Project     = "projectaa6ff846",
            };
            Reservation expectedResponse = new Reservation
            {
                Id   = 11672635353343658936UL,
                Kind = "kindf7aa39d9",
                Name = "name1c9368b0",
                Zone = "zone255f4ea8",
                CreationTimestamp           = "creation_timestamp235e59a1",
                Status                      = Reservation.Types.Status.Deleting,
                SpecificReservationRequired = false,
                SpecificReservation         = new AllocationSpecificSKUReservation(),
                Description                 = "description2cf9da67",
                SelfLink                    = "self_link7e87f12d",
                SatisfiesPzs                = false,
                Commitment                  = "commitment726158e4",
            };

            mockGrpcClient.Setup(x => x.Get(request, moq::It.IsAny <grpccore::CallOptions>())).Returns(expectedResponse);
            ReservationsClient client   = new ReservationsClientImpl(mockGrpcClient.Object, null);
            Reservation        response = client.Get(request);

            xunit::Assert.Same(expectedResponse, response);
            mockGrpcClient.VerifyAll();
        }
示例#4
0
        public async Task GetReservationByIdTest()
        {
            var request = new GetReservationRequest {
                Id = 1
            };
            var response = await _target.GetReservationenByIdAsync(request);

            Assert.Equal(1, response.ReservationsNr);
        }
        public async Task GetReservationByIdWithIllegalIdTest()
        {
            // arrange
            GetReservationRequest requestId = new GetReservationRequest {
                IdFilter = 123
            };

            // act

            // assert
            Assert.Throws <RpcException>(() => _target.GetReservation(requestId));
        }
示例#6
0
 /// <summary>Snippet for GetReservation</summary>
 /// <remarks>
 /// This snippet has been automatically generated for illustrative purposes only.
 /// It may require modifications to work in your environment.
 /// </remarks>
 public void GetReservationRequestObject()
 {
     // Create client
     ReservationServiceClient reservationServiceClient = ReservationServiceClient.Create();
     // Initialize request argument(s)
     GetReservationRequest request = new GetReservationRequest
     {
         ReservationName = ReservationName.FromProjectLocationReservation("[PROJECT]", "[LOCATION]", "[RESERVATION]"),
     };
     // Make the request
     Reservation response = reservationServiceClient.GetReservation(request);
 }
        public async Task CheckAvailabilityIsTrueTest()
        {
            //arrange
            GetReservationRequest requestId = new GetReservationRequest {
                IdFilter = 2
            };
            ReservationDto reservation = _target.GetReservation(requestId);
            //act
            CheckResponse available = _target.AvailabilityCheck(reservation);

            //assert
            Assert.True(available.IsValid);
        }
 public DTO.Reservation Get(GetReservationRequest request)
 {
     try
     {
         var reservation = _reservationRepository.FindBy(request.Id);
         reservation.ThrowExceptionIfRecordIsNull();
         return(_reservationFactory.Execute(reservation));
     }
     catch (DataAccessException)
     {
         throw new ApplicationException();
     }
 }
        public async Task GetReservationByIdTest()
        {
            // arrange
            GetReservationRequest requestId = new GetReservationRequest {
                IdFilter = 2
            };

            // act
            ReservationDto reply = _target.GetReservation(requestId);

            // assert
            Assert.Equal("Anna", reply.Customer.FirstName);
            Assert.Equal(2, reply.ReservationNr);
        }
        public async Task GetReservationByIdTest()
        {
            const int id      = 1;
            var       request = new GetReservationRequest {
                IdFilter = id
            };
            var response = await _target.GetReservationByIdAsync(request);

            _testOutputHelper.WriteLine(response.ToString());
            Assert.Equal(id, response.ReservationsNr);
            Assert.Equal(_von, response.Von);
            Assert.Equal(_bis, response.Bis);
            _testOutputHelper.WriteLine(response.ToString());
        }
        public async Task DeleteReservationTest()
        {
            //arrange
            GetReservationRequest requestId = new GetReservationRequest {
                IdFilter = 1
            };

            ReservationDto toDelete = _target.GetReservation(requestId);
            // act
            Empty emptyDelete = _target.DeleteReservation(toDelete);

            // assert
            Assert.Throws <RpcException>(() => _target.GetReservation(requestId));
        }
示例#12
0
 /// <summary>Snippet for Get</summary>
 public void GetRequestObject()
 {
     // Snippet: Get(GetReservationRequest, CallSettings)
     // Create client
     ReservationsClient reservationsClient = ReservationsClient.Create();
     // Initialize request argument(s)
     GetReservationRequest request = new GetReservationRequest
     {
         Zone        = "",
         Reservation = "",
         Project     = "",
     };
     // Make the request
     Reservation response = reservationsClient.Get(request);
     // End snippet
 }
示例#13
0
        public override async Task <ReservationDto> GetReservationById(GetReservationRequest request,
                                                                       ServerCallContext context)
        {
            ReservationDto response;

            try
            {
                response = await _manager.GetByPrimaryKey(request.IdFilter).ConvertToDto();
            }
            catch (Exception)
            {
                throw new RpcException(new Status(StatusCode.Internal, "Internal error occured."));
            }

            return(response ?? throw new RpcException(new Status(StatusCode.NotFound, "ID is invalid.")));
        }
示例#14
0
        public async Task GetReservationByIdWithIllegalIdTest()
        {
            const int invalidId = 100;
            var       request   = new GetReservationRequest {
                Id = invalidId
            };

            try
            {
                await _target.GetReservationenByIdAsync(request);
            }
            catch (RpcException e)
            {
                Assert.Equal(StatusCode.NotFound, e.StatusCode);
            }
        }
        public async Task UpdateReservationWithAutoNotAvailableTest()
        {
            GetReservationRequest requestId = new GetReservationRequest {
                IdFilter = 2
            };
            ReservationDto toUpdate = _target.GetReservation(requestId);

            DateTime from = new DateTime(2020, 1, 19, 0, 0, 0, DateTimeKind.Utc);
            DateTime to   = new DateTime(2020, 1, 22, 0, 0, 0, DateTimeKind.Utc);

            //act
            toUpdate.From = from.ToTimestamp();
            toUpdate.To   = to.ToTimestamp();

            // assert
            Assert.Throws <RpcException>(() => _target.UpdateReservation(toUpdate));
        }
        public async Task UpdateReservationWithInvalidDateRangeTest()
        {
            GetReservationRequest requestId = new GetReservationRequest {
                IdFilter = 1
            };
            ReservationDto toUpdate = _target.GetReservation(requestId);

            DateTime from = new DateTime(2020, 12, 1, 0, 0, 0, DateTimeKind.Utc);
            DateTime to   = new DateTime(2020, 12, 3, 0, 0, 0, DateTimeKind.Utc);

            //act
            toUpdate.From = to.ToTimestamp();
            toUpdate.To   = from.ToTimestamp();

            // assert
            Assert.Throws <RpcException>(() => _target.UpdateReservation(toUpdate));
        }
示例#17
0
        public override async Task <ReservationDto> GetReservation(GetReservationRequest request, ServerCallContext context)
        {
            ReservationDto response = new ReservationDto();

            try
            {
                Reservation data = await _reservationManager.Get(request.IdFilter);

                response = data.ConvertToDto();
            }
            catch (System.Exception e)
            {
                throw new RpcException(new Status(StatusCode.NotFound, e.Message));
            }

            return(await Task.FromResult(response));
        }
示例#18
0
        public IActionResult GetReservation(ReserveTableBody body)
        {
            var request = new GetReservationRequest
            {
                ReservationId = body.TableId,
                CustomerId    = body.CustomerId
            };

            var response = _tableService.GetReservation(request);

            if (response.IsSuccessful)
            {
                return(Ok(response.TableReservation));
            }
            else
            {
                return(BadRequest());
            }
        }
示例#19
0
        /// <summary>Snippet for GetAsync</summary>
        public async Task GetRequestObjectAsync()
        {
            // Snippet: GetAsync(GetReservationRequest, CallSettings)
            // Additional: GetAsync(GetReservationRequest, CancellationToken)
            // Create client
            ReservationsClient reservationsClient = await ReservationsClient.CreateAsync();

            // Initialize request argument(s)
            GetReservationRequest request = new GetReservationRequest
            {
                Zone        = "",
                Reservation = "",
                Project     = "",
            };
            // Make the request
            Reservation response = await reservationsClient.GetAsync(request);

            // End snippet
        }
示例#20
0
        [ProducesResponseType(200)] //OK
        public async Task <ActionResult <GetReservationResponse> > GetReservation(GetReservationRequest reservationNumber)
        {
            _logger.LogInformation(nameof(GetReservation), "Logging GetReservation");
            if (ModelState.IsValid)
            {
                var result = await _reservationService.GetReservationAsync(reservationNumber);

                _logger.LogInformation(nameof(GetReservation), "End GetReservation");
                if (result != null)
                {
                    return(Ok(result));
                }
                else
                {
                    return(NotFound());
                }
            }
            else
            {
                _logger.LogWarning(nameof(GetReservation), "Wrong input data");
                return(BadRequest());
            }
        }
        public async Task UpdateReservationTest()
        {
            //arrange
            GetReservationRequest requestId = new GetReservationRequest {
                IdFilter = 2
            };
            ReservationDto toUpdate = _target.GetReservation(requestId);

            GetCustomerRequest customerRequest = new GetCustomerRequest {
                IdFilter = 1
            };
            CustomerDto customer = _kundeClient.GetCustomer(customerRequest);


            //act
            toUpdate.Customer = customer;
            Empty emptyUpdate = _target.UpdateReservation(toUpdate);

            // assert
            ReservationDto expected = _target.GetReservation(requestId);

            Assert.Equal(1, expected.Customer.Id);
        }
        public async Task <GetReservationResponse> GetReservationAsync(GetReservationRequest reservationNumber)
        {
            var reservationEntity = await _context.Reservations
                                    .SingleOrDefaultAsync(r => r.ReservationNumber == reservationNumber.reservationNumber);

            if (reservationEntity == null)
            {
                return(null);
            }
            reservationEntity.ReservationDetails = _context.ReservationDetails.Where(c => c.ReservationNumber == reservationNumber.reservationNumber).ToList();

            GetReservationResponse result = _mapper.Map <GetReservationResponse>(reservationEntity);
            string flightItemOld          = "";

            foreach (var flightItem in reservationEntity.ReservationDetails)
            {
                if (string.Compare(flightItem.FlightKey, flightItemOld) != 0)
                {
                    var flightToInsert = new ReservationFlightResponse
                    {
                        key        = flightItem.FlightKey,
                        passengers = new List <PassengersReservationDetailsResponse>()
                    };

                    result.flights.Add(flightToInsert);
                }
                var passengerToInsert = new PassengersReservationDetailsResponse
                {
                    name = flightItem.Name,
                    bags = flightItem.NumberOfBags,
                    seat = flightItem.Seat
                };
                result.flights.Where(c => c.key == flightItem.FlightKey).FirstOrDefault().passengers.Add(passengerToInsert);
                flightItemOld = flightItem.FlightKey;
            }
            return(result);
        }
示例#23
0
        public async stt::Task GetRequestObjectAsync()
        {
            moq::Mock <Reservations.ReservationsClient> mockGrpcClient = new moq::Mock <Reservations.ReservationsClient>(moq::MockBehavior.Strict);

            mockGrpcClient.Setup(x => x.CreateOperationsClientForZoneOperations()).Returns(new moq::Mock <lro::Operations.OperationsClient>().Object);
            GetReservationRequest request = new GetReservationRequest
            {
                Zone        = "zone255f4ea8",
                Reservation = "reservationf22d3388",
                Project     = "projectaa6ff846",
            };
            Reservation expectedResponse = new Reservation
            {
                Id   = 11672635353343658936UL,
                Kind = "kindf7aa39d9",
                Name = "name1c9368b0",
                Zone = "zone255f4ea8",
                CreationTimestamp           = "creation_timestamp235e59a1",
                Status                      = "status5444cb9a",
                SpecificReservationRequired = false,
                SpecificReservation         = new AllocationSpecificSKUReservation(),
                Description                 = "description2cf9da67",
                SelfLink                    = "self_link7e87f12d",
                SatisfiesPzs                = false,
                Commitment                  = "commitment726158e4",
            };

            mockGrpcClient.Setup(x => x.GetAsync(request, moq::It.IsAny <grpccore::CallOptions>())).Returns(new grpccore::AsyncUnaryCall <Reservation>(stt::Task.FromResult(expectedResponse), null, null, null, null));
            ReservationsClient client = new ReservationsClientImpl(mockGrpcClient.Object, null);
            Reservation        responseCallSettings = await client.GetAsync(request, gaxgrpc::CallSettings.FromCancellationToken(st::CancellationToken.None));

            xunit::Assert.Same(expectedResponse, responseCallSettings);
            Reservation responseCancellationToken = await client.GetAsync(request, st::CancellationToken.None);

            xunit::Assert.Same(expectedResponse, responseCancellationToken);
            mockGrpcClient.VerifyAll();
        }
示例#24
0
        public override async Task <ReservationDto> GetReservationenById(GetReservationRequest request, ServerCallContext context)
        {
            ReservationDto response = await reservationenManager.GetReservationById(request.Id).ConvertToDto();

            return(response ?? throw new RpcException(new Status(StatusCode.NotFound, "ID is invalid.")));
        }
        public async void GetReservation_ReservationController_Test()
        {
            ////Arrange
            var contextMock       = InitializeDatabase("GetReservation_ReservationController_Test");
            var loggerServiceMock = new Mock <ILogger <ReservationController> >();

            var mapperConfig = new MapperConfiguration(mc =>
            {
                mc.AddProfile(new MappingProfile());
            });

            IMapper mapper = mapperConfig.CreateMapper();
            IConfigurationBuilder configurationBuilder = new ConfigurationBuilder();

            configurationBuilder.AddJsonFile("AppSettings.json");
            IConfiguration configuration = configurationBuilder.Build();

            var reservationNumberService = new ReservationNumberService();

            var reservationService    = new ReservationService(contextMock, mapper, reservationNumberService, configuration);
            var reservationController = new ReservationController(loggerServiceMock.Object,
                                                                  mapper,
                                                                  reservationService);

            ///Act
            ReservationRequest createReservation = new ReservationRequest
            {
                email      = "*****@*****.**",
                creditCard = "123456789",
                flights    = new ReservationFlightRequest[]
                {
                    new ReservationFlightRequest
                    {
                        key        = "Flight00001",
                        passengers = new PassengersReservationDetailsRequest[]
                        {
                            new PassengersReservationDetailsRequest  {
                                name = "Robert Niro", bags = 3, seat = 1
                            },
                            new PassengersReservationDetailsRequest {
                                name = "John Smith", bags = 3, seat = 2
                            },
                            new PassengersReservationDetailsRequest  {
                                name = "Seb True", bags = 3, seat = 3
                            }
                        }
                    },
                    new ReservationFlightRequest
                    {
                        key        = "Flight00103",
                        passengers = new PassengersReservationDetailsRequest[]
                        {
                            new PassengersReservationDetailsRequest  {
                                name = "Robert Niro", bags = 3, seat = 1
                            },
                            new PassengersReservationDetailsRequest {
                                name = "John Smith", bags = 3, seat = 2
                            },
                            new PassengersReservationDetailsRequest  {
                                name = "Seb True", bags = 3, seat = 3
                            }
                        }
                    }
                }
            };
            // Act on Test
            var actionResult = await reservationController.CreateReservationAsync(createReservation);

            var content = actionResult.Result as Microsoft.AspNetCore.Mvc.CreatedResult;
            var result  = content.Value as ReservationResponse;

            GetReservationRequest newReservationNumber = new GetReservationRequest()
            {
                reservationNumber = result.reservationNumber
            };
            var actionResultGet = await reservationController.GetReservation(newReservationNumber);

            var contentGet = actionResultGet.Result as Microsoft.AspNetCore.Mvc.OkObjectResult;
            var resultGet  = content.Value as GetReservationResponse;

            ///Assert
            Assert.Equal((int)HttpStatusCode.OK, contentGet.StatusCode.Value);
            Assert.Equal("AAA001", result.reservationNumber);
        }
示例#26
0
        public async void GetReservation_ReservationService_Test()
        {
            ////Arrange
            ///
            var db = InitializeDatabase("GetReservation_ReservationService_Test");
            var loggerServiceMock = new Mock <ILogger <ReservationService> >();

            var mapperConfig = new MapperConfiguration(mc =>
            {
                mc.AddProfile(new MappingProfile());
            });

            IMapper mapper = mapperConfig.CreateMapper();
            IConfigurationBuilder configurationBuilder = new ConfigurationBuilder();

            configurationBuilder.AddJsonFile("AppSettings.json");
            IConfiguration configuration = configurationBuilder.Build();

            var reservationNumberService = new ReservationNumberService();

            var reservationService = new ReservationService(db, mapper, reservationNumberService, configuration);

            ///Act
            ReservationRequest createReservation = new ReservationRequest
            {
                email      = "*****@*****.**",
                creditCard = "123456789",
                flights    = new ReservationFlightRequest[]
                {
                    new ReservationFlightRequest
                    {
                        key        = "Flight00001",
                        passengers = new PassengersReservationDetailsRequest[]
                        {
                            new PassengersReservationDetailsRequest  {
                                name = "Robert Niro", bags = 3, seat = 1
                            },
                            new PassengersReservationDetailsRequest {
                                name = "John Smith", bags = 3, seat = 2
                            },
                            new PassengersReservationDetailsRequest  {
                                name = "Seb True", bags = 3, seat = 3
                            }
                        }
                    },
                    new ReservationFlightRequest
                    {
                        key        = "Flight00103",
                        passengers = new PassengersReservationDetailsRequest[]
                        {
                            new PassengersReservationDetailsRequest  {
                                name = "Robert Niro", bags = 3, seat = 1
                            },
                            new PassengersReservationDetailsRequest {
                                name = "John Smith", bags = 3, seat = 2
                            },
                            new PassengersReservationDetailsRequest  {
                                name = "Seb True", bags = 3, seat = 3
                            }
                        }
                    }
                }
            };
            // Act on Test
            var resultCreation = await reservationService.CreateReservationAsync(createReservation);


            GetReservationRequest newReservationNumber = new GetReservationRequest()
            {
                reservationNumber = resultCreation.reservationNumber
            };
            var resultGet = await reservationService.GetReservationAsync(newReservationNumber);

            // Assert
            // The process returns 2 flights.
            Assert.Equal(2, resultGet.flights.Count());
        }
 public Reservation Get(GetReservationRequest request)
 {
     return(_reservationService.Get(request));
 }