示例#1
0
        public void CheckGuidTest(string digest, string emailguid, string auth)
        {
            var client  = new RestClient(TestConfiguration.API.Location);
            var request = new RestRequest("/user/pass_reset/{emailguid}", Method.GET);

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

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

            EnsureOkResponseStatusCode(response, client, request);

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

            ValidationResultModel <RegisterRequestModel> checkguidResults;
            var isCheckOtpDataValid = GlobalLogic.IsModelValid(response.Data, out checkguidResults);

            if (!isCheckOtpDataValid)
            {
                var message = $"CheckGuid with success: {checkguidResults.Model.Success}."
                              .RequestInfo(client, request)
                              .WithValidationErrors(checkguidResults.Results);

                allErrorMessages.Add(message);
            }
            if (allErrorMessages.Any())
            {
                var allMessages = string.Join("\r\n\r\n", allErrorMessages);
                throw new Exception(allMessages);
            }
        }
示例#2
0
        public void LeadListTest(string digest, string auth)
        {
            var client  = new RestClient(TestConfiguration.API.Location);
            var request = new RestRequest("/lead/list?digest={digest}", Method.GET);

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

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

            EnsureOkResponseStatusCode(response, client, request);

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

            ValidationResultModel <LeadListModel.RootObject> leadListMainResults;
            var isLeadListDataValid = GlobalLogic.IsModelValid(response.Data, out leadListMainResults);

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

                allErrorMessages.Add(message);
            }

            if (allErrorMessages.Any())
            {
                var allMessages = string.Join("\r\n\r\n", allErrorMessages);
                throw new Exception(allMessages);
            }
        }
示例#3
0
        public void CheckOtpTest(string digest, string phone, int otp, string auth)
        {
            var client  = new RestClient(TestConfiguration.API.Location);
            var request = new RestRequest("/user/otp_check", Method.GET);

            request
            .AddParameter("digest", digest)
            .AddParameter("phone", phone)
            .AddParameter("otp", otp)
            .AddHeader("Authorization", auth);

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

            GlobalLogic.EnsureOkResponseStatusCode(response, client, request);

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

            ValidationResultModel <CheckOtpModel> checkotpResults;
            var isCheckOtpDataValid = GlobalLogic.IsModelValid(response.Data, out checkotpResults);

            if (!isCheckOtpDataValid)
            {
                var message = $"CheckOtp with success: {checkotpResults.Model.Success} and username: {checkotpResults.Model.Username}."
                              .RequestInfo(client, request)
                              .WithValidationErrors(checkotpResults.Results);

                allErrorMessages.Add(message);
            }
            if (allErrorMessages.Any())
            {
                var allMessages = string.Join("\r\n\r\n", allErrorMessages);
                throw new Exception(allMessages);
            }
        }
示例#4
0
        public void RecommendsTest(string digest, string guid, int user_id, string auth)
        {
            var client  = new RestClient(TestConfiguration.API.Location);
            var request = new RestRequest("/recommends", Method.GET);

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

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

            EnsureOkResponseStatusCode(response, client, request);

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

            ValidationResultModel <RecommendsModel.RootObject> recommendsMainResults;
            var isRecommendsDataValid = GlobalLogic.IsModelValid(response.Data, out recommendsMainResults);

            IList <ValidationResultModel <RecommendsModel.Item> > recommendsAndRecentlyAddedResults;
            var areRecommendsAndRecentlyAddedItemsValid = GlobalLogic.IsModelArrayValid(response.Data.RecentlyAdded.Concat(response.Data.Recommendations), out recommendsAndRecentlyAddedResults);

            if (!isRecommendsDataValid)
            {
                var message = $"Recommends with success: {recommendsMainResults.Model.Success}."
                              .RequestInfo(client, request)
                              .WithValidationErrors(recommendsMainResults.Results);

                allErrorMessages.Add(message);
            }

            if (!areRecommendsAndRecentlyAddedItemsValid)
            {
                foreach (var recommendsAndRecentlyAddedResult in recommendsAndRecentlyAddedResults.Where(x => x.Results.Any()))
                {
                    var message = $"RecentlyAdded item with Guid: {recommendsAndRecentlyAddedResult.Model.Guid}"
                                  .RequestInfo(client, request)
                                  .WithValidationErrors(recommendsAndRecentlyAddedResult.Results);

                    allErrorMessages.Add(message);
                }
            }

            if (allErrorMessages.Any())
            {
                var allMessages = string.Join("\r\n\r\n", allErrorMessages);
                throw new Exception(allMessages);
            }
        }
示例#5
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);
            }
        }
示例#6
0
        public void UploadImageTest(string digest, string auth, string guid)
        {
            foreach (string fileType in Data.Filetypes)
            {
                var client  = new RestClient(TestConfiguration.API.Location);
                var request = new RestRequest("/file?digest={digest}", Method.POST);

                request.RequestFormat = DataFormat.Json;
                request
                .AddHeader("Authorization", auth)
                .AddUrlSegment("digest", digest)
                .AddJsonBody(
                    new
                {
                    username = Data.DealerName,
                    guid     = guid,
                    file     =
                        new
                    {
                        type    = fileType,
                        name    = Data.ImageName,
                        content = Data.FileContent
                    }
                });

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

                EnsureOkResponseStatusCode(response, client, request);

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

                ValidationResultModel <UploadImageModel> UploadImageResults;
                var isUploadImageValid = GlobalLogic.IsModelValid(response.Data, out UploadImageResults);

                if (!isUploadImageValid)
                {
                    var message = $"\r\nUploaded photo with success: '{UploadImageResults.Model.Success}' and Url: '{UploadImageResults.Model.Url}'\r\n"
                                  .RequestInfo(client, request)
                                  .WithValidationErrors(UploadImageResults.Results);

                    allErrorMessages.Add(message);
                }
                if (allErrorMessages.Any())
                {
                    var allMessages = string.Join("\r\n\r\n", allErrorMessages);
                    throw new Exception(allMessages);
                }
            }
        }
示例#7
0
        public void DealerLeadsTest(string digest, string auth)
        {
            var client  = new RestClient(TestConfiguration.API.Location);
            var request = new RestRequest("lead/list?digest={digest}", Method.GET);

            request

            .AddUrlSegment("digest", digest)
            .AddHeader("Authorization", auth);

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

            EnsureOkResponseStatusCode(response, client, request);

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

            ValidationResultModel <DealerLeadsModel.RootObject> dealerLeadsMainResults;
            var isDealerLeadsDataValid = GlobalLogic.IsModelValid(response.Data, out dealerLeadsMainResults);

            IList <ValidationResultModel <DealerLeadsModel.Item> > DealerLeadsItemResults;
            var areDealerLeadsDataItemsValid = GlobalLogic.IsModelArrayValid(response.Data.Items, out DealerLeadsItemResults);

            if (!isDealerLeadsDataValid)
            {
                var message = $"Dealer leads with success: {dealerLeadsMainResults.Model.Success} and results: {dealerLeadsMainResults.Model.Results}."
                              .RequestInfo(client, request)
                              .WithValidationErrors(dealerLeadsMainResults.Results);

                allErrorMessages.Add(message);
            }

            if (!areDealerLeadsDataItemsValid)
            {
                foreach (var DealerLeadsItemResult in DealerLeadsItemResults.Where(x => x.Results.Any()))
                {
                    var message = $"Dealer lead item with Classified_id: {DealerLeadsItemResult.Model.Classified_id}"
                                  .RequestInfo(client, request)
                                  .WithValidationErrors(DealerLeadsItemResult.Results);

                    allErrorMessages.Add(message);
                }
            }

            if (allErrorMessages.Any())
            {
                var allMessages = string.Join("\r\n\r\n", allErrorMessages);
                throw new Exception(allMessages);
            }
        }
示例#8
0
        public void CertifiersTest(string digest, string auth)
        {
            var client  = new RestClient(TestConfiguration.API.Location);
            var request = new RestRequest("/certifiers?digest={digest}", Method.GET);

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

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

            EnsureOkResponseStatusCode(response, client, request);

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

            ValidationResultModel <CertifiersModel.RootObject> certifiersMainResults;
            var isCertifiersDataValid = GlobalLogic.IsModelValid(response.Data, out certifiersMainResults);

            IList <ValidationResultModel <CertifiersModel.Item> > CertifiersItemResults;
            var areCertifiersDataItemsValid = GlobalLogic.IsModelArrayValid(response.Data.Items, out CertifiersItemResults);

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

                allErrorMessages.Add(message);
            }

            if (!areCertifiersDataItemsValid)
            {
                foreach (var CertifiersItemResult in CertifiersItemResults.Where(x => x.Results.Any()))
                {
                    var message = $"Certifier item with Name: {CertifiersItemResult.Model.Name}"
                                  .RequestInfo(client, request)
                                  .WithValidationErrors(CertifiersItemResult.Results);

                    allErrorMessages.Add(message);
                }
            }

            if (allErrorMessages.Any())
            {
                var allMessages = string.Join("\r\n\r\n", allErrorMessages);
                throw new Exception(allMessages);
            }
        }
示例#9
0
        public void RegSourceTest(string digest, string auth)
        {
            var client  = new RestClient(TestConfiguration.API.Location);
            var request = new RestRequest("/user/reg_request_source?digest={digest}", Method.GET);

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

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

            EnsureOkResponseStatusCode(response, client, request);

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

            ValidationResultModel <RegSourceModel.RootObject> regSourceMainResults;
            var isRegSourceDataValid = GlobalLogic.IsModelValid(response.Data, out regSourceMainResults);

            IList <ValidationResultModel <RegSourceModel.Item> > RegSourceItemResults;
            var areRegSourceDataItemsValid = GlobalLogic.IsModelArrayValid(response.Data.Items, out RegSourceItemResults);

            if (!isRegSourceDataValid)
            {
                var message = $"Registration source with success: {regSourceMainResults.Model.Success} and results: {regSourceMainResults.Model.Results}."
                              .RequestInfo(client, request)
                              .WithValidationErrors(regSourceMainResults.Results);

                allErrorMessages.Add(message);
            }

            if (!areRegSourceDataItemsValid)
            {
                foreach (var RegSourceItemResult in RegSourceItemResults.Where(x => x.Results.Any()))
                {
                    var message = $"Source item with Name: {RegSourceItemResult.Model.Name}"
                                  .RequestInfo(client, request)
                                  .WithValidationErrors(RegSourceItemResult.Results);

                    allErrorMessages.Add(message);
                }
            }

            if (allErrorMessages.Any())
            {
                var allMessages = string.Join("\r\n\r\n", allErrorMessages);
                throw new Exception(allMessages);
            }
        }
示例#10
0
        public void DealerDataTest(string dealer, string digest, string auth)
        {
            var client  = new RestClient(TestConfiguration.API.Location);
            var request = new RestRequest("/users/{dealer_name}", Method.GET);

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

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

            EnsureOkResponseStatusCode(response, client, request);

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

            ValidationResultModel <DealerDataModel.RootObject> dealerDataMainResults;
            var isDealerDataValid = GlobalLogic.IsModelValid(response.Data, out dealerDataMainResults);

            ValidationResultModel <DealerDataModel.Items> dealerDataItemResults;
            var areDealerDataItemsValid = GlobalLogic.IsModelValid(response.Data.Items, out dealerDataItemResults);

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

                allErrorMessages.Add(message);
            }

            if (!areDealerDataItemsValid)
            {
                var message = $"Dealer items with user name: {dealerDataMainResults.Model.Items.User_name}"
                              .RequestInfo(client, request)
                              .WithValidationErrors(dealerDataMainResults.Results);

                allErrorMessages.Add(message);
            }

            if (allErrorMessages.Any())
            {
                var allMessages = string.Join("\r\n\r\n", allErrorMessages);
                throw new Exception(allMessages);
            }
        }
        public void RegisterRequestValidTest(string digest, string auth, string contentType)
        {
            var client  = new RestClient(TestConfiguration.API.Location);
            var request = new RestRequest("/user/reg_requests?digest={digest}", Method.POST);

            request
            .AddUrlSegment("digest", digest)
            .AddHeader("Content-Type", contentType)
            .AddHeader("Authorization", auth)
            .AddJsonBody(new
            {
                name        = "Testttt11",
                phone       = "+9198765418",
                city        = "New Delhi",
                dealer_type = "1",
                source      = "Android_app"
            });


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

            EnsureOkResponseStatusCode(response, client, request);

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

            ValidationResultModel <RegisterRequestModel> registerRequestResults;
            var isRegisterRequestValid = GlobalLogic.IsModelValid(response.Data, out registerRequestResults);

            if (!isRegisterRequestValid)
            {
                var message = $"Register Request with success: {registerRequestResults.Model.Success}"
                              .RequestInfo(client, request)
                              .WithValidationErrors(registerRequestResults.Results);

                allErrorMessages.Add(message);
            }

            if (allErrorMessages.Any())
            {
                var allMessages = string.Join("\r\n\r\n", allErrorMessages);
                throw new Exception(allMessages);
            }
        }
示例#12
0
        public void ValidateNphNumberTest(string dealer, string digest, string newPhone, string auth)
        {
            var generator = new Random();

            var    client         = new RestClient(TestConfiguration.API.Location);
            var    request        = new RestRequest("/users/{dealer_name}/phone?digest={digest}", Method.PUT);
            var    requestCounter = 0;
            string newPhoneRandom;
            IRestResponse <ValidateNphNumberModel> response;

            do
            {
                newPhoneRandom = newPhone + generator.Next(0, 100000).ToString("D5");
                request
                .AddUrlSegment("dealer_name", dealer)
                .AddUrlSegment("digest", digest)
                .AddParameter("phone", newPhoneRandom)
                .AddHeader("Authorization", auth);

                response = client.Execute <ValidateNphNumberModel>(request);
            } while (response.Data.Success == false && requestCounter++ < 5);

            EnsureOkResponseStatusCode(response, client, request);

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

            ValidationResultModel <ValidateNphNumberModel> validatenphnumberResults;
            var isValidateNphNumberDataValid = GlobalLogic.IsModelValid(response.Data, out validatenphnumberResults);

            if (!isValidateNphNumberDataValid)
            {
                var message = $"ValidateNphNumber with success: {validatenphnumberResults.Model.Success} and description: {validatenphnumberResults.Model.Description}."
                              .RequestInfo(client, request)
                              .WithValidationErrors(validatenphnumberResults.Results);

                allErrorMessages.Add(message);
            }
            if (allErrorMessages.Any())
            {
                var allMessages = string.Join("\r\n\r\n", allErrorMessages);
                throw new Exception(allMessages);
            }
        }
示例#13
0
        public void FeedbackTest(string digest, string auth, string contentType)
        {
            var client  = new RestClient(TestConfiguration.API.Location);
            var request = new RestRequest("/user/feedback?digest={digest}", Method.POST);

            request
            .AddUrlSegment("digest", digest)
            .AddHeader("Content-Type", contentType)
            .AddHeader("Authorization", auth)
            .AddJsonBody(new
            {
                username = Data.DealerName,
                message  = "Hello World!"
            });


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

            EnsureOkResponseStatusCode(response, client, request);

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

            ValidationResultModel <RegisterRequestModel> feedbackResults;
            var isFeedbackValid = GlobalLogic.IsModelValid(response.Data, out feedbackResults);

            if (!isFeedbackValid)
            {
                var message = $"Feedback with success: {feedbackResults.Model.Success}"
                              .RequestInfo(client, request)
                              .WithValidationErrors(feedbackResults.Results);

                allErrorMessages.Add(message);
            }

            if (allErrorMessages.Any())
            {
                var allMessages = string.Join("\r\n\r\n", allErrorMessages);
                throw new Exception(allMessages);
            }
        }
示例#14
0
        public void SendOtpTest(string digest, string phone, string auth, string contentType)
        {
            var client  = new RestClient(TestConfiguration.API.Location);
            var request = new RestRequest("user/otp_set?digest={digest}", Method.POST);

            request
            .AddUrlSegment("digest", digest)
            .AddHeader("Content-Type", contentType)
            .AddHeader("Authorization", auth)
            .AddJsonBody(new
            {
                phone = phone
            });


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

            GlobalLogic.EnsureOkResponseStatusCode(response, client, request);


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

            ValidationResultModel <RegisterRequestModel> sendotpResults;
            var isSendOtpValid = GlobalLogic.IsModelValid(response.Data, out sendotpResults);

            if (!isSendOtpValid)
            {
                var message = $"SendOtp with success: {sendotpResults.Model.Success}"
                              .RequestInfo(client, request)
                              .WithValidationErrors(sendotpResults.Results);

                allErrorMessages.Add(message);
            }

            if (allErrorMessages.Any())
            {
                var allMessages = string.Join("\r\n\r\n", allErrorMessages);
                throw new Exception(allMessages);
            }
        }
示例#15
0
        public void PhVerifyTest(string digest, string auth, string newPhone)
        {
            var    generator      = new Random();
            var    client         = new RestClient(TestConfiguration.API.Location);
            var    request1       = new RestRequest("/sms/verify-phone-v2", Method.GET);
            var    requestCounter = 0;
            string newPhoneRandom;
            IRestResponse <PhVerifyModel> response1;

            do
            {
                newPhoneRandom = newPhone + generator.Next(0, 100000).ToString("D5");

                request1
                .AddParameter("digest", digest)
                .AddParameter("phone", newPhoneRandom)
                .AddHeader("Authorization", auth);

                response1 = client.Execute <PhVerifyModel>(request1);
            } while (response1.Data.Success == false && requestCounter++ < 5);

            EnsureOkResponseStatusCode(response1, client, request1);

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

            ValidationResultModel <PhVerifyModel> phverifyResults;
            var isPhVerifyDataValid = GlobalLogic.IsModelValid(response1.Data, out phverifyResults);

            if (!isPhVerifyDataValid)
            {
                var message = $"PhVerify with success: {phverifyResults.Model.Success} and message: {phverifyResults.Model.Message}."
                              .RequestInfo(client, request1)
                              .WithValidationErrors(phverifyResults.Results);

                allErrorMessages.Add(message);
            }


            /*var request3 = new RestRequest("/sms/verify-phone-v2", Method.GET);
             *
             *  request3
             *  .AddParameter("digest", digest)
             *  .AddParameter("phone", newPhoneRandom)
             *  .AddParameter("code", response2.Data.Verify_code)
             *  .AddHeader("Authorization", auth);
             *
             * var response3 = client.Execute<RegisterRequestModel>(request3);
             *
             * EnsureOkResponseStatusCode(response3, client, request3);
             *
             * ValidationResultModel<RegisterRequestModel> codeVerifyResults;
             * var isCodeVerifyDataValid = GlobalLogic.IsModelValid(response3.Data, out codeVerifyResults);
             *
             * if (!isCodeVerifyDataValid)
             * {
             *  var message = $"CodeVerify with success: {codeVerifyResults.Model.Success}."
             *      .RequestInfo(client, request3)
             *      .WithValidationErrors(codeVerifyResults.Results);
             *
             *  allErrorMessages.Add(message);
             * }
             */


            if (allErrorMessages.Any())
            {
                var allMessages = string.Join("\r\n\r\n", allErrorMessages);
                throw new Exception(allMessages);
            }
        }
        public void ResetPasswordViaEmailTest(string digest, string email, string password, string auth, string contentType)
        {
            var client = new RestClient(TestConfiguration.API.Location);

            //Send Password Reset Email
            var request1 = new RestRequest("user/pass_mail?digest={digest}", Method.POST);

            request1
            .AddUrlSegment("digest", digest)
            .AddHeader("Content-Type", contentType)
            .AddHeader("Authorization", auth)
            .AddJsonBody(new
            {
                email = email
            });


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

            EnsureOkResponseStatusCode(response1, client, request1);

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

            ValidationResultModel <RegisterRequestModel> presetEmailResults;
            var isPResetEmailValid = GlobalLogic.IsModelValid(response1.Data, out presetEmailResults);

            if (!isPResetEmailValid)
            {
                var message = $"PResetEmail with success: {presetEmailResults.Model.Success}"
                              .RequestInfo(client, request1)
                              .WithValidationErrors(presetEmailResults.Results);

                allErrorMessages.Add(message);
            }

            //Get Guid
            var request2 = new RestRequest("user/get_pass_reset?digest={digest}", Method.GET);

            request2
            .AddUrlSegment("digest", digest)
            .AddHeader("Content-Type", contentType)
            .AddHeader("Authorization", auth)
            .AddParameter("email", email);



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

            EnsureOkResponseStatusCode(response2, client, request2);

            ValidationResultModel <GetGuidModel> getEmailResults;
            var isGetEmailValid = GlobalLogic.IsModelValid(response2.Data, out getEmailResults);

            if (!isGetEmailValid)
            {
                var message = $"GetEmail with success: {getEmailResults.Model.Success} and Guid: {getEmailResults.Model.Guid}."
                              .RequestInfo(client, request2)
                              .WithValidationErrors(getEmailResults.Results);

                allErrorMessages.Add(message);
            }

            //Check Guid
            var request3 = new RestRequest("/user/pass_reset/{guid}", Method.GET);

            request3
            .AddUrlSegment("guid", response2.Data.Guid)
            .AddParameter("digest", digest)
            .AddHeader("Authorization", auth);

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

            EnsureOkResponseStatusCode(response3, client, request3);


            ValidationResultModel <RegisterRequestModel> checkguidResults;
            var isCheckOtpDataValid = GlobalLogic.IsModelValid(response3.Data, out checkguidResults);

            if (!isCheckOtpDataValid)
            {
                var message = $"CheckGuid with success: {checkguidResults.Model.Success}."
                              .RequestInfo(client, request3)
                              .WithValidationErrors(checkguidResults.Results);

                allErrorMessages.Add(message);
            }

            //Change Password
            var request4 = new RestRequest("/user/pass_reset/{guid}?digest={digest}", Method.POST);

            request4
            .AddUrlSegment("guid", response2.Data.Guid)
            .AddUrlSegment("digest", digest)
            .AddHeader("Authorization", auth)
            .AddJsonBody(new
            {
                password = password
            });

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

            EnsureOkResponseStatusCode(response4, client, request4);


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

            if (!isChPassViaEmailDataValid)
            {
                var message = $"ChPassViaEmail with success: {chPassViaEmailResults.Model.Success}."
                              .RequestInfo(client, request4)
                              .WithValidationErrors(chPassViaEmailResults.Results);

                allErrorMessages.Add(message);
            }
            if (allErrorMessages.Any())
            {
                var allMessages = string.Join("\r\n\r\n", allErrorMessages);
                throw new Exception(allMessages);
            }
        }
示例#17
0
        public void ClassifiedUploadsTest(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);
            }

            //Upload images
            foreach (string fileType in Data.Filetypes)
            {
                var request2 = new RestRequest("/file?digest={digest}", Method.POST);

                request2.RequestFormat = DataFormat.Json;
                request2
                .AddHeader("Authorization", auth)
                .AddUrlSegment("digest", digest)
                .AddJsonBody(
                    new
                {
                    username = Data.DealerName,
                    guid     = response1.Data.Guid,
                    file     =
                        new
                    {
                        type    = fileType,
                        name    = Data.ImageName,
                        content = Data.FileContent
                    }
                });

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

                EnsureOkResponseStatusCode(response2, client, request2);


                ValidationResultModel <UploadImageModel> UploadImageResults;
                var isUploadImageValid = GlobalLogic.IsModelValid(response2.Data, out UploadImageResults);

                if (!isUploadImageValid)
                {
                    var message = $"\r\nUploaded photo with success: '{UploadImageResults.Model.Success}' and Url: '{UploadImageResults.Model.Url}'\r\n"
                                  .RequestInfo(client, request2)
                                  .WithValidationErrors(UploadImageResults.Results);

                    allErrorMessages.Add(message);
                }
                if (allErrorMessages.Any())
                {
                    var allMessages = string.Join("\r\n\r\n", allErrorMessages);
                    throw new Exception(allMessages);
                }
            }
            //Upload Certificate
            var request3 = new RestRequest("/file?digest={digest}", Method.POST);

            request3.RequestFormat = DataFormat.Json;
            request3
            .AddHeader("Authorization", auth)
            .AddUrlSegment("digest", digest)
            .AddJsonBody(
                new
            {
                username = Data.DealerName,
                guid     = response1.Data.Guid,
                file     =
                    new
                {
                    type    = Data.FileTypePdf,
                    name    = Data.PdfName,
                    content = Data.FileContentPdf
                }
            });

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

            EnsureOkResponseStatusCode(response3, client, request3);


            ValidationResultModel <UploadPdfModel> UploadPdfResults;
            var isUploadPdfValid = GlobalLogic.IsModelValid(response3.Data, out UploadPdfResults);

            if (!isUploadPdfValid)
            {
                var message = $"\r\nUploaded photo with success: '{UploadPdfResults.Model.Success}' and Url: '{UploadPdfResults.Model.Url}'\r\n"
                              .RequestInfo(client, request3)
                              .WithValidationErrors(UploadPdfResults.Results);

                allErrorMessages.Add(message);
            }

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

            request4.RequestFormat = DataFormat.Json;
            request4
            .AddUrlSegment("guid", response1.Data.Guid)
            .AddParameter("digest", digest)
            .AddHeader("Authorization", auth)
            .AddJsonBody(
                new
            {
                data =
                    new
                {
                    status = 3
                }
            });

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

            EnsureOkResponseStatusCode(response4, client, request4);

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

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

                allErrorMessages.Add(message);
            }



            if (allErrorMessages.Any())
            {
                var allMessages = string.Join("\r\n\r\n", allErrorMessages);
                throw new Exception(allMessages);
            }
        }
示例#18
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);
            }
        }
示例#19
0
        public void CreateClassifiedTest(string digest, string auth)
        {
            var client  = new RestClient(TestConfiguration.API.Location);
            var request = new RestRequest("/objects?digest={digest}", Method.POST);

            request.RequestFormat = DataFormat.Json;
            request
            .AddHeader("Authorization", auth)
            .AddUrlSegment("digest", digest)
            .AddJsonBody(
                new {
                data =
                    new {
                    user_id = "Jane",
                    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 response = client.Execute <CreateClassifiedModel>(request);

            EnsureOkResponseStatusCode(response, client, request);

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

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

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

                allErrorMessages.Add(message);
            }

            if (allErrorMessages.Any())
            {
                var allMessages = string.Join("\r\n\r\n", allErrorMessages);
                throw new Exception(allMessages);
            }
        }
        //newphone name refactoring
        public void ChangePhoneNumberTest(string dealer, string digest, string newPhone, int save, string auth)
        {
            var generator = new Random();

            var    client         = new RestClient(TestConfiguration.API.Location);
            var    request1       = new RestRequest("/users/{dealer_name}/phone?digest={digest}", Method.PUT);
            var    requestCounter = 0;
            string newPhoneRandom;
            IRestResponse <ValidateNphNumberModel> response1;

            do
            {
                newPhoneRandom = newPhone + generator.Next(0, 100000).ToString("D5");
                request1
                .AddUrlSegment("dealer_name", dealer)
                .AddUrlSegment("digest", digest)
                .AddParameter("phone", newPhoneRandom)
                .AddHeader("Authorization", auth);

                response1 = client.Execute <ValidateNphNumberModel>(request1);
            } while (response1.Data.Success == false && requestCounter++ < 5);

            EnsureOkResponseStatusCode(response1, client, request1);

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

            //refactor: inline out variable
            // use correct naming: validateNphNumberResults
            var isValidateNphNumberDataValid = GlobalLogic.IsModelValid(response1.Data, out var validateNphNumberResults);

            if (!isValidateNphNumberDataValid)
            {
                var message = $"ValidateNphNumber with success: {validateNphNumberResults.Model.Success} and description: {validateNphNumberResults.Model.Description}."
                              .RequestInfo(client, request1)
                              .WithValidationErrors(validateNphNumberResults.Results);

                allErrorMessages.Add(message);
            }



            var request2 = new RestRequest("/users/{dealer_name}/phone?digest={digest}", Method.PUT);

            request2
            .AddUrlSegment("dealer_name", dealer)
            .AddUrlSegment("digest", digest)
            .AddParameter("phone", newPhoneRandom)
            .AddParameter("save", save)
            .AddHeader("Authorization", auth);

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

            EnsureOkResponseStatusCode(response2, client, request2);

            //refactor: inline out variable
            var isSaveNewNumberDataValid = GlobalLogic.IsModelValid(response2.Data, out var saveNewNumberResults);

            if (!isSaveNewNumberDataValid)
            {
                var message = $"SaveNewNumber with success: {saveNewNumberResults.Model.Success} and description: {saveNewNumberResults.Model.Description}."
                              .RequestInfo(client, request2)
                              .WithValidationErrors(saveNewNumberResults.Results);

                allErrorMessages.Add(message);
            }


            var request3 = new RestRequest("/users/{dealer_name}", Method.GET);

            request3
            .AddUrlSegment("dealer_name", dealer)
            .AddParameter("digest", digest)
            .AddHeader("Authorization", auth);

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

            if (!response3.Data.Items.Phone.Equals("91" + newPhoneRandom))
            {
                var message = $"Updated phone number from DealerData: {response3.Data.Items.Phone} doesn't equal the expected value: {newPhoneRandom}.";

                allErrorMessages.Add(message);
            }


            var request4 = new RestRequest("/users/{dealer_name}/phone?digest={digest}", Method.PUT);

            request4
            .AddUrlSegment("dealer_name", dealer)
            .AddUrlSegment("digest", digest)
            .AddParameter("phone", Data.PhoneBack)
            .AddParameter("save", save)
            .AddHeader("Authorization", auth);

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

            EnsureOkResponseStatusCode(response4, client, request4);

            //refactor: inline out variable
            var ischangeNumberBackDataValid = GlobalLogic.IsModelValid(response4.Data, out var changeNumberBackResults);

            if (!ischangeNumberBackDataValid)
            {
                var message = $"ChangeNumberBack with success: {changeNumberBackResults.Model.Success} and description: {changeNumberBackResults.Model.Description}."
                              .RequestInfo(client, request4)
                              .WithValidationErrors(changeNumberBackResults.Results);

                allErrorMessages.Add(message);
            }


            if (allErrorMessages.Any())
            {
                var allMessages = string.Join("\r\n\r\n", allErrorMessages);
                throw new Exception(allMessages);
            }
        }
示例#21
0
        public void ResetPasswordViaPhoneTest(string digest, string phone, string password, string auth, string contentType)
        {
            var client = new RestClient(TestConfiguration.API.Location);

            //Send OTP
            var request1 = new RestRequest("user/otp_set?digest={digest}", Method.POST);

            request1
            .AddUrlSegment("digest", digest)
            .AddHeader("Content-Type", contentType)
            .AddHeader("Authorization", auth)
            .AddJsonBody(new
            {
                phone = phone
            });


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

            EnsureOkResponseStatusCode(response1, client, request1);


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

            ValidationResultModel <RegisterRequestModel> sendOtpResults;
            var isSendOtpValid = GlobalLogic.IsModelValid(response1.Data, out sendOtpResults);

            if (!isSendOtpValid)
            {
                var message = $"SendOtp with success: {sendOtpResults.Model.Success}"
                              .RequestInfo(client, request1)
                              .WithValidationErrors(sendOtpResults.Results);

                allErrorMessages.Add(message);
            }



            //Get OTP
            var request2 = new RestRequest("user/otp_get?digest={digest}", Method.GET);

            request2
            .AddUrlSegment("digest", digest)
            .AddHeader("Content-Type", contentType)
            .AddHeader("Authorization", auth)
            .AddParameter("phone", phone);



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

            EnsureOkResponseStatusCode(response2, client, request2);

            ValidationResultModel <GetOtpModel> getOtpResults;
            var isGetOtpValid = GlobalLogic.IsModelValid(response2.Data, out getOtpResults);

            if (!isGetOtpValid)
            {
                var message = $"GetOtp with success: {getOtpResults.Model.Success} and Otp: {getOtpResults.Model.Otp_code}."
                              .RequestInfo(client, request2)
                              .WithValidationErrors(sendOtpResults.Results);

                allErrorMessages.Add(message);
            }

            //Check OTP
            var request3 = new RestRequest("/user/otp_check", Method.GET);

            request3
            .AddParameter("digest", digest)
            .AddParameter("phone", phone)
            .AddParameter("otp", response2.Data.Otp_code)
            .AddHeader("Authorization", auth);

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

            EnsureOkResponseStatusCode(response3, client, request3);


            ValidationResultModel <CheckOtpModel> checkOtpResults;
            var isCheckOtpDataValid = GlobalLogic.IsModelValid(response3.Data, out checkOtpResults);

            if (!isCheckOtpDataValid)
            {
                var message = $"CheckOtp with success: {checkOtpResults.Model.Success} and username: {checkOtpResults.Model.Username}."
                              .RequestInfo(client, request3)
                              .WithValidationErrors(checkOtpResults.Results);

                allErrorMessages.Add(message);
            }

            //Change Password
            var request4 = new RestRequest("user/renew_pass?digest={digest}", Method.POST);

            request4
            .AddUrlSegment("digest", digest)
            .AddHeader("Content-Type", contentType)
            .AddHeader("Authorization", auth)
            .AddJsonBody(new
            {
                phone    = phone,
                otp      = response2.Data.Otp_code,
                password = password
            });


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

            EnsureOkResponseStatusCode(response4, client, request4);


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

            if (!isUpdatePasswordValid)
            {
                var message = $"UpdatePassword with success: {updatePasswordResults.Model.Success}"
                              .RequestInfo(client, request4)
                              .WithValidationErrors(updatePasswordResults.Results);

                allErrorMessages.Add(message);
            }


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