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); } } } } } }
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); }
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); }
protected void HandledRequestSuccessfully(IRestResponse response, T expectedResult) { StatusCodeShouldBeIsSuccessful(response); var actualResponse = JSONLibrary.DeserializeJSon <T>(response.Content); expectedResult.Id = actualResponse.Id; actualResponse.Should().BeEquivalentTo(expectedResult); }
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); }
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); }
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); } }
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; }
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; }
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); }
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); }
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"); }
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); }
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"); }
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); }
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); }
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); }
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); }
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); }
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); }