public void Fact9PackageProfileStudentVsEconomy() { PackageSearchProfile.RootObject packageSearchProfile = new PackageSearchProfile.RootObject(); PackageSearchProfile profile = new PackageSearchProfile(); var student = profile.Student(); var economy = profile.Economy(); ID_nom pp = new ID_nom(); var resultstudentID = program.Post_zapros("https://apitest.suntigo.com/api/1/package/search", student, pp); var result2economyID = program.Post_zapros("https://apitest.suntigo.com/api/1/package/search", economy, pp); var resultstudent = program.Get <PackageResultsProfile.RootObject>("https://apitest.suntigo.com/api/1/package/results", "RequestId", resultstudentID.requestId, "Language", "English"); var result2economy = program.Get <PackageResultsProfile.RootObject>("https://apitest.suntigo.com/api/1/package/results", "RequestId", result2economyID.requestId, "Language", "English"); Assert.True(!program.EqualsResults(resultstudent, result2economy)); }
public void Fact9PackageProfileEconomyPlusVsVIP() { PackageSearchProfile.RootObject packageSearchProfile = new PackageSearchProfile.RootObject(); PackageSearchProfile profile = new PackageSearchProfile(); var economyPlus = profile.EconomyPlus(); var vip = profile.VIP(); ID_nom pp = new ID_nom(); var resulteconomyPlusID = program.Post_zapros("https://apitest.suntigo.com/api/1/package/search", economyPlus, pp); var result2VIPID = program.Post_zapros("https://apitest.suntigo.com/api/1/package/search", vip, pp); var resulteconomyPlus = program.Get <PackageResultsProfile.RootObject>("https://apitest.suntigo.com/api/1/package/results", "RequestId", resulteconomyPlusID.requestId, "Language", "English"); var result2VIP = program.Get <PackageResultsProfile.RootObject>("https://apitest.suntigo.com/api/1/package/results", "RequestId", result2VIPID.requestId, "Language", "English"); Assert.True(!program.EqualsResults(resulteconomyPlus, result2VIP)); }
/// <summary> /// этот метод подходит для POST запроса в Flicht, Package, train/search /// не подходит для bus запроса - ответ другой, запрос другие параметры. подумать над обработкой для автобуса /// </summary> /// <param name="zapros_post_URI"></param> /// <param name="parametr_origin"></param> /// <param name="parametr_destination"></param> /// <param name="parametr_date"></param> /// <param name="parametr_destinationAirportCode"></param> /// <param name="parametr_adults"></param> /// <param name="parametr_kids"></param> /// <param name="parametr_infants"></param> /// <param name="parametr_searchProfile"></param> /// <returns></returns> //параметры для пост запроса в флайтах //обязательно первые три параметра для вызыва данного метода //можно заменить на тип рутобжикт, но то же самое public Int64 Post_F_P_BS_T(string zapros_post_URI, Int64 parametr_origin, Int64 parametr_destination, DateTime parametr_date, string parametr_destinationAirportCode = "t", int parametr_adults = 2, int parametr_kids = 0, int parametr_infants = 0) { // создаем запрос, посман RootObject post_v_flicht = new RootObject(); Route route = new Route(); Route route_2 = new Route(); //post_v_flicht.routes = rout route.origin = parametr_origin; route.destination = parametr_destination; route.destinationAirportCode = parametr_destinationAirportCode; route.date = parametr_date; route_2.origin = parametr_destination; route_2.destination = parametr_origin; route_2.destinationAirportCode = route_2.destination.ToString(); //плюс два дня, отбытия через два дня route_2.date = parametr_date.AddDays(2); post_v_flicht.adults = parametr_adults; post_v_flicht.kids = parametr_kids; post_v_flicht.infants = parametr_infants; //post_v_flicht.searchProfile = parametr_searchProfile; post_v_flicht.routes = new List <Route>(); post_v_flicht.routes.Add(route); post_v_flicht.routes.Add(route_2); //память для вставки в жейсон MemoryStream stream1 = new MemoryStream(); //сериализовали в джейсон, но он пуст DataContractJsonSerializer zapros_POST_Flicht = new DataContractJsonSerializer(typeof(RootObject)); //заполняем жейсон zapros_POST_Flicht.WriteObject(stream1, post_v_flicht); stream1.Position = 0; StreamReader sr = new StreamReader(stream1); string sss = sr.ReadToEnd(); //создаем запрос по юрл HttpWebRequest http_flicht = (HttpWebRequest)WebRequest.Create(zapros_post_URI); http_flicht.Method = "POST"; http_flicht.ContentType = "application/json"; ASCIIEncoding aSCII = new ASCIIEncoding(); //152 строка изменена byte[] byte1 = aSCII.GetBytes(sss); //для чего это строка? вроде как для распределении памяти http_flicht.ContentLength = byte1.Length; //создаем поток с запросом Stream stream = http_flicht.GetRequestStream(); //в поток записываем байты stream.Write(byte1, 0, byte1.Length); //получаем ответ // try //{ var httpResponse = http_flicht.GetResponse(); //ответ в поток var responseStream = httpResponse.GetResponseStream(); //записать поток в чтение var reader = new StreamReader(responseStream); //что прочли в строку string response = reader.ReadToEnd(); ID_nom p = JsonConvert.DeserializeObject <ID_nom>(response); //написать проверку на ответ, должен прийти флайт реквест Console.WriteLine(response); bool post_flight_otvet = response != null; return(p.requestId); //} //catch (WebException rt) //{ // Console.WriteLine(rt.Message); // Stream qweqwe = rt.Response.GetResponseStream(); // StreamReader streamReaderqweqe = new StreamReader(qweqwe); // string qwe = streamReaderqweqe.ReadToEnd(); // Console.WriteLine(qwe); // return 0; //} }
public void Fact9PackageProfileStudentVsVip() { //TrainProfile.RootObject zapros = new TrainProfile.RootObject(); //zapros.adults = 2; //zapros.routes[0].origin = 1; //zapros.routes[0].destination = 2; //zapros.routes[0].destinationAirportCode = ""; 12 //zapros.routes[1].origin = 1; //zapros.routes[1].destination = 2; //zapros.routes[1].destinationAirportCode = ""; //zapros.profile. ID_nom p = new ID_nom(); //var otvetTrainProfile = program.Post_zapros("https://apitest.suntigo.com/api/1/package/search", zapros, p); //нужно сравнить два объекта при разных запросах в профиле и сравнить полученный результат1 //создать и заполнить объект PackageSearchProfile.RootObject packageSearchProfile = new PackageSearchProfile.RootObject(); packageSearchProfile.adults = 2; packageSearchProfile.routes = new List <PackageSearchProfile.Route>(); PackageSearchProfile.Route routePackage = new PackageSearchProfile.Route(); PackageSearchProfile.Route routePackage2 = new PackageSearchProfile.Route(); routePackage.origin = 2395; routePackage.destination = 513; routePackage.destinationAirportCode = routePackage.destination.ToString(); routePackage.date = program.Friday_Sunday(dateTime).ToString(); routePackage2.date = program.Friday_Sunday(dateTime).AddDays(2).ToString(); routePackage2.origin = 513; routePackage2.destination = 2395; routePackage2.destinationAirportCode = routePackage2.destination.ToString(); packageSearchProfile.routes.Add(routePackage); packageSearchProfile.routes.Add(routePackage2); //руты заполнены //тип студент 123 PackageSearchProfile.TicketProfile ticketProfileOne = new PackageSearchProfile.TicketProfile(); ticketProfileOne.serviceClass = "E"; ticketProfileOne.stops = "0,4"; List <int> mastransportTypes = new List <int>(); mastransportTypes.Add(1); mastransportTypes.Add(2); mastransportTypes.Add(3); ticketProfileOne.transportTypes = mastransportTypes; // тот же лист, должен встать, как по маслу //тикет профаил заполнен packageSearchProfile.ticketProfile = ticketProfileOne; PackageSearchProfile.HotelProfile hotelProfile = new PackageSearchProfile.HotelProfile(); hotelProfile.freeCancellation = false; List <string> hoteltyp = new List <string>(); hoteltyp.Add("hotel"); hoteltyp.Add("hostel"); hoteltyp.Add("apartment"); hoteltyp.Add("mini-hotel"); hotelProfile.hotelTypes = hoteltyp; //хотел типс заполнен //милсы нуль132 List <string> stars = new List <string>(); stars.Add("1"); stars.Add("2"); stars.Add("3"); hotelProfile.stars = stars; hotelProfile.rating = "5,8"; packageSearchProfile.hotelProfile = hotelProfile; //используется та же ссылка packageSearchProfile внутри дальше меняем только профайлы если строку сместить вниз будет ошибка ID_nom pp = new ID_nom(); var otvetPackageProfile = program.Post_zapros("https://apitest.suntigo.com/api/1/package/search", packageSearchProfile, pp); PackageSearchProfile.TicketProfile ticketProfile2 = new PackageSearchProfile.TicketProfile(); ticketProfile2.serviceClass = "B"; ticketProfile2.stops = "0,1"; ticketProfile2.transportTypes = mastransportTypes; PackageSearchProfile.HotelProfile hotelProfile2 = new PackageSearchProfile.HotelProfile(); List <string> hoteltyp2 = new List <string>(); hoteltyp2.Add("hotel"); hoteltyp2.Add("apartment"); hotelProfile2.hotelTypes = hoteltyp2; List <string> stars2 = new List <string>(); stars2.Add("4"); stars2.Add("5"); hotelProfile2.stars = stars2; hotelProfile2.rating = "7,10"; packageSearchProfile.ticketProfile = ticketProfile2; packageSearchProfile.hotelProfile = hotelProfile2; var otvetPackageProfile2 = program.Post_zapros("https://apitest.suntigo.com/api/1/package/search", packageSearchProfile, pp); //PackageResultsProfile.RootObject resVersion1 = new PackageResultsProfile.RootObject(); var res = program.Get <PackageResultsProfile.RootObject>("https://apitest.suntigo.com/api/1/package/results", "RequestId", otvetPackageProfile.requestId, "Language", "English"); var res2 = program.Get <PackageResultsProfile.RootObject>("https://apitest.suntigo.com/api/1/package/results", "RequestId", otvetPackageProfile2.requestId, "Language", "English"); //влейся авыаы gfdgd Assert.True(!program.EqualsResults(res, res2)); }