public static void TermSwitch() { IWebElement hoursTerm = Engine.Browser.CurrentBrowser.FindElement(HoursTab); hoursTerm.Click(); Engine.Browser.MiddlePause(); IWebElement bannervaluehours = Engine.Browser.CurrentBrowser.FindElement(TermonBanner); Assert.IsTrue(bannervaluehours.Text.Contains("24 hours"), "LOANSCAN", "The term is not switched as expected"); IWebElement sevenTerm = Engine.Browser.CurrentBrowser.FindElement(SevenDaysTab); sevenTerm.Click(); Engine.Browser.MiddlePause(); IWebElement bannervalueSevenDays = Engine.Browser.CurrentBrowser.FindElement(TermonBanner); Assert.IsTrue(bannervalueSevenDays.Text.Contains("7 days"), "LOANSCAN", "The term is not switched as expected"); IWebElement thirtyTerm = Engine.Browser.CurrentBrowser.FindElement(ThirtyDaysTab); thirtyTerm.Click(); Engine.Browser.MiddlePause(); IWebElement bannervalueThirtyDays = Engine.Browser.CurrentBrowser.FindElement(TermonBanner); Assert.IsTrue(bannervalueThirtyDays.Text.Contains("30 days"), "LOANSCAN", "The term is not switched as expected"); }
//Tests public static void VerifySingleCardOpening() { try { Open(); IWebElement dharmacolumn = Engine.Browser.CurrentBrowser.FindElement(DharmaColumn); dharmacolumn.Click(); Engine.Browser.MiddlePause(); IWebElement firstrow = Engine.Browser.CurrentBrowser.FindElement(Row); IWebElement annualintrate = Engine.Browser.CurrentBrowser.FindElement(AnnaulInterestRateTable); string value = annualintrate.Text; firstrow.Click(); Engine.Browser.MiddlePause(); IWebElement annualinterestratecard = Engine.Browser.CurrentBrowser.FindElement(AnnualInterestRateCard); Assert.IsTrue(annualinterestratecard.Text.Contains(value), "[" + Env + "] LOANSCAN", "The appopriate card is not opened from the table"); } catch (Exception exception) { Assert.FinilizeErrors(Env, "LOANSCAN", exception, false); } }
public static void VerifyAllDataloadedMakerDao() { try { Open(); IWebElement makerDaoColumn = Engine.Browser.CurrentBrowser.FindElement(MakerDaoColumn); makerDaoColumn.Click(); Engine.Browser.MiddlePause(); IWebElement firstrow = Engine.Browser.CurrentBrowser.FindElement(Row); firstrow.Click(); Engine.Browser.MiddlePause(); IList <IWebElement> datamakerdao = Engine.Browser.CurrentBrowser.FindElements(AllDataMakerDao); foreach (var value in datamakerdao) { string valuetext = value.Text; Assert.IsTrue(!valuetext.Contains(""), "[" + Env + "] LOANSCAN", "Some values are missing on the MakerDao Single Card"); } } catch (Exception exception) { Assert.FinilizeErrors(Env, "LOANSCAN", exception, false); } }
public static void VerifyCollateralistheSameThroughTableandCard() { try { Open(); IWebElement dharmacolumn = Engine.Browser.CurrentBrowser.FindElement(DharmaColumn); dharmacolumn.Click(); Engine.Browser.LongPause(); IWebElement collateralTable = Engine.Browser.CurrentBrowser.FindElement(CollateralTable); string collateralTableValue = collateralTable.Text; string[] stringSeparators = new string[] { "(" }; var result = collateralTableValue.Split(stringSeparators, StringSplitOptions.None); string token = result[0]; string dollar = result[1]; IWebElement firstrow = Engine.Browser.CurrentBrowser.FindElement(Row); firstrow.Click(); Engine.Browser.LongPause(); var currentURL = Browser.CurrentBrowser.Url; IWebElement collateralCard = Engine.Browser.CurrentBrowser.FindElement(CollateralCard); Assert.IsTrue(collateralCard.Text.Contains(dollar), "[" + Env + "] LOANSCAN", "Collateral vlaue on the card is not the same as in the table. expected: " + collateralCard.Text + " was: " + dollar + " url: " + currentURL); } catch (Exception exception) { Assert.FinilizeErrors(Env, "LOANSCAN", exception, false); } }
public static void VerifyCollateralistheSameThroughTableandCardMakerDao() { try { Open(); IWebElement makerDaoColumn = Engine.Browser.CurrentBrowser.FindElement(MakerDaoColumn); makerDaoColumn.Click(); Engine.Browser.MiddlePause(); IWebElement collateralTable = Engine.Browser.CurrentBrowser.FindElement(CollateralTable); string collateralTableValue = collateralTable.Text; string[] stringSeparators = new string[] { "(" }; var result = collateralTableValue.Split(stringSeparators, StringSplitOptions.None); string token = result[0].Substring(0, 4); string dollar = result[1]; IWebElement firstrow = Engine.Browser.CurrentBrowser.FindElement(Row); firstrow.Click(); Engine.Browser.LongPause(); IWebElement collateralCard = Engine.Browser.CurrentBrowser.FindElement(CollateralTableMakerDao); var valueFromCard = Convert.ToDouble(collateralCard.Text.Substring(0, 4)); var valueFromTable = Convert.ToDouble(token.Substring(0, 4)); var difference = valueFromTable - valueFromCard; Assert.IsTrue(difference < 1 || difference == 0, "[" + Env + "] LOANSCAN", "Collateral vlaue on the card is not the same as in the table | expected: " + collateralCard.Text + " was: " + token + " URL " + Browser.CurrentBrowser.Url); } catch (Exception exception) { Assert.FinilizeErrors(Env, "LOANSCAN", exception, false); } }
public static void SwitchCurrency() { IWebElement btcButton = Engine.Browser.CurrentBrowser.FindElement(BtcButton); btcButton.Click(); Engine.Browser.MiddlePause(); IWebElement btconBanner = Engine.Browser.CurrentBrowser.FindElement(CurrencyBanner); string bannervalue = btconBanner.Text; Assert.IsTrue(bannervalue.Contains("BTC"), "[" + Env + "] LOANSCAN", "The currency on banner is not displayed as expected"); IWebElement ethButton = Engine.Browser.CurrentBrowser.FindElement(EthButton); ethButton.Click(); Engine.Browser.MiddlePause(); IWebElement ethonBanner = Engine.Browser.CurrentBrowser.FindElement(CurrencyBanner); string ethonBannervalue = ethonBanner.Text; Assert.IsTrue(ethonBannervalue.Contains("ETH"), "[" + Env + "] LOANSCAN", "The currency on banner is not displayed as expected"); IWebElement usdButton = Engine.Browser.CurrentBrowser.FindElement(UsdButton); usdButton.Click(); Engine.Browser.MiddlePause(); IWebElement usdonBanner = Engine.Browser.CurrentBrowser.FindElement(CurrencyBanner); string usdonBannervalue = usdonBanner.Text; Assert.IsTrue(usdonBannervalue.Contains("$"), "[" + Env + "] LOANSCAN", "The currency on banner is not displayed as expected"); }
public static void VerifyLoanAmountisTheSameinTableandOnCard() { try { Open(); IWebElement dharmacolumn = Engine.Browser.CurrentBrowser.FindElement(DharmaColumn); dharmacolumn.Click(); Engine.Browser.MiddlePause(); IWebElement firstrow = Engine.Browser.CurrentBrowser.FindElement(Row); IWebElement loanamount = Engine.Browser.CurrentBrowser.FindElement(LoanAmount); string loanamountvalue = loanamount.Text; string[] stringSeparators = new string[] { "(" }; var result = loanamountvalue.Split(stringSeparators, StringSplitOptions.None); string token = result[0]; string dollar = result[1]; firstrow.Click(); Engine.Browser.MiddlePause(); IWebElement loanamountCard = Engine.Browser.CurrentBrowser.FindElement(LaonAmountCard); Assert.IsTrue(loanamountCard.Text.Contains(dollar), "[" + Env + "] LOANSCAN", "Loan amount in the card is not the same as in the table"); } catch (Exception exception) { Assert.FinilizeErrors(Env, "LOANSCAN", exception, false); } }
public static void PaginationbyTheTable() { IWebElement paginationbox = Engine.Browser.CurrentBrowser.FindElement(PAginationElements3rdPage); paginationbox.Click(); Engine.Browser.MiddlePause(); IList <IWebElement> creationcolumn = Engine.Browser.CurrentBrowser.FindElements(CreationDate); Assert.IsTrue(creationcolumn.Count.Equals(50), "[" + Env + "] LOANSCAN", "The table is not displayed properly"); IWebElement lastpagenavigationicon = Engine.Browser.CurrentBrowser.FindElement(LastPageNavigationIcon); lastpagenavigationicon.Click(); Engine.Browser.MiddlePause(); IWebElement selectedlastpage = Engine.Browser.CurrentBrowser.FindElement(LastPageNumber); string selectedpage = selectedlastpage.Text; Assert.IsTrue(selectedpage.Contains("current"), "[" + Env + "] LOANSCAN", "The table is not displayed properly"); IWebElement creationcolumnlast = Engine.Browser.CurrentBrowser.FindElement(CreationDate); Assert.IsTrue(creationcolumnlast.Displayed, "[" + Env + "] LOANSCAN", "The table is not displayed properly"); IWebElement previouspageicon = Engine.Browser.CurrentBrowser.FindElement(PreviousPageIcon); previouspageicon.Click(); Engine.Browser.MiddlePause(); IWebElement previouspagenumber = Engine.Browser.CurrentBrowser.FindElement(PreviousPageNumber); string previouspage = previouspagenumber.Text; Assert.IsTrue(previouspage.Contains("current"), "[" + Env + "] LOANSCAN", "The table is not displayed properly"); }
public static void LendingProtocolsSwitch() { IWebElement all = Engine.Browser.CurrentBrowser.FindElement(AllLoanProtocol); string allvalue = all.Text; IWebElement dharma = Engine.Browser.CurrentBrowser.FindElement(DharmaLoanProtocol); string dhvalue = dharma.Text; IWebElement makerdao = Engine.Browser.CurrentBrowser.FindElement(MakerDaoLoanProtocol); string mkvalue = makerdao.Text; Assert.IsTrue(allvalue.Contains("All"), "LOANSCAN", "The landing protocol is not switched as expected"); Assert.IsTrue(dhvalue.Contains("Dharma"), "LOANSCAN", "The landing protocol is not switched as expected"); Assert.IsTrue(mkvalue.Contains("Maker DAO"), "LOANSCAN", "The landing protocol is not switched as expected"); }
public static void VerifyRepaytoLiquidityPoolFunctionality() { Console.WriteLine("Login to the app..."); ReadOnlyCollection <string> windows = MainPageBb.LoginToMainPage("lender"); string MetamaskTab = windows[0]; string BloqboardTab = windows[1]; Console.WriteLine("Test started..."); Browser.CurrentBrowser.Navigate().GoToUrl(TestData.Urls.Lend); Browser.MiddlePause(); IList <IWebElement> repaybtns = Browser.CurrentBrowser.FindElements(RepayBtn); foreach (var btn in repaybtns) { string btnvalue = btn.Text; if (btnvalue.Contains("REPAY")) { btn.Click(); break; } } Browser.ShortPause(); IWebElement amountinput = Browser.CurrentBrowser.FindElement(LendAMountImput); amountinput.SendKeys("0.1"); IWebElement greenbtn = Browser.CurrentBrowser.FindElement(RepayGreenBtn); greenbtn.Click(); Browser.ShortPause(); Browser.CurrentBrowser.SwitchTo().Window(MetamaskTab); Browser.CurrentBrowser.Navigate().GoToUrl("chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/home.html#"); Browser.LongPause(); Browser.CurrentBrowser.Navigate().Refresh(); Browser.ShortPause(); Console.WriteLine("Confirming request..."); BloqBoard.MainPageBb.SignRequest(); Browser.CurrentBrowser.SwitchTo().Window(BloqboardTab); Browser.LongPause(); IWebElement msg = Browser.CurrentBrowser.FindElement(BorrowMessage); Assert.IsTrue(msg.Text.Contains("successfully"), "[" + Env + "] BLOQBOARD", "Repay functionlaity is not working as expected"); }
public static void VerifyTokensCanBeWithdrawn() { try { Console.WriteLine("Login to the app..."); ReadOnlyCollection <string> windows = MainPageBb.LoginToMainPage("lender"); string MetamaskTab = windows[0]; string BloqboardTab = windows[1]; Console.WriteLine("Test started..."); Browser.CurrentBrowser.Navigate().GoToUrl(TestData.Urls.Lend); Browser.MiddlePause(); TermsandConditionAceptance(); Browser.MiddlePause(); IWebElement withdrawBtnt = Browser.CurrentBrowser.FindElement(WithdrawBtn); withdrawBtnt.Click(); IWebElement amount = Browser.CurrentBrowser.FindElement(LendAMountImput); amount.SendKeys("1"); Browser.MiddlePause(); IWebElement confirm = Browser.CurrentBrowser.FindElement(ConfirmWithdrawBtn); confirm.Click(); Browser.MiddlePause(); Browser.CurrentBrowser.SwitchTo().Window(MetamaskTab); Browser.CurrentBrowser.Navigate().GoToUrl("chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/home.html#"); Browser.LongPause(); Browser.CurrentBrowser.Navigate().Refresh(); Browser.ShortPause(); Console.WriteLine("Confirming request..."); BloqBoard.MainPageBb.SignRequest(); Browser.CurrentBrowser.SwitchTo().Window(BloqboardTab); Browser.LongPause(); IWebElement msg = Browser.CurrentBrowser.FindElement(ConfirmationMessage); Assert.IsTrue(msg.Text.Contains("successfully"), "[" + Env + "] BLOQBOARD", "Withdraw functionality is not working properly"); } catch (Exception exception) { Assert.FinilizeErrors(Env, "BLOQBOARD", exception, false); } }
public static void PerformSearch() { IWebElement searchinput = Engine.Browser.CurrentBrowser.FindElement(SearchInput); searchinput.SendKeys("Dharma"); IWebElement searchbtn = Engine.Browser.CurrentBrowser.FindElement(SearchBtn); searchbtn.Click(); Engine.Browser.ShortPause(); IList <IWebElement> values = Engine.Browser.CurrentBrowser.FindElements(FoundLendingProtocol); foreach (var value in values) { string result = value.Text; Assert.IsTrue(result.Contains("Dharma"), "[" + Env + "] LOANSCAN", "LoanScan search is not working as expected"); } }
//Tests public static void SearchAvailability() { try { // IList<IWebElement> MyElements = Engine.Browser.CurrentBrowser.FindElements(By.CssSelector("[text-anchor='start']")); Open(); IWebElement searchinput = Engine.Browser.CurrentBrowser.FindElement(SearchInput); Assert.IsTrue(searchinput.Displayed, "[" + Env + "] LOANSCAN", "Search is not available on the page"); } catch (Exception exception) { Assert.FinilizeErrors(Env, "LOANSCAN", exception, false); } }
//Tests public static void VerifyLendToLiquidityPoolTableisOpened() { try { Console.WriteLine("Login to the app..."); ReadOnlyCollection <string> windows = MainPageBb.LoginToMainPage("lender"); string MetamaskTab = windows[0]; string BloqboardTab = windows[1]; Console.WriteLine("Test started..."); Browser.CurrentBrowser.SwitchTo().Window(BloqboardTab); Browser.CurrentBrowser.Navigate().GoToUrl(TestData.Urls.Lend); Browser.MiddlePause(); IWebElement table = Browser.CurrentBrowser.FindElement(LendToLiquidityTable); Assert.IsTrue(table.Displayed, "[" + Env + "] BLOQBOARD", "Lend to liquidity table is not loaded correctly"); } catch (Exception exception) { Assert.FinilizeErrors(Env, "BLOQBOARD", exception, false); } }
public static void ColumnsAvailabilityintheTable() { IWebElement loanamountcolumn = Engine.Browser.CurrentBrowser.FindElement(LoanAmount); Assert.IsTrue(loanamountcolumn.Text.Contains("Loan amount"), "[" + Env + "] LOANSCAN", "The table doesn't contain the 'Loan Amount' value"); IWebElement annaulInterestRate = Engine.Browser.CurrentBrowser.FindElement(AnnaulInterestRate); Assert.IsTrue(annaulInterestRate.Text.Contains("Annual interest rate"), "[" + Env + "] LOANSCAN", "The table doesn't contain the 'Annual Interest Rate' value"); IWebElement loanterm = Engine.Browser.CurrentBrowser.FindElement(LoanTerm); Assert.IsTrue(loanterm.Text.Contains("Loan term"), "[" + Env + "] LOANSCAN", "The table doesn't contain the 'Loan term' value"); IWebElement ltv = Engine.Browser.CurrentBrowser.FindElement(LTV); Assert.IsTrue(ltv.Text.Contains("LTV"), "[" + Env + "] LOANSCAN", "The table doesn't contain the 'LTV' value"); IWebElement collateral = Engine.Browser.CurrentBrowser.FindElement(Collateral); Assert.IsTrue(collateral.Text.Contains("Collateral"), "[" + Env + "] LOANSCAN", "The table doesn't contain the 'Collateral' value"); IWebElement loanstatus = Engine.Browser.CurrentBrowser.FindElement(LoanStatus); Assert.IsTrue(loanstatus.Text.Contains("Loan status"), "[" + Env + "] LOANSCAN", "The table doesn't contain the 'Loan status' value"); IWebElement repaid = Engine.Browser.CurrentBrowser.FindElement(Repaid); Assert.IsTrue(repaid.Text.Contains("% repaid"), "[" + Env + "] LOANSCAN", "The table doesn't contain the '% Repaid' value"); IWebElement underwrirename = Engine.Browser.CurrentBrowser.FindElement(UnderwriterName); Assert.IsTrue(underwrirename.Text.Contains("Underwriter name"), "[" + Env + "] LOANSCAN", "The table doesn't contain the 'Underwriter name' value"); IWebElement relayerName = Engine.Browser.CurrentBrowser.FindElement(RelayerName); Assert.IsTrue(relayerName.Text.Contains("Lending platform"), "[" + Env + "] LOANSCAN", "The table doesn't contain the 'Relayer name' value"); }
public static void FilteringTablebyLendingProtocol() { IWebElement dharmatab = Engine.Browser.FindElementNew(DharmaColumn); dharmatab.Click(); Engine.Browser.MiddlePause(); IList <IWebElement> values = Engine.Browser.CurrentBrowser.FindElements(FoundLendingProtocol); foreach (var value in values) { string result = value.Text; Assert.IsTrue(result.Contains("Dharma"), "[" + Env + "] LOANSCAN", "Filtering by Landing Protocol is not working as expected"); } IWebElement marketdaotab = Engine.Browser.FindElementNew(MarketDaoColumn); marketdaotab.Click(); Engine.Browser.MiddlePause(); IList <IWebElement> values2 = Engine.Browser.CurrentBrowser.FindElements(FoundLendingProtocol); foreach (var value in values2) { string result = value.Text; Assert.IsTrue(result.Contains("Maker DAO"), "[" + Env + "] LOANSCAN", "Filtering by Landing Protocol is not working as expected"); } Engine.Browser.ShortPause(); IWebElement alltab = Engine.Browser.FindElementNew(AllColumn); alltab.Click(); Engine.Browser.MiddlePause(); int countD = 0; int countM = 0; for (int i = 0; i < 5; i++) { IList <IWebElement> values3 = Engine.Browser.CurrentBrowser.FindElements(FoundLendingProtocol); foreach (var value in values3) { string result = value.Text; if (result.Contains("Dharma")) { countD++; } if (result.Contains("MakerDao")) { countM++; } } if (countD > 0 && countM > 0) { break; } else { IWebElement nextpageicon = Engine.Browser.CurrentBrowser.FindElement(NextPage); nextpageicon.Click(); Engine.Browser.MiddlePause(); } } Assert.IsTrue(countM > 0 && countD > 0, "[" + Env + "] LOANSCAN", "Filtering by Landing Protocol is not working as expected"); }
public static void VerifyTokenCanbeWithdrawnedFromLiquidityPool() { try { Console.WriteLine("Login to the app..."); ReadOnlyCollection <string> windows = MainPageBb.LoginToMainPage("lender"); string MetamaskTab = windows[0]; string BloqboardTab = windows[1]; Console.WriteLine("Test started..."); Browser.CurrentBrowser.Navigate().GoToUrl(TestData.DefineRootAdressDependingOnEnvironment() + "lend"); Browser.LongPause(); IWebElement loanedRepamount = Browser.CurrentBrowser.FindElement(LoanedRep); string[] stringSeparators = new string[] { "." }; var result = loanedRepamount.Text.Split(stringSeparators, StringSplitOptions.None); double loanedRep = double.Parse(result[0]); string loanedcount = ""; IList <IWebElement> elementListRows = Browser.CurrentBrowser.FindElements(By.CssSelector(".on-demand-wrapper .content-table-row")); foreach (var el in elementListRows) { var children = el.FindElements(By.XPath(".//*")); var tokenName = children[0].Text; int i = 1; if (tokenName.Contains("WETH")) { foreach (var ele in children) { if (ele.Text.Contains("Loaned") && loanedcount == "") { loanedcount = ele.Text; } if (ele.Text.Contains("WITHDRAW") && ele.TagName == "div") { i++; if (i >= 3) { ele.Click(); break; } } } } } Browser.ShortPause(); IWebElement amount = Browser.CurrentBrowser.FindElement(LendAMountImput); amount.SendKeys("0.001"); Browser.MiddlePause(); IWebElement confirm = Browser.CurrentBrowser.FindElement(By.CssSelector("button.on-demand-modal__button.btn-green")); confirm.Click(); Browser.MiddlePause(); Browser.CurrentBrowser.SwitchTo().Window(MetamaskTab); Browser.CurrentBrowser.Navigate().GoToUrl("chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/home.html#"); Browser.LongPause(); Browser.CurrentBrowser.Navigate().Refresh(); Browser.ShortPause(); Console.WriteLine("Confirming request..."); BloqBoard.MainPageBb.SignRequest(); Browser.ShortPause(); Browser.CurrentBrowser.SwitchTo().Window(BloqboardTab); Browser.LongPause(); string loanedAmountAfter = loanedcount; var loanedAfter = CheckLoanedAmount(); Assert.IsTrue(loanedcount != loanedAfter, "[" + Env + "] BLOQBOARD", "Lend functionality is not working as expected"); } catch (Exception exception) { Assert.FinilizeErrors(Env, "BLOQBOARD", exception, false); } }