コード例 #1
0
        protected void HandledRequestSuccessfullyAndFilterValueMatches(IRestResponse response, Dictionary <string, object> filterDictionary)
        {
            StatusCodeShouldBeIsSuccessful(response);
            var actualResponses = JSONLibrary.DeserializeJSon <List <T> >(response.Content);

            foreach (var actualResponse in actualResponses)
            {
                foreach (KeyValuePair <string, object> entry in filterDictionary)
                {
                    Type           objectType       = typeof(T);
                    PropertyInfo[] objectProperties = objectType.GetProperties();

                    foreach (PropertyInfo propertyInfo in objectProperties)
                    {
                        var fieldName = propertyInfo.Name;
                        if (fieldName == entry.Key)
                        {
                            if (entry.Value is IList)
                            {
                                PropertyInfo pi = actualResponse.GetType().GetProperty(fieldName);
                                object       responseFieldValue = pi.GetValue(actualResponse);
                                ((IList)(responseFieldValue)).Should().Contain((IList)(entry.Value));
                            }
                            else
                            {
                                actualResponse.GetType().GetRuntimeProperty(fieldName).Should().Equals(entry.Value);
                            }
                        }
                    }
                }
            }
        }
コード例 #2
0
        public void Should_update_direct_client_order_with_all_fields_updated()
        {
            // arrange
            var request      = GetValidRequest();
            var postResponse = httpService.PerformPost(request);
            var response     = JSONLibrary.DeserializeJSon <Order>(postResponse.Content);

            request.Id         = response.Id;
            request.Name       = "UpdatedDirectOrder";
            request.ClientId   = DataClass.Agency1.ClientData[1].Client.Id;
            request.ContactIds = new List <string> {
                DataClass.Agency1.ClientData[1].Contact[0].Id
            };
            request.OwnerIds = new List <string> {
                DataClass.OwnerOnly[1].Id
            };
            request.ClientBrandId  = DataClass.Agency1.ClientData[1].BrandData[0].Brand.Id;
            request.BrandProductId = DataClass.Agency1.ClientData[1].BrandData[0].Product[0].Id;

            //act
            var apiResponse = httpService.PerformPut(request, request.Id);

            //assert
            HandledRequestSuccessfully(apiResponse, request);
        }
コード例 #3
0
        private string GetNewOrderID()
        {
            var orderRequest = new Order
            {
                Name       = "AutomationClientOrder",
                ClientId   = DataClass.Agency1.ClientData[0].Client.Id,
                ContactIds = new List <string> {
                    DataClass.Agency1.ClientData[0].Contact[0].Id
                },
                OwnerIds = new List <string> {
                    DataClass.OwnerOnly[0].Id
                },
                Status         = 1,
                ClientBrandId  = DataClass.Agency1.ClientData[0].BrandData[0].Brand.Id,
                BrandProductId = DataClass.Agency1.ClientData[0].BrandData[0].Product[0].Id,
                AgencyId       = null
            };
            var automationVariables = AppSettingsInitialization.GetConfigInstance();

            httpService.EndPoint = automationVariables.OrderAPI;
            var orderResponse = httpService.PerformPost(orderRequest);
            var response      = JSONLibrary.DeserializeJSon <Order>(orderResponse.Content);

            orderRequest.Id = response.Id;
            return(orderRequest.Id);
        }
コード例 #4
0
        protected void HandledRequestSuccessfully(IRestResponse response, T expectedResult)
        {
            StatusCodeShouldBeIsSuccessful(response);
            var actualResponse = JSONLibrary.DeserializeJSon <T>(response.Content);

            expectedResult.Id = actualResponse.Id;
            actualResponse.Should().BeEquivalentTo(expectedResult);
        }
コード例 #5
0
        public void OneTimeSetUp()
        {
            httpService.EndPoint = AutomationVariables.OrderItemTypeAPI;
            Request = GetValidRequest();
            var postResponse = httpService.PerformPost(Request);
            var response     = JSONLibrary.DeserializeJSon <OrderItemType>(postResponse.Content);

            Request.Id = response.Id;
        }
        public void OneTimeSetUp()
        {
            httpService.EndPoint = AutomationVariables.BillingLineBuyingAreaAPI;
            Request = GetValidRequest();
            var postResponse = httpService.PerformPost(Request);
            var response     = JSONLibrary.DeserializeJSon <BillingLineBuyingArea>(postResponse.Content);

            Request.Id = response.Id;
        }
        public BillingLineBuyingArea CreateBuyingArea(BillingLineBuyingArea request)
        {
            AutomationVariables AutomationVariables = AppSettingsInitialization.GetConfigInstance();

            httpService.EndPoint = AutomationVariables.BillingLineBuyingAreaAPI;
            var postResponse = httpService.PerformPost(request);
            var response     = JSONLibrary.DeserializeJSon <BillingLineBuyingArea>(postResponse.Content);

            return(response);
        }
        public string CreateProductID(BillingLineProduct request)
        {
            var automationVariables = AppSettingsInitialization.GetConfigInstance();

            httpService.EndPoint = automationVariables.BillingLineProductAPI;
            var productResponse = httpService.PerformPost(request);
            var response        = JSONLibrary.DeserializeJSon <Order>(productResponse.Content);

            return(response.Id);
        }
コード例 #9
0
        public OrderItemType GetOrderItemType()
        {
            var automationVariables = AppSettingsInitialization.GetConfigInstance();

            httpService.EndPoint = automationVariables.OrderItemTypeAPI;
            var orderResponse    = httpService.PerformGet();
            var response         = JSONLibrary.DeserializeJSon <List <OrderItemType> >(orderResponse.Content);
            var selectedResponse = response.FirstOrDefault(r => r.Name == "AutomationOrderItem");

            return((selectedResponse == null) ? GetNewOrderItemType() : selectedResponse);
        }
コード例 #10
0
        protected void ResponseShouldContainInstances(IRestResponse response, List <string> expectedInstances)
        {
            StatusCodeShouldBeIsSuccessful(response);
            var           actualResponseInstances   = JSONLibrary.DeserializeJSon <List <T> >(response.Content);
            List <string> actualResponseInstanceIds = actualResponseInstances.Select(i => i.Id).ToList();

            foreach (string expectedInstance in expectedInstances)
            {
                actualResponseInstanceIds.Should().Contain(expectedInstance);
            }
        }
コード例 #11
0
        public IRestResponse PerformPost(T ExpectedObject)
        {
            var postRequestBody = JSONLibrary.SerializeJSon <T>(ExpectedObject);

            Report.WriteToFile("HTTP Verb: POST");
            var postResponse = ApiRequest.PostApi(EndPoint, postRequestBody);

            Report.WriteToFile("Request : " + "\n" + postRequestBody);
            Report.WriteToFile("Response : " + "\n" + postResponse.Content);
            Report.WriteToFile("Status Code : " + postResponse.StatusCode);
            return(postResponse);
        }
        public string GetBuyingAreaId()
        {
            var automationVariables = AppSettingsInitialization.GetConfigInstance();

            httpService.EndPoint = automationVariables.OrderAPI;
            var orderResponse    = httpService.PerformGet();
            var response         = JSONLibrary.DeserializeJSon <List <BillingLineBuyingArea> >(orderResponse.Content);
            var selectedResponse = response.FirstOrDefault(r => r.Name == "AutomationBillingLineBuyingArea");
            var request          = GetRequest();

            return((selectedResponse == null) ? CreateBuyingArea(request).Id : selectedResponse.Id);
        }
        public void OneTimeSetup()
        {
            httpService.EndPoint = AutomationVariables.BillingLineProductAPI;
            BuyingAreaIds        = new List <string> {
                new BillingLineBuyingAreaCreation().GetBuyingAreaId(), new BillingLineBuyingAreaCreation().GetBuyingAreaId()
            };
            Request = GetValidRequest();
            var postResponse = httpService.PerformPost(Request);
            var response     = JSONLibrary.DeserializeJSon <BillingLineProduct>(postResponse.Content);

            Request.Id = response.Id;
        }
コード例 #14
0
        public void OneTimeSetUp()
        {
            newOrderId = new OrderCreation().GetOrderID();
            newOrderItemTypeDetails = new OrderItemTypeCreation().GetOrderItemType();
            Thread.Sleep(5000); //Caching time is 5 sec for getting order item type
            httpService.EndPoint = AutomationVariables.OrderAPI + $"/{newOrderId}/orderItems";
            Request = GetValidRequest();
            var postResponse = httpService.PerformPost(Request);
            var response     = JSONLibrary.DeserializeJSon <Order>(postResponse.Content);

            Request.Id = response.Id;
        }
コード例 #15
0
        public IRestResponse PerformPatch(T ExpectedObject, string queryString = null)
        {
            var endPoint         = (queryString != null) ? EndPoint + "/" + queryString : EndPoint;
            var patchRequestBody = JSONLibrary.SerializeJSon <T>(ExpectedObject);

            Report.WriteToFile("HTTP Verb: PATCH");
            var patchResponse = ApiRequest.PatchApi(endPoint, patchRequestBody);

            Report.WriteToFile("Request : " + "\n" + patchRequestBody);
            Report.WriteToFile("Response : " + "\n" + patchResponse.Content);
            Report.WriteToFile("Status Code : " + patchResponse.StatusCode);
            return(patchResponse);
        }
コード例 #16
0
        public void Should_update_currency_status_successfully()
        {
            // arrange
            var getResponse = httpService.PerformGet(DataClass.AUSCurrency.Id);
            var request     = JSONLibrary.DeserializeJSon <Currency>(getResponse.Content);

            request.IsDisabled = (!request.IsDisabled) ? true : false;

            //act
            var apiResponse = httpService.PerformPatch(request, request.Id + "/isdisabled");

            //assert
            HandledRequestSuccessfully(apiResponse, request);
        }
        public void Should_delete_specific_product_successfully()
        {
            //arrange
            var request      = GetValidRequest();
            var postResponse = httpService.PerformPost(request);
            var response     = JSONLibrary.DeserializeJSon <BillingLineProduct>(postResponse.Content);

            request.Id = response.Id;

            //act
            var apiResponse = httpService.PerformDelete(request.Id);

            //assert
            StatusCodeShouldBe(apiResponse, HttpStatusCode.OK);
        }
        public void Should_create_billing_line_buying_area_successfully()
        {
            // arrange
            var request      = GetValidRequest();
            var postResponse = httpService.PerformPost(request);
            var response     = JSONLibrary.DeserializeJSon <BillingLineBuyingArea>(postResponse.Content);

            request.ParentId = response.Id;
            request.Name     = "NewChildBuyingArea";

            //act
            var apiResponse = httpService.PerformPost(request);

            //assert
            HandledRequestSuccessfully(apiResponse, request);
        }
        public void Should_update_billing_line_product_isdisabled_successfully()
        {
            //act
            var request      = GetValidRequest();
            var postResponse = httpService.PerformPost(request);
            var response     = JSONLibrary.DeserializeJSon <BillingLineProduct>(postResponse.Content);

            request.Id         = response.Id;
            request.IsDisabled = true;

            //assign
            var apiResponse = httpService.PerformPut(request, request.Id);

            //assert
            HandledRequestSuccessfully(apiResponse, request);
        }
コード例 #20
0
        public void Should_return_bad_request_when_creating_order_item_with_existing_order_item_key()
        {
            // arrange
            var request      = GetValidRequest();
            var postResponse = httpService.PerformPost(request);
            var response     = JSONLibrary.DeserializeJSon <OrderItemType>(postResponse.Content);

            request.Id   = response.Id;
            request.Name = "OrderItem_" + GenericLibrary.GenerateGuid();

            // act
            var apiResponse = httpService.PerformPost(request);

            // assert
            StatusCodeShouldBe(apiResponse, HttpStatusCode.BadRequest, "This Campaign Item Type Key already exists");
        }
コード例 #21
0
        public void Should_update_billing_line_buying_area_from_active_to_inactive_successfully()
        {
            //act
            var request      = GetValidRequest();
            var postResponse = httpService.PerformPost(request);
            var response     = JSONLibrary.DeserializeJSon <BillingLineBuyingArea>(postResponse.Content);

            request.Id         = response.Id;
            request.IsDisabled = true;

            //arrange
            var apiResponse = httpService.PerformPut(request, request.Id);

            //assert
            HandledRequestSuccessfully(apiResponse, request);
        }
        public void Should_return_inactive_buying_area_when_creating_inactive_buying_area_under_active_parent_buying_area()
        {
            // arrange
            var request              = GetValidRequest();
            var postResponse         = httpService.PerformPost(request);
            var activeParentResponse = JSONLibrary.DeserializeJSon <BillingLineBuyingArea>(postResponse.Content);
            var ParentId             = activeParentResponse.Id;

            request.ParentId   = ParentId;
            request.IsDisabled = true;

            //act
            var apiResponse = httpService.PerformPost(request);

            //assert
            HandledRequestSuccessfully(apiResponse, request);
        }
コード例 #23
0
        public void Should_update_direct_client_order_with_blank_product()
        {
            // arrange
            var request      = GetValidRequest();
            var postResponse = httpService.PerformPost(request);
            var response     = JSONLibrary.DeserializeJSon <Order>(postResponse.Content);

            request.Id             = response.Id;
            request.Name           = "UpdatedDirectOrder";
            request.BrandProductId = null;

            //act
            var apiResponse = httpService.PerformPut(request, request.Id);

            //assert
            HandledRequestSuccessfully(apiResponse, request);
        }
        public void Should_return_bad_request_when_update_product_with_inactive_buying_area_id()
        {
            //act
            var request      = GetValidRequest();
            var postResponse = httpService.PerformPost(request);
            var response     = JSONLibrary.DeserializeJSon <BillingLineProduct>(postResponse.Content);

            request.Id            = response.Id;
            request.BuyingAreaIds = new List <string> {
                new BillingLineBuyingAreaCreation().GetDisabledBuyingAreaId()
            };

            //assign
            var apiResponse = httpService.PerformPut(request, request.Id);

            //assert
            StatusCodeShouldBe(apiResponse, HttpStatusCode.BadRequest, "No Product Buying Area for given Buying Area Id");
        }
コード例 #25
0
        public void Should_update_agency_order_when_setting_client_brand_and_product_to_null()
        {
            // arrange
            var request      = GetValidRequest();
            var postResponse = httpService.PerformPost(request);
            var response     = JSONLibrary.DeserializeJSon <Order>(postResponse.Content);

            request.Id             = response.Id;
            request.Name           = "UpdatedAgencyOrder";
            request.ClientBrandId  = null;
            request.BrandProductId = null;

            //act
            var apiResponse = httpService.PerformPut(request, request.Id);

            //assert
            HandledRequestSuccessfully(apiResponse, request);
        }
コード例 #26
0
        public void Should_update_all_fields_of_order_item_successfully()
        {
            // arrange
            var request      = GetValidRequest();
            var postResponse = httpService.PerformPost(request);
            var response     = JSONLibrary.DeserializeJSon <OrderItemType>(postResponse.Content);

            request.Id            = response.Id;
            request.Name          = response.Name + "X";
            request.IsDisabled    = true;
            request.Url           = "https://test.com";
            request.InitialStatus = "Completed";

            //act
            var apiResponse = httpService.PerformPut(request, request.Id);

            //assert
            HandledRequestSuccessfully(apiResponse, request);
        }
コード例 #27
0
        private OrderItemType GetNewOrderItemType()
        {
            var orderItemTypeRequest = new OrderItemType
            {
                Name          = "AutomationOrderItem",
                IsDisabled    = false,
                Url           = "https://www.test.com",
                Key           = GenericLibrary.RandomString(10),
                InitialStatus = "ReadyToBook"
            };
            var automationVariables = AppSettingsInitialization.GetConfigInstance();

            httpService.EndPoint = automationVariables.OrderItemTypeAPI;
            var orderItemTypeResponse = httpService.PerformPost(orderItemTypeRequest);
            var response = JSONLibrary.DeserializeJSon <OrderItemType>(orderItemTypeResponse.Content);

            orderItemTypeRequest.Id = response.Id;
            return(orderItemTypeRequest);
        }
コード例 #28
0
        public void Should_update_billing_line_buying_area_all_fields_successfully()
        {
            //act
            var request      = GetValidRequest();
            var postResponse = httpService.PerformPost(request);
            var response     = JSONLibrary.DeserializeJSon <BillingLineBuyingArea>(postResponse.Content);

            request.Id      = response.Id;
            request.Name    = "UpdateName";
            request.EndDate = new DateTimeOffset(DateTime.Now.AddMonths(2));
            request.AvailableForBillingLine = false;
            request.IsDisabled = true;

            //arrange
            var apiResponse = httpService.PerformPut(request, request.Id);

            //assert
            HandledRequestSuccessfully(apiResponse, request);
        }
コード例 #29
0
        public void Should_update_agency_order_when_changing_client_within_same_agency_and_its_respective_fields()
        {
            // arrange
            var request      = GetValidRequest();
            var postResponse = httpService.PerformPost(request);
            var response     = JSONLibrary.DeserializeJSon <Order>(postResponse.Content);

            request.Id             = response.Id;
            request.Name           = "UpdatedAgencyOrder";
            request.ClientId       = DataClass.Agency1.ClientData[1].Client.Id;
            request.ClientBrandId  = DataClass.Agency1.ClientData[1].BrandData[0].Brand.Id;
            request.BrandProductId = DataClass.Agency1.ClientData[1].BrandData[0].Product[0].Id;

            //act
            var apiResponse = httpService.PerformPut(request, request.Id);

            //assert
            HandledRequestSuccessfully(apiResponse, request);
        }
コード例 #30
0
        public void Should_update_agency_order_when_providing_multiple_owners()
        {
            // arrange
            var request      = GetValidRequest();
            var postResponse = httpService.PerformPost(request);
            var response     = JSONLibrary.DeserializeJSon <Order>(postResponse.Content);

            request.Id       = response.Id;
            request.Name     = "UpdatedAgencyOrder";
            request.OwnerIds = new List <string> {
                DataClass.OwnerOnly[0].Id, DataClass.OwnerOnly[1].Id
            };

            //act
            var apiResponse = httpService.PerformPut(request, request.Id);

            //assert
            HandledRequestSuccessfully(apiResponse, request);
        }