public void TC37_WalletsSendToEmailAddress() { try { string username; string secondUsername; string currentBalance; string withdrawSuccessMsg; string updatedCurrentBalance; string expectedupdateBalance; string availableBalance; string totalBalance; string expectedTotalBalanceAfterSent; string totalBalanceAfterSent; string availableBalanceAfterSent; string expectedAvailableBalanceAfterSent; string availableBalanceOfFirstUser; string totalBalanceOfFirstUser; currencyName = TestData.GetData("CurrencyName"); comment = TestData.GetData("Comment"); amountOfBtcToSend = TestData.GetData("AmountOfBtcToSend"); withdrawStatus = TestData.GetData("WithdrawStatus"); user12_EmailAddress = TestData.GetData("User_12EmailAddress"); user13_EmailAddress = TestData.GetData("User_13EmailAddress"); TestProgressLogger.StartTest(); UserFunctions userFunctions = new UserFunctions(TestProgressLogger); username = userFunctions.LogIn(TestProgressLogger, Const.USER12); TestProgressLogger.LogCheckPoint(String.Format(LogMessage.UserLoggedInSuccessfully, Const.USER12)); UserCommonFunctions.DashBoardMenuButton(driver); UserCommonFunctions.NavigateToWallets(driver); TestProgressLogger.LogCheckPoint(String.Format(LogMessage.NavigateWalletsPage)); WalletPage walletpage = new WalletPage(); currentBalance = walletpage.GetInstrumentCurrentBalance(driver, currencyName); walletpage.ClickInstrumentDetails(driver, currencyName); walletpage.GetHoldAvailablePendingDepositTotalBalanceOnDetailsPage(driver); availableBalanceOfFirstUser = walletpage.AvailableBalanceDetailsPage; totalBalanceOfFirstUser = walletpage.TotalBalanceDetailsPage; TestProgressLogger.LogCheckPoint(String.Format(LogMessage.StoreCurrentBalance, Const.USER12)); userFunctions.LogOut(); TestProgressLogger.LogCheckPoint(String.Format(LogMessage.UserLoggedOutSuccessfully, Const.USER12)); secondUsername = userFunctions.LogIn(TestProgressLogger, Const.USER13); TestProgressLogger.LogCheckPoint(String.Format(LogMessage.UserLoggedInSuccessfully, Const.USER13)); UserCommonFunctions.DashBoardMenuButton(driver); UserCommonFunctions.NavigateToWallets(driver); TestProgressLogger.LogCheckPoint(String.Format(LogMessage.NavigateWalletsPage)); walletpage.ClickInstrumentDetails(driver, currencyName); walletpage.GetHoldAvailablePendingDepositTotalBalanceOnDetailsPage(driver); availableBalance = walletpage.AvailableBalanceDetailsPage; totalBalance = walletpage.TotalBalanceDetailsPage; walletpage.ClickSendButtonOnDetailsPage(driver); walletpage.ClickOnEmailAddressTab(driver); walletpage.SendBitCoinToEmailAddress(driver, comment, user12_EmailAddress, amountOfBtcToSend); walletpage.VerifySendDetailsBalances(driver); TestProgressLogger.LogCheckPoint(LogMessage.RemainingBalanceVerified); walletpage.ClickOnSendBitCoin(driver); walletpage.VerifyConfirmationModal(driver, user12_EmailAddress, amountOfBtcToSend); TestProgressLogger.LogCheckPoint(LogMessage.VerifiedDetailsOnConfirmModal); walletpage.ClickConfirmButton(driver); TestProgressLogger.LogCheckPoint(LogMessage.ConfirmationModalVerified); withdrawSuccessMsg = UserCommonFunctions.GetTextOfMessage(driver, TestProgressLogger); Assert.Equal(Const.TransferSuccessMsg, withdrawSuccessMsg); walletpage.CloseSendOrReciveSection(driver); walletpage.GetHoldAvailablePendingDepositTotalBalanceOnDetailsPage(driver); totalBalanceAfterSent = walletpage.TotalBalanceDetailsPage; expectedTotalBalanceAfterSent = GenericUtils.GetDifferenceFromStringAfterSubstraction(totalBalance, amountOfBtcToSend); Assert.Equal(expectedTotalBalanceAfterSent, GenericUtils.RemoveCommaFromString(totalBalanceAfterSent)); TestProgressLogger.LogCheckPoint(LogMessage.TotalBalanceVerified); availableBalanceAfterSent = walletpage.AvailableBalanceDetailsPage; expectedAvailableBalanceAfterSent = GenericUtils.GetDifferenceFromStringAfterSubstraction(totalBalance, amountOfBtcToSend); Assert.Equal(expectedAvailableBalanceAfterSent, GenericUtils.RemoveCommaFromString(availableBalanceAfterSent)); TestProgressLogger.LogCheckPoint(LogMessage.RemainingBalanceVerified); walletpage.ClickRefreshTransfers(driver); walletpage.VerifyAmountInTransferSection(driver, username, amountOfBtcToSend); TestProgressLogger.LogCheckPoint(LogMessage.VerifiedRequestUnderSentRequest); userFunctions.LogOut(); TestProgressLogger.LogCheckPoint(String.Format(LogMessage.UserLoggedOutSuccessfully, Const.USER13)); userFunctions.LogIn(TestProgressLogger, Const.USER12); TestProgressLogger.LogCheckPoint(String.Format(LogMessage.UserLoggedInSuccessfully, Const.USER12)); UserCommonFunctions.DashBoardMenuButton(driver); UserCommonFunctions.NavigateToWallets(driver); TestProgressLogger.LogCheckPoint(String.Format(LogMessage.NavigateWalletsPage)); updatedCurrentBalance = walletpage.GetInstrumentCurrentBalance(driver, currencyName); expectedupdateBalance = GenericUtils.GetSumFromStringAfterAddition(currentBalance, amountOfBtcToSend); Assert.Equal(expectedupdateBalance, GenericUtils.RemoveCommaFromString(updatedCurrentBalance)); TestProgressLogger.LogCheckPoint(String.Format(LogMessage.BalanceUpdatedSuccessfully, Const.USER12)); walletpage.ClickInstrumentDetails(driver, currencyName); walletpage.GetHoldAvailablePendingDepositTotalBalanceOnDetailsPage(driver); totalBalanceAfterSent = walletpage.TotalBalanceDetailsPage; expectedTotalBalanceAfterSent = GenericUtils.GetSumFromStringAfterAddition(availableBalanceOfFirstUser, amountOfBtcToSend); Assert.Equal(expectedTotalBalanceAfterSent, GenericUtils.RemoveCommaFromString(totalBalanceAfterSent)); TestProgressLogger.LogCheckPoint(LogMessage.TotalBalanceVerified); availableBalanceAfterSent = walletpage.AvailableBalanceDetailsPage; expectedAvailableBalanceAfterSent = GenericUtils.GetSumFromStringAfterAddition(totalBalanceOfFirstUser, amountOfBtcToSend); Assert.Equal(expectedAvailableBalanceAfterSent, GenericUtils.RemoveCommaFromString(availableBalanceAfterSent)); TestProgressLogger.LogCheckPoint(LogMessage.RemainingBalanceVerified); walletpage.ClickReceivedTransferOnDetailsPage(driver); walletpage.ClickRefreshTransfers(driver); walletpage.VerifyAmountInTransferSection(driver, secondUsername, amountOfBtcToSend); TestProgressLogger.LogCheckPoint(LogMessage.VerifiedTransactionUnderReceivedTransfer); userFunctions.LogOut(); TestProgressLogger.LogCheckPoint(String.Format(LogMessage.UserLoggedOutSuccessfully, Const.USER12)); TestProgressLogger.EndTest(); } catch (Exception e) { TestProgressLogger.TakeScreenshot(); TestProgressLogger.Error(LogMessage.WalletsSendToEmailAddressTestFailed, e); throw e; } }