コード例 #1
0
        public void ClassifiedDataTest(string guid, string digest, string auth)
        {
            var client  = new RestClient(TestConfiguration.API.Location);
            var request = new RestRequest("/objects/{guid}", Method.GET);

            request
            .AddUrlSegment("guid", guid)
            .AddParameter("digest", digest)
            .AddHeader("Authorization", auth);

            var response = client.Execute <ReadClassifiedModel.RootObject>(request);

            if (response.StatusCode != HttpStatusCode.OK || response.Data == null || response.Data.Success == false)
            {
                throw new Exception(AssertMessages.StatusCodeErrorMessage(client.BuildUri(request), response.StatusCode, response.Content));
            }

            List <string> allErrorMessages = new List <string>();

            ValidationResultModel <ReadClassifiedModel.RootObject> classifiedDataMainResults;
            var isClassifiedDataValid = GlobalLogic.IsModelValid(response.Data, out classifiedDataMainResults);

            ValidationResultModel <ReadClassifiedModel.Items> classifiedDataItemsResults;
            var areClassifiedDataItemsValid = GlobalLogic.IsModelValid(response.Data.Items, out classifiedDataItemsResults);

            if (!isClassifiedDataValid)
            {
                var message = $"Classified with success: {classifiedDataMainResults.Model.Success} and results: {classifiedDataMainResults.Model.Results}."
                              .RequestInfo(client, request)
                              .WithValidationErrors(classifiedDataMainResults.Results);

                allErrorMessages.Add(message);
            }

            if (!areClassifiedDataItemsValid)
            {
                var message = $"Classified items with guid: {classifiedDataItemsResults.Model.guid}"
                              .RequestInfo(client, request)
                              .WithValidationErrors(classifiedDataItemsResults.Results);

                allErrorMessages.Add(message);
            }


            if (allErrorMessages.Any())
            {
                var allMessages = string.Join("\r\n\r\n", allErrorMessages);
                throw new Exception(allMessages);
            }
        }
コード例 #2
0
        public void InvalidDealerAuthorizationTest()
        {
            var client  = new RestClient(TestConfiguration.API.Location);
            var request = new RestRequest("/users/{dealer_name}", Method.GET);

            request
            .AddUrlSegment("dealer_name", Data.DealerName)
            .AddParameter("digest", Data.Digest)
            .AddHeader("Authorization", "Basic dXNlZGNhcnNfYXBpOmhBQzMyVFdCUzY_invalid=");

            var response = client.Execute <DealerDataModel.RootObject>(request);

            if (response.StatusCode != HttpStatusCode.Unauthorized)
            {
                throw new Exception(AssertMessages.StatusCodeErrorMessage(client.BuildUri(request), response.StatusCode, response.Content));
            }
        }
コード例 #3
0
        public void InvalidDealerDigestTest()
        {
            var client  = new RestClient(TestConfiguration.API.Location);
            var request = new RestRequest("/users/{dealer_name}", Method.GET);

            request
            .AddUrlSegment("dealer_name", Data.DealerName)
            .AddParameter("digest", "gLqVqvqHTxZk9RHxwtPjkbWtNAbdBpGh_invalid")
            .AddHeader("Authorization", Data.BasicAuth);

            var response = client.Execute <DealerDataModel.RootObject>(request);

            if (response.StatusCode != HttpStatusCode.OK || response.Data == null || response.Data.Success == true)
            {
                throw new Exception(AssertMessages.StatusCodeErrorMessage(client.BuildUri(request), response.StatusCode, response.Content));
            }

            if (!(response.Content.Contains("false") && response.Content.Contains("Auth fail")))
            {
                var response1 = client.Execute <ErrorModel.AuthFail>(request);
                throw new Exception(AssertMessages.InvalidDigestErrorMessage(response1.Data.Success, response1.Data.Message, client.BuildUri(request)));
            }
        }
コード例 #4
0
        public void InvalidDealerNameTest()
        {
            var client  = new RestClient(TestConfiguration.API.Location);
            var request = new RestRequest("users/{dealer_name}", Method.GET);

            request
            .AddUrlSegment("dealer_name", "Jane2018_invalid")
            .AddParameter("digest", Data.Digest)
            .AddHeader("Authorization", Data.BasicAuth);

            var response = client.Execute <DealerDataModel.RootObject>(request);

            if (response.StatusCode != HttpStatusCode.OK || response.Data == null || response.Data.Success == true)
            {
                throw new Exception(AssertMessages.StatusCodeErrorMessage(client.BuildUri(request), response.StatusCode, response.Content));
            }

            if (!(response.Content.Contains("false") && response.Content.Contains("Query does not exist")))
            {
                var response1 = client.Execute <ErrorModel.RootObject>(request);
                throw new Exception(AssertMessages.InvalidDealerNameErrorMessage(response1.Data.Description, response1.Data.Error_code, client.BuildUri(request)));
            }
        }
コード例 #5
0
        public void LeadsCreatingTest(string digest, string auth, string email, string dealerName, string phone, int user_id)
        {
            var client   = new RestClient(TestConfiguration.API.Location);
            var request1 = new RestRequest("/objects?digest={digest}", Method.POST);

            //Create Classified
            request1.RequestFormat = DataFormat.Json;
            request1
            .AddHeader("Authorization", auth)
            .AddUrlSegment("digest", digest)
            .AddJsonBody(
                new
            {
                data =
                    new
                {
                    user_id = dealerName,
                    year    = "2000",
                    city    = "noida",
                    model   =
                        new
                    {
                        model = "astonmartin-db9",
                        brand = "astonmartin"
                    },
                    price             = "777777",
                    variant_id        = "astonmartin-db9-coupe",
                    km_driven         = 22222,
                    owners            = 1,
                    color             = "white",
                    fuel_type         = "Petrol",
                    transmission      = "Manual",
                    engine            = 3333,
                    body_type         = "Sedan",
                    have_certificated = "no",
                    classified_phone  = "+91-9999999999",
                    address           = "Test",
                    status            = 1,
                    source            = "Cabinet"
                }
            });

            var response1 = client.Execute <CreateClassifiedModel>(request1);

            EnsureOkResponseStatusCode(response1, client, request1);

            List <string> allErrorMessages = new List <string>();

            ValidationResultModel <CreateClassifiedModel> createClassifiedResults;
            var isCreateClassifiedValid = GlobalLogic.IsModelValid(response1.Data, out createClassifiedResults);

            if (!isCreateClassifiedValid)
            {
                var message = $"\r\nCreate Classified with success: '{createClassifiedResults.Model.Success}' and Guid: '{createClassifiedResults.Model.Guid}'\r\n"
                              .RequestInfo(client, request1)
                              .WithValidationErrors(createClassifiedResults.Results);

                allErrorMessages.Add(message);
            }

            //Read Classified
            var request2 = new RestRequest("/objects/{guid}", Method.GET);

            request2
            .AddUrlSegment("guid", response1.Data.Guid)
            .AddParameter("digest", digest)
            .AddHeader("Authorization", auth);

            var response2 = client.Execute <ReadClassifiedModel.RootObject>(request2);

            if (response2.StatusCode != HttpStatusCode.OK || response2.Data == null || response2.Data.Success == false)
            {
                throw new Exception(AssertMessages.StatusCodeErrorMessage(client.BuildUri(request2), response2.StatusCode, response2.Content));
            }

            ValidationResultModel <ReadClassifiedModel.RootObject> classifiedDataMainResults;
            var isClassifiedDataValid = GlobalLogic.IsModelValid(response2.Data, out classifiedDataMainResults);

            if (!isClassifiedDataValid)
            {
                var message = $"Classified with success: {classifiedDataMainResults.Model.Success} and Id: {classifiedDataMainResults.Model.Items.id}."
                              .RequestInfo(client, request2)
                              .WithValidationErrors(classifiedDataMainResults.Results);

                allErrorMessages.Add(message);
            }

            //Create Lead
            var request3 = new RestRequest("/lead/create?digest={digest}", Method.POST);

            request3
            .AddHeader("Authorization", auth)
            .AddUrlSegment("digest", digest)
            .AddJsonBody(new{
                classified_id  = response2.Data.Items.id,
                customer_email = email,
                customer_name  = dealerName,
                customer_phone = phone,
                dealer_id      = user_id
            });

            var response3 = client.Execute <LeadModel.RootObject>(request3);

            EnsureOkResponseStatusCode(response3, client, request3);

            ValidationResultModel <LeadModel.RootObject> createLeadResults;
            var isCreateLeadDataValid = GlobalLogic.IsModelValid(response3.Data, out createLeadResults);

            if (!isCreateLeadDataValid)
            {
                var message = $"\r\nCreate Lead with success: '{createLeadResults.Model.Success}' and Lead id: '{createLeadResults.Model.LeadId}'\r\n"
                              .RequestInfo(client, request3)
                              .WithValidationErrors(createLeadResults.Results);

                allErrorMessages.Add(message);
            }


            //Create Cross-Share Lead
            var request4 = new RestRequest("/lead/cross-share?digest={digest}", Method.POST);

            request4
            .AddHeader("Authorization", auth)
            .AddUrlSegment("digest", digest)
            .AddJsonBody(new
            {
                lead_id = response3.Data.LeadId
            });

            var response4 = client.Execute <RegisterRequestModel>(request4);

            EnsureOkResponseStatusCode(response4, client, request4);

            ValidationResultModel <RegisterRequestModel> createCShLeadResults;
            var isCreateCShLeadDataValid = GlobalLogic.IsModelValid(response4.Data, out createCShLeadResults);

            if (!isCreateCShLeadDataValid)
            {
                var message = $"\r\nCreate Cross-Share Lead with success: '{createCShLeadResults.Model.Success}\r\n"
                              .RequestInfo(client, request4)
                              .WithValidationErrors(createCShLeadResults.Results);

                allErrorMessages.Add(message);
            }

            //Update Classified
            var request5 = new RestRequest("/objects/{guid}?digest={digest}", Method.PUT);

            request5.RequestFormat = DataFormat.Json;
            request5
            .AddUrlSegment("guid", response1.Data.Guid)
            .AddUrlSegment("digest", digest)
            .AddHeader("Authorization", auth)
            .AddParameter("data[status]", 3

                          );

            /* .AddJsonBody(
             * new
             * {
             *   data =
             *   new
             *   {
             *       status = 3
             *   }
             * });*/

            var response5 = client.Execute <RegisterRequestModel>(request5);

            EnsureOkResponseStatusCode(response5, client, request5);

            ValidationResultModel <RegisterRequestModel> updateClassifiedResults;
            var isupdateClassifiedsDataValid = GlobalLogic.IsModelValid(response5.Data, out updateClassifiedResults);

            if (!isupdateClassifiedsDataValid)
            {
                var message = $"\r\nUpdate Classified with success: '{updateClassifiedResults.Model.Success}\r\n"
                              .RequestInfo(client, request5)
                              .WithValidationErrors(updateClassifiedResults.Results);

                allErrorMessages.Add(message);
            }



            if (allErrorMessages.Any())
            {
                var allMessages = string.Join("\r\n\r\n", allErrorMessages);
                throw new Exception(allMessages);
            }
        }