コード例 #1
0
ファイル: PetSteps.cs プロジェクト: ShaDaniel/REST-test
        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, "Удаленный питомец найден через сервис");
        }
コード例 #2
0
ファイル: PetSteps.cs プロジェクト: ShaDaniel/REST-test
        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, "Заказ на животное найден после удаления");
        }
コード例 #3
0
ファイル: PetSteps.cs プロジェクト: ShaDaniel/REST-test
        public void GivenSendEmptyJsonBody()
        {
            var requestutil = new GeneralHttpRequest();

            var response = requestutil.Request("post", requestutil.PetCreateUri, "{}");

            response.Wait();

            Assert.AreEqual(405, (int)response.Result.StatusCode, "Возвращен неверный код ответа");
        }
コード例 #4
0
ファイル: PetSteps.cs プロジェクト: ShaDaniel/REST-test
        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);
        }
コード例 #5
0
ファイル: PetSteps.cs プロジェクト: ShaDaniel/REST-test
        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();
            }
        }
コード例 #6
0
ファイル: PetSteps.cs プロジェクト: ShaDaniel/REST-test
        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);
        }
コード例 #7
0
ファイル: PetSteps.cs プロジェクト: ShaDaniel/REST-test
        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;
        }
コード例 #8
0
ファイル: PetSteps.cs プロジェクト: ShaDaniel/REST-test
        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;
        }
コード例 #9
0
ファイル: PetSteps.cs プロジェクト: ShaDaniel/REST-test
        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, "Возвращен неверный код ответа");
        }
コード例 #10
0
ファイル: PetSteps.cs プロジェクト: ShaDaniel/REST-test
        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;
        }
コード例 #11
0
ファイル: PetSteps.cs プロジェクト: ShaDaniel/REST-test
        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;
        }
コード例 #12
0
ファイル: PetSteps.cs プロジェクト: ShaDaniel/REST-test
        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, "Удаление произошло два раза");
        }