/// <summary> Метод работы с веб-запросами в общем виде </summary> /// <param name="method">Метод запроса</param> /// <param name="url">URI адрес запроса</param> /// <param name="json">Опциональный json для POST запроса</param> /// <returns> Сообщение с ответом </returns> public static Task <HttpResponseMessage> Request(string method, string url, string json = "") { var response = Requests.Request(method, url, json); response.Wait(); return(response); }
public void GivenEnsurePetIsGone() { var requestutil = new GeneralHttpRequest(); // Убеждаемся, что пета больше нет в базе var response = requestutil.Request("get", requestutil.PetGetUri + ScenarioContext.Current["CreatedPetId"].ToString()); response.Wait(); Assert.AreEqual(404, (int)response.Result.StatusCode, "Удаленный питомец найден через сервис"); }
public void GivenEnsureThatDeletionOrderIsOk() { var requestutils = new GeneralHttpRequest(); // Проверка, что удаление успешно (по запросу заказа по id) var response = requestutils.Request("get", requestutils.PetGetOrderUri + ScenarioContext.Current["CreatedOrderId"].ToString()); response.Wait(); Assert.AreEqual(404, (int)response.Result.StatusCode, "Заказ на животное найден после удаления"); }
public void GivenCreatePetWithNameAndPhotourls(string name, string photourl) { // Считаем пустые строки за NULL - отсутствие аргумента name = name == "" ? null : name; photourl = photourl == "" ? null : photourl; // Вставляем аргументы в json var requestutil = new GeneralHttpRequest(); var jsonClass = requestutil.JsonPetInfo; jsonClass.Name = name; jsonClass.PhotoUrls.Add(photourl); var json = JsonConvert.SerializeObject(jsonClass); var response = requestutil.Request("post", requestutil.PetCreateUri, json); response.Wait(); // Если хотя бы одно из обязательных полей отсутствует var expectedCode = name != null && photourl != null ? 200 : 405; Assert.AreEqual(expectedCode, (int)response.Result.StatusCode, "Возвращен неверный код ответа"); // Если успешно создано выше - проверка получения пета по id var message = response.Result.Content.ReadAsStringAsync().Result; var id = Convert.ToInt64(JObject.Parse(message)["id"]); // Присваиваем полученную созданную id jsonClass.Id = id; // Проверяем код ответа на запрос по получению пета var responseGet = requestutil.Request("get", requestutil.PetGetUri + id.ToString()); var responseGetCode = responseGet.Result.StatusCode; Assert.AreEqual(200, (int)responseGetCode, "Новосозданное животное недоступно по ид"); // Проверяем, что полученный json соответствует тому, что мы отправляли var responseGetClass = JsonConvert.DeserializeObject <GeneralHttpRequest.PetInfo>(responseGet.Result.Content.ReadAsStringAsync().Result); responseGetClass.Should().BeEquivalentTo(jsonClass, options => options.WithoutStrictOrdering()); ScenarioContext.Current["CreatedPetId"] = id; }
public void GivenSendEmptyJsonBody() { var requestutil = new GeneralHttpRequest(); var response = requestutil.Request("post", requestutil.PetCreateUri, "{}"); response.Wait(); Assert.AreEqual(405, (int)response.Result.StatusCode, "Возвращен неверный код ответа"); }
public void GivenEnsureOrderCreationIsOk() { var requestutils = new GeneralHttpRequest(); // Проверка, что создание успешно (по запросу заказа по id) var response = requestutils.Request("get", requestutils.PetGetOrderUri + ScenarioContext.Current["CreatedOrderId"].ToString()); response.Wait(); Assert.AreEqual(200, (int)response.Result.StatusCode, "Ошибка в получении заказа на животное"); // Заносим десериализованное сообщение для дальнейшей проверки ScenarioContext.Current["UpdateMessageChecking"] = JsonConvert.DeserializeObject <GeneralHttpRequest.PetInfo>(response.Result.Content.ReadAsStringAsync().Result); }
public void GivenClearAllBaseWithPetIDs() { var requestutils = new GeneralHttpRequest(); // Удаляем животное по id for (int i = 200; i < 10000; i++) { var response = requestutils.Request("delete", requestutils.PetGetOrderUri + (1845563262948988700 + i).ToString()); response.Wait(); } }
public void GivenDeletePetAndCheck() { var id = ScenarioContext.Current["CreatedPetId"]; //var id = GivenCreatePetWithNameAndPhotourls("test", "test"); var requestutil = new GeneralHttpRequest(); // Удаляем созданное животное var response = requestutil.Request("delete", requestutil.PetGetUri + id.ToString()); response.Wait(); // Записываем код ответа ScenarioContext.Current["CodeResponse"] = (int)response.Result.StatusCode; // Удаляем то же животное второй раз, ждем ошибку response = requestutil.Request("delete", requestutil.PetGetUri + id.ToString()); response.Wait(); Assert.AreEqual(404, (int)response.Result.StatusCode, "Удаление произошло два раза"); }
public void GivenEnsurePetInfoWasChanged() { var requestutil = new GeneralHttpRequest(); // Проверяем в базе, что данные перезаписались var message = requestutil.Request("get", requestutil.PetGetUri + ScenarioContext.Current["CreatedPetId"].ToString()); message.Wait(); var responseCode = (int)message.Result.StatusCode; // Заносим код ответа и десериализованный message ScenarioContext.Current["CodeResponse"] = responseCode; ScenarioContext.Current["UpdateMessageChecking"] = JsonConvert.DeserializeObject <GeneralHttpRequest.PetInfo>(message.Result.Content.ReadAsStringAsync().Result); }
public void GivenDeletePetOrder() { var id = ScenarioContext.Current["CreatedOrderId"]; var requestutils = new GeneralHttpRequest(); // Удаляем животное по id var response = requestutils.Request("delete", requestutils.PetGetOrderUri + id.ToString()); response.Wait(); // Заношу код ответа ScenarioContext.Current["CodeResponse"] = (int)response.Result.StatusCode; }
public void GivenChangePetInfoAndEnsureItSChanged() { var requestutil = new GeneralHttpRequest(); var jsonClass = requestutil.JsonPetInfo; //PETINFO jsonClass.Id = (long)ScenarioContext.Current["CreatedPetId"]; jsonClass.Name = "winnie-the-pooh"; var json = JsonConvert.SerializeObject(jsonClass); var response = requestutil.Request("put", requestutil.PetCreateUri, json); response.Wait(); // Заносим код ответа и json обновления инфы ScenarioContext.Current["CodeResponse"] = (int)response.Result.StatusCode; ScenarioContext.Current["UpdateMessage"] = jsonClass; }
public void GivenGetPetByStatus(string status) { // Возможные статусы животного List <string> legalStatuses = new List <string>() { "available", "pending", "sold" }; var requestUtil = new GeneralHttpRequest(); var response = requestUtil.Request("get", requestUtil.PetGetUri + status); response.Wait(); // Входит ли статус в список допустимых var expectedCode = legalStatuses.Contains(status) ? 200 : 400; Assert.AreEqual(expectedCode, (int)response.Result.StatusCode, "Возвращен неверный код ответа"); }
public void GivenCreateOrderForAPetAndCheckInBase() { var requestutil = new GeneralHttpRequest(); var jsonClass = requestutil.JsonOrderPet; //ORDERPET var json = JsonConvert.SerializeObject(jsonClass); // Отправляем запрос на создание заказа и ждем ответа var response = requestutil.Request("post", requestutil.PetOrderCreateUri, json); response.Wait(); // Извлекаем Id для запроса var responseJson = response.Result.Content.ReadAsStringAsync().Result; var id = Convert.ToInt64(JObject.Parse(responseJson)["id"]); // Заносим id заказа, код ответа и json обновления инфы ScenarioContext.Current["CreatedOrderId"] = id; ScenarioContext.Current["CodeResponse"] = (int)response.Result.StatusCode; ScenarioContext.Current["UpdateMessage"] = jsonClass; }