public void TC40_WalletsWithdrawFiatcurrency() { try { string emailAddress; string gmailPassword; string amounttowithdraw; string currentUSDBalance; string fee; string remainingBalance; string amountToWithdrawAndFees; string expectedRemainingBalance; string holdBalance; string totalBalance; string availableBalance; string withdrawSuccessMsg; string holdBalanceAfterDeposit; string availableBalanceAfterDeposit; string expectedAvailableBalanceAfterDeposit; string expectedHoldBalanceAfterDeposit; string statusID; string linkUrl; string ticketStatus; string withdrawSuccess; string mailSubject; string totalBalanceAfterDeposit; string expectedTotalBalanceAfterDeposit; currencyName = TestData.GetData("USDCurrency"); comment = TestData.GetData("TC40_Comment"); amountOfUSDToWithdraw = TestData.GetData("USDAmount"); fullName = TestData.GetData("FullName"); language = TestData.GetData("TC40_Language"); bankAddress = TestData.GetData("TC40_BankAddress"); bankAccountNumber = TestData.GetData("TC40_BankAccountNumber"); bankName = TestData.GetData("TC40_BankName"); swiftCode = TestData.GetData("TC40_SwiftCode"); withdrawStatus = TestData.GetData("WithdrawStatus"); emailAddress = TestData.GetData("User_14EmailAddress"); gmailPassword = TestData.GetData("GmailUser_Test1Password"); mailSubject = TestData.GetData("GmailMailSubject_ConfirmYourWithdraw"); ticketStatus = TestData.GetData("FullyProcessedTicketStatus"); TestProgressLogger.StartTest(); UserFunctions userFunctions = new UserFunctions(TestProgressLogger); userFunctions.LogIn(TestProgressLogger, Const.USER15); TestProgressLogger.LogCheckPoint(String.Format(LogMessage.UserLoggedInSuccessfully, Const.USER15)); UserCommonFunctions.DashBoardMenuButton(driver); UserCommonFunctions.NavigateToWallets(driver); TestProgressLogger.LogCheckPoint(String.Format(LogMessage.NavigateWalletsPage)); WalletPage walletpage = new WalletPage(); walletpage.ClickInstrumentDetails(driver, currencyName); walletpage.GetHoldAvailablePendingDepositTotalBalanceOnDetailsPage(driver); holdBalance = walletpage.HoldBalanceDetailsPage; availableBalance = walletpage.AvailableBalanceDetailsPage; walletpage.ClickWithdrawButtonOnDetails(driver); walletpage.WithdrawUSD(driver, amountOfUSDToWithdraw, fullName, language, comment, bankAddress, bankAccountNumber, bankName, swiftCode); amounttowithdraw = walletpage.GetAmountToWithdraw(driver); currentUSDBalance = walletpage.GetCurrentUSDBalance(driver); fee = walletpage.GetFee(driver); remainingBalance = walletpage.GetRemainingBalance(driver); amountToWithdrawAndFees = GenericUtils.GetSumFromStringAfterAddition(amounttowithdraw, fee); expectedRemainingBalance = GenericUtils.GetDifferenceFromStringAfterSubstraction(currentUSDBalance, amountToWithdrawAndFees); Assert.Equal(expectedRemainingBalance, GenericUtils.RemoveCommaFromString(remainingBalance)); TestProgressLogger.LogCheckPoint(LogMessage.RemainingBalanceVerifiedOnBalanceSection); walletpage.ClickOnWithdrawUSDButton(driver); walletpage.VerifyWithdrawUSDOnConfirmationModal(driver, amountOfUSDToWithdraw, fullName, language, comment, bankAddress, bankAccountNumber, bankName, swiftCode, fee); walletpage.ClickOnConfirmUSDModalButton(driver); TestProgressLogger.LogCheckPoint(LogMessage.ConfirmationModalVerified); withdrawSuccessMsg = UserCommonFunctions.GetTextOfMessage(driver, TestProgressLogger); Assert.Equal(LogMessage.USDWithdrawSuccessMsg, withdrawSuccessMsg); walletpage.GetHoldAvailablePendingDepositTotalBalanceOnDetailsPage(driver); holdBalanceAfterDeposit = walletpage.HoldBalanceDetailsPage; availableBalanceAfterDeposit = walletpage.AvailableBalanceDetailsPage; totalBalanceAfterDeposit = walletpage.TotalBalanceDetailsPage; expectedAvailableBalanceAfterDeposit = GenericUtils.GetDifferenceFromStringAfterSubstraction(availableBalance, amountToWithdrawAndFees); Assert.Equal(expectedAvailableBalanceAfterDeposit, GenericUtils.RemoveCommaFromString(availableBalanceAfterDeposit)); TestProgressLogger.LogCheckPoint(LogMessage.RemainingBalanceVerified); expectedHoldBalanceAfterDeposit = GenericUtils.GetSumFromStringAfterAddition(holdBalance, amountToWithdrawAndFees); Assert.Equal(expectedHoldBalanceAfterDeposit, holdBalanceAfterDeposit); TestProgressLogger.LogCheckPoint(LogMessage.HoldBalanceVerified); statusID = walletpage.GetStatusID(driver); userFunctions.LogOut(); TestProgressLogger.LogCheckPoint(String.Format(LogMessage.UserLoggedOutSuccessfully, Const.USER15)); AdminFunctions adminfunctions = new AdminFunctions(TestProgressLogger); adminfunctions.AdminLogIn(TestProgressLogger, Const.ADMIN1); AdminCommonFunctions admincommonfunctions = new AdminCommonFunctions(TestProgressLogger); admincommonfunctions.SelectTicketsMenu(); admincommonfunctions.VerifyStatus(driver, statusID, withdrawStatus); TestProgressLogger.LogCheckPoint(String.Format(LogMessage.CreatedTicketStatusVerified, statusID)); admincommonfunctions.UserMenuBtn(); adminfunctions.AdminLogOut(); TestProgressLogger.LogCheckPoint(String.Format(LogMessage.AdminUserLogoutSuccessfully, Const.ADMIN1)); GmailCommonFunctions gmailobj = new GmailCommonFunctions(); linkUrl = gmailobj.Gmail(driver, emailAddress, gmailPassword, mailSubject); driver.Navigate().GoToUrl(linkUrl); withdrawSuccess = walletpage.GetWithdrawConfirmedMsg(driver); Assert.Equal(LogMessage.WithdrawSuccessfullyConfirmMsg, withdrawSuccess); walletpage.ClickOnGoToExchange(driver); TestProgressLogger.LogCheckPoint(LogMessage.WithdrawConfirmedMassage); adminfunctions.AdminLogIn(TestProgressLogger, Const.ADMIN1); admincommonfunctions = new AdminCommonFunctions(TestProgressLogger); admincommonfunctions.SelectTicketsMenu(); admincommonfunctions.VerifyStatus(driver, statusID, ticketStatus); TestProgressLogger.LogCheckPoint(LogMessage.VerifiedTicketStatus); admincommonfunctions.UserMenuBtn(); adminfunctions.AdminLogOut(); TestProgressLogger.LogCheckPoint(String.Format(LogMessage.AdminUserLogoutSuccessfully, Const.ADMIN1)); userFunctions.LogIn(TestProgressLogger, Const.USER15); TestProgressLogger.LogCheckPoint(String.Format(LogMessage.UserLoggedInSuccessfully, Const.USER15)); UserCommonFunctions.DashBoardMenuButton(driver); UserCommonFunctions.NavigateToWallets(driver); TestProgressLogger.LogCheckPoint(String.Format(LogMessage.NavigateWalletsPage)); walletpage.ClickInstrumentDetails(driver, currencyName); walletpage.GetHoldAvailablePendingDepositTotalBalanceOnDetailsPage(driver); holdBalance = walletpage.HoldBalanceDetailsPage; totalBalance = walletpage.TotalBalanceDetailsPage; expectedTotalBalanceAfterDeposit = GenericUtils.GetDifferenceFromStringAfterSubstraction(totalBalanceAfterDeposit, amountToWithdrawAndFees); Assert.Equal(expectedTotalBalanceAfterDeposit, GenericUtils.RemoveCommaFromString(totalBalance)); TestProgressLogger.LogCheckPoint(LogMessage.TotalBalanceVerified); expectedHoldBalanceAfterDeposit = GenericUtils.GetDifferenceFromStringAfterSubstraction(holdBalanceAfterDeposit, amountToWithdrawAndFees); Assert.Equal(expectedHoldBalanceAfterDeposit, holdBalance); TestProgressLogger.LogCheckPoint(LogMessage.HoldBalanceVerified); userFunctions.LogOut(); TestProgressLogger.LogCheckPoint(String.Format(LogMessage.UserLoggedOutSuccessfully, Const.USER15)); TestProgressLogger.EndTest(); TestProgressLogger.LogCheckPoint(LogMessage.WalletsWithdrawFiatcurrencyTestPassed); } catch (Exception e) { TestProgressLogger.TakeScreenshot(); TestProgressLogger.Error(LogMessage.WalletsWithdrawFiatcurrencyTestFailed, e); throw e; } }