Exemple #1
0
        public void BookPlaceAsyncWithValidParametersExpectPlaceBooked()
        {
            UzContext      context        = _uzClient.GetUZContextAsync().Result;
            TrainsResponse trainsResponse = GetTrains(context, KievStationId, LvovStatinId, DateTime.Today.AddDays(DaysOffset));

            TrainsResponse.Train train          = trainsResponse.Trains.First();
            WagonsResponse       wagonsResponse = _uzClient.GetWagonsAsync(context, KievStationId, LvovStatinId, train.StationFrom.DateTime, train.TrainNumber, train.TrainType, train.Wagons.First().TypeCode).Result;

            WagonsResponse.Wagon wagon          = wagonsResponse.Wagons.First();
            PlacesResponse       placesResponse = GetPlaces(context, KievStationId, LvovStatinId, train.StationFrom.DateTime, train.TrainNumber, wagon.Number, wagon.CoachClass, wagon.CoachType);

            BookPlacesResponse bookPlaceResult = BookPlace(context,
                                                           KievStationId,
                                                           LvovStatinId,
                                                           DateTime.Today.AddDays(DaysOffset),
                                                           train.TrainNumber,
                                                           wagon.Number,
                                                           wagon.CoachClass,
                                                           wagon.TypeCode,
                                                           placesResponse.Places.First(),
                                                           placesResponse.PlaceType,
                                                           "Валера",
                                                           "Топор");

            Assert.IsFalse(bookPlaceResult.IsError);
        }
Exemple #2
0
        public void GetTrainsAsyncWithInvalidDateExpectNoTrains()
        {
            UzContext context = _uzClient.GetUZContextAsync().Result;

            TrainsResponse trainsResponse = GetTrains(context, KievStationId, LvovStatinId, DateTime.Today.AddDays(-1));

            CollectionAssert.IsEmpty(trainsResponse.Trains);
        }
Exemple #3
0
        public void GetTrainsAsyncWithValidParametersExpectTrains()
        {
            UzContext context = _uzClient.GetUZContextAsync().Result;

            TrainsResponse trainsResponse = GetTrains(context, KievStationId, LvovStatinId, DateTime.Today.AddDays(DaysOffset));

            CollectionAssert.IsNotEmpty(trainsResponse.Trains);
        }
Exemple #4
0
        // POST api/trains
        public async Task <IHttpActionResult> Post([FromBody] TrainsRequestDto requestDto)
        {
            UzContext context = await UZ.GetUZContextAsync();

            TrainsResponse trains = await UZ.GetTrainsAsync(context, requestDto.StationFromId, requestDto.StationToId, requestDto.DateTime);

            return(Json(trains));
        }
Exemple #5
0
        private async Task <ICollection <TrainsResponse.Train> > GetTrains(UzContext uzContext, Request request, string wagonTypeId)
        {
            TrainsResponse trainsResponse = await _uzClient.GetTrainsAsync(uzContext, request.StationFromId, request.StationToId,
                                                                           request.DateTime);

            return((from train in trainsResponse.Trains
                    from wagon in train.Wagons
                    where wagonTypeId == wagon.TypeCode
                    select train).ToList());
        }
Exemple #6
0
        public void GetTrainsAsyncWithInvalidContextExpectNoTrains()
        {
            var context = new UzContext("token", new CookieCollection());

            TrainsResponse trainsResponse = _uzClient.GetTrainsAsync(context,
                                                                     KievStationId, // Киев
                                                                     LvovStatinId,  // Львов
                                                                     DateTime.Today.AddDays(DaysOffset)
                                                                     ).Result;

            CollectionAssert.IsEmpty(trainsResponse.Trains);
        }
Exemple #7
0
        public void GetWagonsAsyncWithInvalidTrainNumberExpectNoWagons()
        {
            UzContext      context        = _uzClient.GetUZContextAsync().Result;
            TrainsResponse trainsResponse = GetTrains(context, KievStationId, LvovStatinId, DateTime.Today.AddDays(DaysOffset));

            TrainsResponse.Train train = trainsResponse.Trains.First();

            WagonsResponse wagonsResponse = GetWagons(context,
                                                      KievStationId,
                                                      LvovStatinId,
                                                      train.StationFrom.DateTime,
                                                      "invalid_train",
                                                      train.TrainType,
                                                      train.Wagons.First().TypeCode);

            CollectionAssert.IsEmpty(wagonsResponse.Wagons);
        }
Exemple #8
0
        public async Task <TrainsResponse> GetTrainsAsync(UzContext context, int stationFromId, int stationToId, DateTime date)
        {
            var content = new FormUrlEncodedContent(
                new Dictionary <string, string> {
                { "station_id_from", stationFromId.ToString() },
                { "station_id_till", stationToId.ToString() },
                { "date_dep", date.ToString("dd.MM.yyyy") },
                { "time_dep", "00:00" },
                { "time_dep_till", "" },
                { "another_ec", "0" },
                { "search", "" }
            });

            TrainsResponse rawTrains = await ExecutePostRequestAsync(context, UrlTrains, content, ResponseFormatter.FormatTrains);

            return(rawTrains);
        }
Exemple #9
0
        public void GetPlacesAsyncWithInvalidCoachTypeExpectNoPlaces()
        {
            UzContext      context        = _uzClient.GetUZContextAsync().Result;
            TrainsResponse trainsResponse = GetTrains(context, KievStationId, LvovStatinId, DateTime.Today.AddDays(DaysOffset));

            TrainsResponse.Train train          = trainsResponse.Trains.First();
            WagonsResponse       wagonsResponse = _uzClient.GetWagonsAsync(context, KievStationId, LvovStatinId, train.StationFrom.DateTime, train.TrainNumber, train.TrainType, train.Wagons.First().TypeCode).Result;

            WagonsResponse.Wagon wagon = wagonsResponse.Wagons.First();

            PlacesResponse placesResponse = GetPlaces(context,
                                                      KievStationId,
                                                      LvovStatinId,
                                                      DateTime.Now.AddDays(-1),
                                                      train.TrainNumber,
                                                      wagon.Number,
                                                      wagon.CoachClass,
                                                      int.MaxValue);

            CollectionAssert.IsEmpty(placesResponse.Places);
        }
Exemple #10
0
        public void GetPlacesAsyncWithValidParametersExpectPlaces()
        {
            UzContext      context        = _uzClient.GetUZContextAsync().Result;
            TrainsResponse trainsResponse = GetTrains(context, KievStationId, LvovStatinId, DateTime.Today.AddDays(DaysOffset));

            TrainsResponse.Train train          = trainsResponse.Trains.First();
            WagonsResponse       wagonsResponse = _uzClient.GetWagonsAsync(context, KievStationId, LvovStatinId, train.StationFrom.DateTime, train.TrainNumber, train.TrainType, train.Wagons.First().TypeCode).Result;

            WagonsResponse.Wagon wagon = wagonsResponse.Wagons.First();

            PlacesResponse placesResponse = GetPlaces(context,
                                                      KievStationId,
                                                      LvovStatinId,
                                                      train.StationFrom.DateTime,
                                                      train.TrainNumber,
                                                      wagon.Number,
                                                      wagon.CoachClass,
                                                      wagon.CoachType);

            Assert.IsFalse(string.IsNullOrWhiteSpace(placesResponse.PlaceType));
            CollectionAssert.IsNotEmpty(placesResponse.Places);
        }