Пример #1
0
        private TestStep CreateTestStep(IMethodCallMessage methodCall, MethodInfo testMethod, Status caseStatus, int index)
        {
            var testStep   = new TestStep();
            var args       = methodCall.Args;
            var paramStr   = string.Empty;
            var paramInfos = testMethod.GetParameters();

            if (paramInfos.Any())
            {
                if (methodCall.ArgCount == paramInfos.Length)
                {
                    for (int i = 0; i < paramInfos.Length; i++)
                    {
                        if (args[i].GetType() == typeof(List <string>))
                        {
                            paramStr = $"{paramStr}, {paramInfos[i].ParameterType.Name} {paramInfos[i].Name} = '{string.Join(", ", args[i] as List<string>)}'";
                        }
                        else
                        {
                            paramStr = $"{paramStr}, {paramInfos[i].ParameterType.Name} {paramInfos[i].Name} = '{args[i]}'";
                        }
                    }
                }
                else
                {
                    foreach (var paramInfo in paramInfos)
                    {
                        paramStr = $"{paramStr}, {paramInfo.ParameterType.Name} {paramInfo.Name}";
                    }
                }

                paramStr = $"({paramStr.Trim(',').Trim()})";
            }

            testStep.SetName($"{testMethod.Name} {paramStr}".Trim());
            testStep.SetIndex(index);

            var stepAttr = testMethod.TestStep();

            testStep.SetID(stepAttr.ID);
            testStep.SetComment(stepAttr.Comment);

            if (caseStatus != Status.Undefined)
            {
                stepAttr.Status = caseStatus;
            }

            testStep.SetStatus(stepAttr.Status);

            return(testStep);
        }
Пример #2
0
        //public static TestStep EndTestStep(TestCase testCase,TestStep testStep, String testStepName, bool status, DriverContext driverContext)
        //{
        //    testStep.SetStepEndTime(new StringHelper().GetFormattedDateTimeNow());
        //    testStep.SetTestStep(testStepName);
        //    testStep.SetStatus(status);
        //    if (!testCase.GetTestCaseName().StartsWith("API_"))
        //    {
        //        testStep.SetImageContent(driverContext.TakeScreenshot().ToString());
        //    }

        //    return testStep;
        //}

        public static TestStep EndTestStep(TestCase testCase, TestStep testStep, String testStepName, bool status, string imageContent)
        {
            testStep.SetStepEndTime(new StringHelper().GetFormattedDateTimeNow());
            testStep.SetJiraStepEndTime(new StringHelper().GetFormattedDateTimeNow("jira"));
            testStep.SetTestStep(testStepName);
            testStep.SetStatus(status);
            if (!string.IsNullOrEmpty(imageContent))
            {
                //testStep.SetImageContent(driverContext.TakeScreenshot().ToString());
                testStep.SetImageContent(imageContent);
            }

            return(testStep);
        }
Пример #3
0
        public void BTA_513_MP_ForgotPassword()
        {
            ProjectBasePage basePages = new ProjectBasePage(driverContext);

            testCase        = new TestCase(TestContext.TestName);
            listOfTestSteps = new List <TestStep>();
            testStep        = new TestStep();
            string stepName           = "";
            string stepOutput         = "";
            bool   stepstatus         = false;
            string BTA_DEV_MP_LogPath = MemberPortalData.BTA_DEV_MP_LogPath;

            try
            {
                var MP_ForgotPassword    = new MemberPortal_ForgotPassword(DriverContext);
                var MPortal_LoginPage    = new MemberPortal_LoginPage(DriverContext);
                var CSP_LoginPage        = new CSPortal_LoginPage(DriverContext);
                var CSP_SearchPage       = new CSPortal_SearchPage(DriverContext);
                var CSP_HomePage         = new CSPortal_HomePage(DriverContext);
                var CSP_RegistrationPage = new CSPortal_MemberRegistrationPage(DriverContext);
                var MP_Profile           = new MemberProfile(DriverContext);
                var member        = MP_Profile.GenerateMemberBasicInfo();
                var details       = MP_Profile.GenerateMemberDetails();
                var myAccountPage = new MemberPortal_MyAccountPage(driverContext);
                var myProfilePage = new MemberPortal_MyProfilePage(driverContext);

                #region Step1:Launch CSPortal
                stepName = "Launch Customer Service Portal URL";
                testStep = TestStepHelper.StartTestStep(testStep);
                CSP_LoginPage.LaunchCSPortal(login.Csp_url, out stepOutput);
                testStep.SetOutput(stepOutput);
                testStep = TestStepHelper.EndTestStep(testCase, testStep, stepName, true, DriverContext.SendScreenshotImageContent("WEB"));
                listOfTestSteps.Add(testStep);
                #endregion

                #region Step2:Login As csadmin
                stepName       = "Login As csadmin User";
                testStep       = TestStepHelper.StartTestStep(testStep);
                login.UserName = CsPortalData.csadmin;
                login.Password = CsPortalData.csadmin_password;
                CSP_LoginPage.LoginCSPortal(login.UserName, login.Password, out stepOutput);
                testStep.SetOutput(stepOutput);
                testStep = TestStepHelper.EndTestStep(testCase, testStep, stepName, true, DriverContext.SendScreenshotImageContent("WEB"));
                listOfTestSteps.Add(testStep);
                #endregion

                #region Step3:Create new member user as per config file,if not existed
                stepName         = "Create new member user as per config file,if not existed";
                testStep         = TestStepHelper.StartTestStep(testStep);
                member.FirstName = MemberPortalData.ForgotPasswordTestMember;
                member.LastName  = MemberPortalData.ForgotPasswordTestMember;
                member.Username  = MemberPortalData.ForgotPasswordTestMember;
                member.Password  = RandomDataHelper.RandomAlphanumericStringWithSpecialChars(8);
                bool isMemberExists = CSP_SearchPage.VerifyMemberExists(member.Username, out stepOutput);
                testStep.SetOutput(stepOutput);
                if (!isMemberExists)
                {
                    CSP_HomePage.NavigateToDashBoardMenu(CSPortal_HomePage.DashBoard.MemberRegistration, out stepOutput);
                    stepstatus = CSP_RegistrationPage.EnterBasicInfo_Details(member.FirstName, member.LastName, member.MiddleName, details.Gender, out stepOutput);
                    stepstatus = CSP_RegistrationPage.EnterContactInfo_Details(member.PrimaryEmailAddress, member.PrimaryPhoneNumber, member.PrimaryPhoneNumber, member.PrimaryPhoneNumber, out stepOutput);
                    stepstatus = CSP_RegistrationPage.EnterLoginCredentials_Details(member.Username, member.Password, out stepOutput);
                    stepstatus = CSP_RegistrationPage.EnterOptIn_Out_Details("DirectMailOptIn", "EmailOptIn", "SmsOptIn", out stepOutput);
                    CSP_RegistrationPage.SaveRegistration();
                    testStep.SetOutput("Member created successfully with username: "******"WEB"));
                listOfTestSteps.Add(testStep);
                #endregion

                #region Step4:Logout as Csadmin
                stepName = "Logout from CS Portal User:"******"WEB"));
                testStep.SetOutput("Logout is Successful as User: "******"Launch Member Portal URL";
                testStep = TestStepHelper.StartTestStep(testStep);
                MPortal_LoginPage.LaunchMemberPortal(login.MemberPortal_url, out string Message);
                MP_ForgotPassword.GetInitialWordCountFromLogFile(BTA_DEV_MP_LogPath);
                testStep.SetOutput("Launch Member Portal URL is Successful");
                testStep = TestStepHelper.EndTestStep(testCase, testStep, stepName, true, DriverContext.SendScreenshotImageContent("WEB"));
                listOfTestSteps.Add(testStep);
                #endregion

                #region Step6:Click on Forgot Password
                stepName   = "Click on Forgot Password";
                testStep   = TestStepHelper.StartTestStep(testStep);
                stepstatus = MPortal_LoginPage.ClickForgotPassword();
                testStep.SetOutput("Clicked on Forgot Password Successfully");
                testStep = TestStepHelper.EndTestStep(testCase, testStep, stepName, stepstatus, DriverContext.SendScreenshotImageContent("WEB"));
                listOfTestSteps.Add(testStep);
                #endregion

                #region Step7:Enter valid user name and click Submit button
                stepName = "Enter a valid user name and click Submit button";
                testStep = TestStepHelper.StartTestStep(testStep);
                MP_ForgotPassword.EnterUserName(member.Username);
                MP_ForgotPassword.ClickSubmitButton();
                testStep.SetOutput("Entered User name: " + member.Username + " and clicked on Submit button");
                testStep = TestStepHelper.EndTestStep(testCase, testStep, stepName, true, DriverContext.SendScreenshotImageContent("WEB"));
                listOfTestSteps.Add(testStep);
                #endregion

                #region Step8:Select Email option to receive reset code
                stepName   = "Select Email option to receive reset code";
                testStep   = TestStepHelper.StartTestStep(testStep);
                stepstatus = MP_ForgotPassword.SelectEmailOption();
                testStep.SetOutput("Selected Email Option to receive reset code");
                testStep = TestStepHelper.EndTestStep(testCase, testStep, stepName, stepstatus, DriverContext.SendScreenshotImageContent("WEB"));
                listOfTestSteps.Add(testStep);
                #endregion

                #region Step9:Click on Send my reset code
                stepName   = "Click on Send my reset code";
                testStep   = TestStepHelper.StartTestStep(testStep);
                stepstatus = MP_ForgotPassword.ClickSendResetCodeButton();
                testStep.SetOutput("Clicked on Send my reset code");
                testStep = TestStepHelper.EndTestStep(testCase, testStep, stepName, stepstatus, DriverContext.SendScreenshotImageContent("WEB"));
                listOfTestSteps.Add(testStep);
                #endregion

                #region Step10: Select I already have a reset code option
                stepName   = "Select I already have a reset code option";
                testStep   = TestStepHelper.StartTestStep(testStep);
                stepstatus = MP_ForgotPassword.SelectAlreadyHaveResetCode();
                testStep.SetOutput("Selected I already have a reset code option");
                testStep = TestStepHelper.EndTestStep(testCase, testStep, stepName, stepstatus, DriverContext.SendScreenshotImageContent("WEB"));
                listOfTestSteps.Add(testStep);
                #endregion

                #region Step11:Click on Send my reset code
                stepName   = "Click on Send my reset code";
                testStep   = TestStepHelper.StartTestStep(testStep);
                stepstatus = MP_ForgotPassword.ClickSendResetCodeButton();
                testStep.SetOutput("Clicked on Send my reset code");
                testStep = TestStepHelper.EndTestStep(testCase, testStep, stepName, stepstatus, DriverContext.SendScreenshotImageContent("WEB"));
                listOfTestSteps.Add(testStep);
                #endregion

                #region Step12:Enter the reset code received in the Log
                stepName = "Enter the reset code received in the Log";
                testStep = TestStepHelper.StartTestStep(testStep);
                MP_ForgotPassword.EnterResetCodeFromLogFile(BTA_DEV_MP_LogPath, out stepOutput);
                testStep.SetOutput(stepOutput);
                testStep = TestStepHelper.EndTestStep(testCase, testStep, stepName, true, DriverContext.SendScreenshotImageContent("WEB"));
                listOfTestSteps.Add(testStep);
                #endregion

                #region Step13:Click on Submit button
                stepName   = "Click on Submit button";
                testStep   = TestStepHelper.StartTestStep(testStep);
                stepstatus = MP_ForgotPassword.ClickSubmitButton();
                testStep.SetOutput("Clicked on Submit button");
                testStep = TestStepHelper.EndTestStep(testCase, testStep, stepName, stepstatus, DriverContext.SendScreenshotImageContent("WEB"));
                listOfTestSteps.Add(testStep);
                #endregion

                #region Step14:Create new Password for Test User
                stepName        = "Create new Passwod for Test User";
                testStep        = TestStepHelper.StartTestStep(testStep);
                member.Password = RandomDataHelper.RandomAlphanumericStringWithSpecialChars(8);
                stepstatus      = MP_ForgotPassword.CreateNewPassword(member.Username, member.Password, member.Password, out stepOutput);
                testStep.SetOutput(stepOutput);
                testStep = TestStepHelper.EndTestStep(testCase, testStep, stepName, true, DriverContext.SendScreenshotImageContent("WEB"));
                listOfTestSteps.Add(testStep);
                #endregion

                #region Step15:Return back to login page
                stepName   = "Return back to login page";
                testStep   = TestStepHelper.StartTestStep(testStep);
                stepstatus = MP_ForgotPassword.ReturnToLoginPage(out stepOutput);
                testStep   = TestStepHelper.EndTestStep(testCase, testStep, stepName, stepstatus, DriverContext.SendScreenshotImageContent("WEB"));
                testStep.SetOutput(stepOutput);
                listOfTestSteps.Add(testStep);
                #endregion

                #region Step16:Login with the newly created Password
                stepName = "Login with User, User Name: " + member.FirstName + " with newly reset Password: "******"WEB")); testStep.SetOutput(stepName);
                listOfTestSteps.Add(testStep);
                #endregion

                #region Step17:Verify successful navigation to Member Portal home page
                stepName = "Verify successful navigation to Member Portal home page";
                testStep = TestStepHelper.StartTestStep(testStep);
                testStep.SetOutput(MPortal_LoginPage.VerifyMemberPortalLoginSuccessfulForUser(member.FirstName, member.LastName));
                testStep = TestStepHelper.EndTestStep(testCase, testStep, stepName, true, DriverContext.SendScreenshotImageContent("WEB"));
                listOfTestSteps.Add(testStep);
                #endregion

                #region Step18:Navigate to My Profile page
                stepName = "Navigate to My Profile page";
                testStep = TestStepHelper.StartTestStep(testStep);
                myAccountPage.NavigateToMPDashBoardMenu(MemberPortal_MyAccountPage.MPDashboard.MyProfile, out var Step_Output); var strStatus = Step_Output;
                testStep.SetStatus(myProfilePage.VerifyMyProfilePage(MemberPortal_MyProfilePage.Sections.MyProfile.ToString(), out Step_Output)); strStatus = strStatus + ". " + Step_Output;
                testStep.SetOutput(strStatus);
                testStep = TestStepHelper.EndTestStep(testCase, testStep, stepName, true, DriverContext.SendScreenshotImageContent("WEB"));
                listOfTestSteps.Add(testStep);
                #endregion

                #region Stept19:Change Password  for Test Member to default
                testStep = TestStepHelper.StartTestStep(testStep);
                stepName = "Change Password  for Test Member to default";
                string agen_OldPassword      = member.Password;
                string agent_DefaultPassword = AgentValues.Agentpassword;
                myProfilePage.ChangePassword(agen_OldPassword, agent_DefaultPassword, agent_DefaultPassword);
                stepstatus = myProfilePage.VerifySuccessMessage(agen_OldPassword, agent_DefaultPassword, out stepOutput); testStep.SetOutput(stepOutput);
                testStep   = TestStepHelper.EndTestStep(testCase, testStep, stepName, stepstatus, DriverContext.SendScreenshotImageContent("WEB"));
                listOfTestSteps.Add(testStep);
                #endregion

                #region Step20:Logout from Member portal
                stepName = "Logout from Member Portal";
                testStep = TestStepHelper.StartTestStep(testStep);
                MPortal_LoginPage.LogoutMPPortal(); testStep.SetOutput("Logout from Member Portal is Successful");
                testStep = TestStepHelper.EndTestStep(testCase, testStep, stepName, true, DriverContext.SendScreenshotImageContent("WEB"));
                listOfTestSteps.Add(testStep);
                #endregion

                testCase.SetStatus(true);
            }
            catch (Exception e)
            {
                testStep = TestStepHelper.EndTestStep(testCase, testStep, stepName, false, DriverContext.SendScreenshotImageContent("WEB"));
                listOfTestSteps.Add(testStep);
                testCase.SetStatus(false);
                testCase.SetErrorMessage(e.Message);
                testCase.SetImageContent(DriverContext.TakeScreenshot().ToString());
                Assert.Fail();
            }
            finally
            {
                testCase.SetTestCaseSteps(listOfTestSteps);
                testCase.SetEndTime(new StringHelper().GetFormattedDateTimeNow());
                listOfTestCases.Add(testCase);
            }
        }
        public TestSuite GetTestSuit(TestSuite ts)
        {
            TestSuite Testsuite = null;

            using (var connection = new NpgsqlConnection("Server=10.4.10.31;Port=5432;Database=qa_automation;User Id=bta_dev;Password=Aut0*13Q;"))
            {
                connection.Open();
                try
                {
                    NpgsqlTransaction tran         = connection.BeginTransaction();
                    var               str          = ts.GetId();
                    NpgsqlCommand     command      = new NpgsqlCommand("SELECT * FROM automation.GetTestsSuites_CasesSteps_new('" + str + "');", connection);
                    NpgsqlDataAdapter dataadapter  = new NpgsqlDataAdapter(command);
                    DataSet           dataset      = new DataSet();
                    DataTable         dt           = new DataTable();
                    List <TestCase>   TestCaseList = null;
                    List <TestStep>   TestStepList = null;

                    dataadapter.Fill(dataset);

                    if (dataset != null && dataset.Tables.Count > 0)
                    {
                        Testsuite = new TestSuite();
                        var _result = from row in dataset.Tables[0].AsEnumerable()
                                      group row by new
                        {
                            ID = row.Field <string>("TestCaseid"),
                        } into TestSuiteCaseStep
                            select new
                        {
                            ID = TestSuiteCaseStep.Key.ID,
                            TestSuiteCaseStep = TestSuiteCaseStep.AsEnumerable()
                        };
                        TestCaseList = new List <TestCase>();
                        foreach (var datarow in _result)
                        {
                            var data = datarow.TestSuiteCaseStep.FirstOrDefault();

                            TestCase TestCase = new TestCase();
                            Testsuite.SetId(data["TestSuit_id"].ToString());
                            Testsuite.SetSuiteName(data["TestSuit_Name"].ToString());
                            Testsuite.SetSuiteStartTime(data["TestSuit_StartTime"].ToString());
                            Testsuite.SetSuiteEndTime(data["TestSuit_EndTime"].ToString());
                            Testsuite.SetPassed(Convert.ToInt32(data["TestSuit_TotalPassed"]));
                            Testsuite.SetFailed(Convert.ToInt32(data["TestSuit_TotalFail"]));
                            Testsuite.environmentName = data["TestSuit_Environment"].ToString();
                            Testsuite.buildVersion    = data["Build_Number"].ToString();
                            Testsuite.ClientID        = data["ClientID"].ToString();
                            Testsuite.ApplicationName = data["Test_AppName"].ToString();

                            TestCase.SetId(data["TestCaseid"].ToString());
                            TestCase.SetTestCaseName(data["TestcaseName"].ToString());
                            TestCase.SetStartTime(data["TestCaseStartTime"].ToString());
                            TestCase.SetEndTime(data["TestcaseEndTime"].ToString());
                            TestCase.SetErrorMessage(data["TestCaseErrorMessage"].ToString());
                            TestCase.SetImageContent(data["imageContent"].ToString());
                            TestCase.SetStatus(Convert.ToBoolean(data["TestCaseStatus"]));

                            TestStepList = new List <TestStep>();

                            foreach (var item in datarow.TestSuiteCaseStep)
                            {
                                TestStep TestStep = new TestStep();
                                TestStep.SetTestStep(item[("TestStep_Name")].ToString());
                                TestStep.SetStepStartTime(item[("TestStep_StartTime")].ToString());
                                TestStep.SetStepEndTime(item[("TestStep_EndTime")].ToString());
                                TestStep.SetOutput(item[("TestStep_Output")].ToString());
                                TestStep.SetErrorMessage(item[("TestStep_errorMessage")].ToString());
                                TestStep.SetImageContent(item[("TestStep_imageContent")].ToString());
                                TestStep.SetStatus(Convert.ToBoolean(item["TestStep_Status"]));
                                TestStepList.Add(TestStep);
                            }
                            TestCase.SetTestCaseSteps(TestStepList);
                            TestCaseList.Add(TestCase);
                            TestStepList = null;
                        }
                        Testsuite.SetListOfTestCases(TestCaseList);
                    }
                    tran.Commit();
                }


                catch (Exception ex)
                {
                    Console.WriteLine("Message: " + ex.Message);
                    // Log_DataType_Conversion_Error(new StringBuilder( ex.Message));
                }
                finally
                {
                    connection.Close();
                }
                return(Testsuite);
            }
        }
Пример #5
0
        public void BTA141_MP_RegisterMemberAndVerifyPage()
        {
            ProjectBasePage basePages = new ProjectBasePage(driverContext);

            testCase        = new TestCase(TestContext.TestName);
            listOfTestSteps = new List <TestStep>();
            testStep        = new TestStep();
            string stepName = "";

            try
            {
                #region  Object Initialization
                Login                            login               = new Login();
                var                              MP_LoginPage        = new MemberPortal_LoginPage(driverContext);
                MP_Registration                  memberData          = new MP_Registration(driverContext);
                MemberPortal_LoginPage           loginPage           = new MemberPortal_LoginPage(driverContext);
                MemberPortal_MyAccountPage       myAccountPage       = new MemberPortal_MyAccountPage(driverContext);
                MemberPortal_MyProfilePage       myProfilePage       = new MemberPortal_MyProfilePage(driverContext);
                MemberPortal_MyWalletPage        myWalletPage        = new MemberPortal_MyWalletPage(driverContext);
                MemberPortal_AccountActivityPage accountActivityPage = new MemberPortal_AccountActivityPage(driverContext);
                #endregion

                #region Step1:Launch Member Service Portal URL
                stepName = "Launch Member Service Portal URL";
                testStep = TestStepHelper.StartTestStep(testStep);
                MP_LoginPage.LaunchMemberPortal(login.MemberPortal_url, out string Step_Output); testStep.SetOutput(Step_Output);
                testStep = TestStepHelper.EndTestStep(testCase, testStep, stepName, true, DriverContext.SendScreenshotImageContent("WEB"));
                listOfTestSteps.Add(testStep);
                #endregion

                #region Step2:Navigate to Member Registration page
                stepName = "Navigate to Member Registration page ";
                testStep = TestStepHelper.StartTestStep(testStep);
                testStep.SetOutput(MP_LoginPage.NavigateToMemberRegistrationPage());
                testStep = TestStepHelper.EndTestStep(testCase, testStep, stepName, true, DriverContext.SendScreenshotImageContent("WEB"));
                listOfTestSteps.Add(testStep);
                #endregion

                #region Step3:Create new member
                stepName = "Create new member";
                testStep = TestStepHelper.StartTestStep(testStep);
                var memberRegistrationPage = new MemberPortal_MemberRegistrationPage(DriverContext);
                memberRegistrationPage.CreateNewMember(memberData, out Step_Output); testStep.SetOutput(Step_Output);
                testStep = TestStepHelper.EndTestStep(testCase, testStep, stepName, true, DriverContext.SendScreenshotImageContent("WEB"));
                listOfTestSteps.Add(testStep);
                #endregion

                #region Step4:Verify successful navigation to Member Portal home page
                stepName    = "Verify successful navigation to Member Portal home page";
                testStep    = TestStepHelper.StartTestStep(testStep);
                Step_Output = loginPage.VerifyMemberPortalLoginSuccessfulForUser(memberData.FirstName, memberData.LastName);
                testStep.SetOutput(Step_Output);
                testStep = TestStepHelper.EndTestStep(testCase, testStep, stepName, true, DriverContext.SendScreenshotImageContent("WEB"));
                listOfTestSteps.Add(testStep);
                #endregion

                #region Step5:Verify My Profile page
                stepName = "Verify My Profile page";
                testStep = TestStepHelper.StartTestStep(testStep);
                myAccountPage.NavigateToMPDashBoardMenu(MemberPortal_MyAccountPage.MPDashboard.MyProfile, out Step_Output); var strStatus = Step_Output;
                testStep.SetStatus(myProfilePage.VerifyMyProfilePage(MemberPortal_MyProfilePage.Sections.MyProfile.ToString(), out Step_Output)); strStatus = strStatus + ". " + Step_Output;
                testStep.SetOutput(strStatus);
                testStep = TestStepHelper.EndTestStep(testCase, testStep, stepName, true, DriverContext.SendScreenshotImageContent("WEB"));
                listOfTestSteps.Add(testStep);
                #endregion

                #region Step6:Verify My Wallet page
                stepName = "Verify My Wallet page";
                testStep = TestStepHelper.StartTestStep(testStep);
                myAccountPage.NavigateToMPDashBoardMenu(MemberPortal_MyAccountPage.MPDashboard.MyWallet, out Step_Output); strStatus = Step_Output;
                testStep.SetStatus(myWalletPage.VerifyMyWalletPage(out Step_Output)); strStatus = strStatus + ". " + Step_Output;
                testStep.SetOutput(strStatus);
                testStep = TestStepHelper.EndTestStep(testCase, testStep, stepName, true, DriverContext.SendScreenshotImageContent("WEB"));
                listOfTestSteps.Add(testStep);
                #endregion

                #region Step7:Verify Account Activity page
                stepName = "Verify Account Activity page";
                testStep = TestStepHelper.StartTestStep(testStep);
                myAccountPage.NavigateToMPDashBoardMenu(MemberPortal_MyAccountPage.MPDashboard.AccountActivity, out Step_Output); strStatus = Step_Output;
                testStep.SetStatus(accountActivityPage.VerifyAccountActivityPage(out Step_Output)); strStatus = strStatus + ". " + Step_Output;
                testStep.SetOutput(strStatus);
                testStep = TestStepHelper.EndTestStep(testCase, testStep, stepName, true, DriverContext.SendScreenshotImageContent("WEB"));
                listOfTestSteps.Add(testStep);
                #endregion

                #region Step8:Logout from member portal
                stepName = "Logout from Member Portal";
                testStep = TestStepHelper.StartTestStep(testStep);
                loginPage.LogoutMPPortal(); testStep.SetOutput("Logout from Member Portal is Successful");
                testStep = TestStepHelper.EndTestStep(testCase, testStep, stepName, true, DriverContext.SendScreenshotImageContent("WEB"));
                listOfTestSteps.Add(testStep);
                #endregion
                testCase.SetStatus(true);
            }

            catch (Exception e)
            {
                testStep = TestStepHelper.EndTestStep(testCase, testStep, stepName, false, DriverContext.SendScreenshotImageContent("WEB"));
                listOfTestSteps.Add(testStep);
                testCase.SetStatus(false);
                testCase.SetErrorMessage(e.Message);
                testCase.SetImageContent(DriverContext.TakeScreenshot().ToString());
                Assert.Fail();
            }
            finally
            {
                testCase.SetTestCaseSteps(listOfTestSteps);
                testCase.SetEndTime(new StringHelper().GetFormattedDateTimeNow());
                listOfTestCases.Add(testCase);
            }
        }
        public void BTA_511_MP_Member_Update()
        {
            ProjectBasePage basePages = new ProjectBasePage(driverContext);

            testCase        = new TestCase(TestContext.TestName);
            listOfTestSteps = new List <TestStep>();
            testStep        = new TestStep();
            string stepName = "";

            try
            {
                #region Object initialization
                MemberProfile MP_Model      = new MemberProfile(DriverContext);
                var           loginPage     = new MemberPortal_LoginPage(DriverContext);
                var           myAccountPage = new MemberPortal_MyAccountPage(driverContext);
                var           myProfilePage = new MemberPortal_MyProfilePage(driverContext);
                #endregion

                #region Step1: Adding member with CDIS service
                testStep = TestStepHelper.StartTestStep(testStep);
                stepName = "Adding member with CDIS service";
                Member output = basePages.CreateMemberThroughCDIS();
                testStep.SetOutput("Member UserName:"******"; First Name: " + output.FirstName + "; Last Name:" + output.LastName + "; Birth Date: " + output.BirthDate + "; Email Address:" + output.PrimaryEmailAddress + ": end");
                testStep = TestStepHelper.EndTestStep(testCase, testStep, stepName, true, DriverContext.SendScreenshotImageContent("API"));
                listOfTestSteps.Add(testStep);
                #endregion

                #region Generating Test Data to Create new user with loyalty card
                Member        member  = MP_Model.GenerateMemberBasicInfo();
                MemberDetails details = MP_Model.GenerateMemberDetails();
                #endregion

                #region Step2:Launch Member Portal
                stepName = "Launch Member Portal URL";
                testStep = TestStepHelper.StartTestStep(testStep);
                loginPage.LaunchMemberPortal(login.MemberPortal_url, out string Output);
                testStep.SetOutput(Output);
                testStep = TestStepHelper.EndTestStep(testCase, testStep, stepName, true, DriverContext.SendScreenshotImageContent("WEB"));
                listOfTestSteps.Add(testStep);
                #endregion

                #region Step3: Login As Member
                stepName       = "Login As Member User";
                testStep       = TestStepHelper.StartTestStep(testStep);
                login.UserName = output.Username;
                login.Password = "******";
                string MemberLoyaltyNumber = DatabaseUtility.GetLoyaltyID(output.IpCode.ToString());
                loginPage.LoginMemberPortal(login.UserName, login.Password, out string Message);
                testStep.SetOutput(Message);
                testStep = TestStepHelper.EndTestStep(testCase, testStep, stepName, true, DriverContext.SendScreenshotImageContent("WEB"));
                listOfTestSteps.Add(testStep);
                #endregion

                #region Step4:Navigate to My Profile page
                stepName = "Navigate to My Profile page";
                testStep = TestStepHelper.StartTestStep(testStep);
                myAccountPage.NavigateToMPDashBoardMenu(MemberPortal_MyAccountPage.MPDashboard.MyProfile, out var Step_Output); var strStatus = Step_Output;
                testStep.SetStatus(myProfilePage.VerifyMyProfilePage(MemberPortal_MyProfilePage.Sections.MyProfile.ToString(), out Step_Output)); strStatus = strStatus + ". " + Step_Output;
                testStep.SetOutput(strStatus);
                testStep = TestStepHelper.EndTestStep(testCase, testStep, stepName, true, DriverContext.SendScreenshotImageContent("WEB"));
                listOfTestSteps.Add(testStep);
                #endregion

                #region Step5:Update Basic Info
                stepName = "Update Basic Info Details on Member Update Profile page";
                testStep = TestStepHelper.StartTestStep(testStep);
                var stepstatus = myProfilePage.UpdateBasicInfo_Details(member.FirstName, member.LastName, details.Gender, out var stepOutput); testStep.SetOutput(stepOutput);
                testStep = TestStepHelper.EndTestStep(testCase, testStep, stepName, stepstatus, DriverContext.SendScreenshotImageContent("WEB"));
                listOfTestSteps.Add(testStep);
                #endregion

                #region Step6:Update Address
                stepName   = "Update  Address Info Details on Member Update Profile page";
                testStep   = TestStepHelper.StartTestStep(testStep);
                stepstatus = myProfilePage.UpdateAddress_Details(details.AddressLineOne, details.AddressLineTwo, details.Country, details.StateOrProvince, details.City, details.ZipOrPostalCode, out stepOutput); testStep.SetOutput(stepOutput);
                testStep   = TestStepHelper.EndTestStep(testCase, testStep, stepName, stepstatus, DriverContext.SendScreenshotImageContent("WEB"));
                listOfTestSteps.Add(testStep);
                #endregion

                #region Step7:Update ContactInfo
                stepName   = "Update  Contact Info Details on Member Update Profile page";
                testStep   = TestStepHelper.StartTestStep(testStep);
                stepstatus = myProfilePage.UpdateContactInfo_Details(member.PrimaryEmailAddress, member.PrimaryPhoneNumber, member.PrimaryPhoneNumber, member.PrimaryPhoneNumber, out stepOutput); testStep.SetOutput(stepOutput);
                testStep   = TestStepHelper.EndTestStep(testCase, testStep, stepName, stepstatus, DriverContext.SendScreenshotImageContent("WEB"));
                listOfTestSteps.Add(testStep);
                #endregion

                #region Step8:Select All Opt In/Out Check boxes to Update
                stepName   = "Select All Opt In/Out Check boxes to Update";
                testStep   = TestStepHelper.StartTestStep(testStep);
                stepstatus = myProfilePage.CommunicationPreferences("DirectMailOptIn", "EmailOptIn", "SmsOptIn", out stepOutput); testStep.SetOutput(stepOutput);
                testStep   = TestStepHelper.EndTestStep(testCase, testStep, stepName, stepstatus, DriverContext.SendScreenshotImageContent("WEB"));
                listOfTestSteps.Add(testStep);
                #endregion

                #region Step10:Save Update profile and Verify update success
                stepName = "Save Update profile and Verify update success";
                testStep = TestStepHelper.StartTestStep(testStep);
                myProfilePage.SaveRegistrationAndUpdateSuccess(out stepOutput); testStep.SetOutput(stepOutput);
                testStep = TestStepHelper.EndTestStep(testCase, testStep, stepName, stepstatus, DriverContext.SendScreenshotImageContent("WEB"));
                listOfTestSteps.Add(testStep);
                #endregion

                #region Step11: Verify updated First Name and Last Name
                stepName = "Verify updated First Name and Last Name";
                testStep = TestStepHelper.StartTestStep(testStep);
                loginPage.VerifyMemberPortalLoginSuccessfulForUser(member.FirstName, member.LastName); testStep.SetOutput("Member update successful for First Name: " + member.FirstName + "; and Last Name: " + member.LastName);
                testStep = TestStepHelper.EndTestStep(testCase, testStep, stepName, true, DriverContext.SendScreenshotImageContent("WEB"));
                listOfTestSteps.Add(testStep);
                #endregion

                #region Step12: Logout from member portal
                stepName = "Logout from Member Portal";
                testStep = TestStepHelper.StartTestStep(testStep);
                loginPage.LogoutMPPortal(); testStep.SetOutput("Logout from Member Portal is Successful");
                testStep = TestStepHelper.EndTestStep(testCase, testStep, stepName, true, DriverContext.SendScreenshotImageContent("WEB"));
                listOfTestSteps.Add(testStep);
                #endregion

                testCase.SetStatus(true);
            }
            catch (Exception e)
            {
                testStep = TestStepHelper.EndTestStep(testCase, testStep, stepName, false, DriverContext.SendScreenshotImageContent("WEB"));
                listOfTestSteps.Add(testStep);
                testCase.SetStatus(false);
                testCase.SetErrorMessage(e.Message);
                testCase.SetImageContent(DriverContext.TakeScreenshot().ToString());
                Assert.Fail();
            }
            finally
            {
                testCase.SetTestCaseSteps(listOfTestSteps);
                testCase.SetEndTime(new StringHelper().GetFormattedDateTimeNow());
                listOfTestCases.Add(testCase);
            }
        }