From 03a6249875afd832ed62869a4d97871070fa235e Mon Sep 17 00:00:00 2001 From: eboado Date: Wed, 3 Jun 2020 12:44:10 +0200 Subject: [PATCH] - Ported LendingPoolAddressesProvider test. --- helpers/contracts-helpers.ts | 29 +++++++++++------- helpers/misc-utils.ts | 7 +++-- helpers/types.ts | 3 +- test/basic.spec.ts | 25 ---------------- test/helpers/test-helpers.ts | 0 test/lending-pool-addresses-provider.ts | 40 +++++++++++++++++++++++++ 6 files changed, 65 insertions(+), 39 deletions(-) delete mode 100644 test/basic.spec.ts delete mode 100644 test/helpers/test-helpers.ts create mode 100644 test/lending-pool-addresses-provider.ts diff --git a/helpers/contracts-helpers.ts b/helpers/contracts-helpers.ts index 6556fe0f..ec76568b 100644 --- a/helpers/contracts-helpers.ts +++ b/helpers/contracts-helpers.ts @@ -1,7 +1,9 @@ -import { Contract, Signer, utils } from "ethers"; +import {Contract, Signer, utils} from "ethers"; -import { getDb, BRE } from "./misc-utils"; -import { tEthereumAddress, eContractid } from "./types"; +import {getDb, BRE} from "./misc-utils"; +import {tEthereumAddress, eContractid} from "./types"; +import {Example} from "../types/Example"; +import {LendingPoolAddressesProvider} from "../types/LendingPoolAddressesProvider"; export const registerContractInJsonDb = async ( contractId: string, @@ -34,7 +36,9 @@ export const registerContractInJsonDb = async ( export const getEthersSigners = async (): Promise => await Promise.all(await BRE.ethers.signers()); -export const getEthersSignersAddresses = async (): Promise => +export const getEthersSignersAddresses = async (): Promise< + tEthereumAddress[] +> => await Promise.all( (await BRE.ethers.signers()).map((signer) => signer.getAddress()) ); @@ -63,16 +67,19 @@ const getContract = async ( )) as ContractType; export const deployExampleContract = async () => - await deployContract(eContractid.Example, []); + await deployContract(eContractid.Example, []); + +export const deployLendingPoolAddressesProvider = async () => + await deployContract( + eContractid.LendingPoolAddressesProvider, + [] + ); export const getExampleContract = async (address?: tEthereumAddress) => { - return await getContract( + return await getContract( eContractid.Example, address || - ( - await getDb() - .get(`${eContractid.Example}.${BRE.network.name}`) - .value() - ).address + (await getDb().get(`${eContractid.Example}.${BRE.network.name}`).value()) + .address ); }; diff --git a/helpers/misc-utils.ts b/helpers/misc-utils.ts index 5cc2b04e..33107e3e 100644 --- a/helpers/misc-utils.ts +++ b/helpers/misc-utils.ts @@ -2,8 +2,9 @@ import BigNumber from "bignumber.js"; import BN = require("bn.js"); import low from "lowdb"; import FileSync from "lowdb/adapters/FileSync"; -import { WAD } from "./constants"; -import { BuidlerRuntimeEnvironment } from "@nomiclabs/buidler/types"; +import {WAD} from "./constants"; +import {Wallet} from "ethers"; +import {BuidlerRuntimeEnvironment} from "@nomiclabs/buidler/types"; export const toWad = (value: string | number) => new BigNumber(value).times(WAD).toFixed(); @@ -23,3 +24,5 @@ export const setBRE = (_BRE: BuidlerRuntimeEnvironment) => { export const sleep = (milliseconds: number) => { return new Promise((resolve) => setTimeout(resolve, milliseconds)); }; + +export const createRandomAddress = () => Wallet.createRandom().address; diff --git a/helpers/types.ts b/helpers/types.ts index 85f0347c..42072f66 100644 --- a/helpers/types.ts +++ b/helpers/types.ts @@ -8,7 +8,8 @@ export enum eEthereumNetwork { } export enum eContractid { - Example = "Example" + Example = "Example", + LendingPoolAddressesProvider = "LendingPoolAddressesProvider" } export type tEthereumAddress = string; diff --git a/test/basic.spec.ts b/test/basic.spec.ts deleted file mode 100644 index 43522666..00000000 --- a/test/basic.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import rawBRE from "@nomiclabs/buidler"; -import { expect } from "chai"; -import { MockProvider } from "ethereum-waffle"; -import { BuidlerRuntimeEnvironment } from "@nomiclabs/buidler/types"; -import { deployExampleContract } from "../helpers/contracts-helpers"; -import { Example } from "../types/Example"; - -describe("Example test", () => { - const [wallet] = new MockProvider().getWallets(); - let BRE: BuidlerRuntimeEnvironment; - - before(async () => { - console.log("To execute once per 'describe'"); - BRE = await rawBRE.run("set-bre"); - }); - - it("test()", async () => { - const example = (await deployExampleContract()) as Example; - - expect((await example.test()).toString()).to.equal( - "5", - "INVALID_TEST_VALUE" - ); - }); -}); diff --git a/test/helpers/test-helpers.ts b/test/helpers/test-helpers.ts deleted file mode 100644 index e69de29b..00000000 diff --git a/test/lending-pool-addresses-provider.ts b/test/lending-pool-addresses-provider.ts new file mode 100644 index 00000000..ad43cc2f --- /dev/null +++ b/test/lending-pool-addresses-provider.ts @@ -0,0 +1,40 @@ +import rawBRE from "@nomiclabs/buidler"; +import {expect} from "chai"; +import {MockProvider} from "ethereum-waffle"; +import {BuidlerRuntimeEnvironment} from "@nomiclabs/buidler/types"; +import {deployLendingPoolAddressesProvider} from "../helpers/contracts-helpers"; +import {LendingPoolAddressesProvider} from "../types/LendingPoolAddressesProvider"; +import {createRandomAddress} from "../helpers/misc-utils"; + +describe("LendingPoolAddressesProvider", () => { + const wallets = new MockProvider().getWallets(); + let BRE: BuidlerRuntimeEnvironment; + + before(async () => { + BRE = await rawBRE.run("set-bre"); + }); + + it("Test the accessibility of the LendingPoolAddressesProvider", async () => { + const mockAddress = createRandomAddress(); + const INVALID_OWNER_REVERT_MSG = "Ownable: caller is not the owner"; + const addressesProvider = (await deployLendingPoolAddressesProvider()) as LendingPoolAddressesProvider; + await addressesProvider.transferOwnership(wallets[1].address); + + for (const contractFunction of [ + addressesProvider.setFeeProviderImpl, + addressesProvider.setLendingPoolImpl, + addressesProvider.setLendingPoolConfiguratorImpl, + addressesProvider.setLendingPoolCoreImpl, + addressesProvider.setLendingPoolDataProviderImpl, + addressesProvider.setLendingPoolLiquidationManager, + addressesProvider.setLendingPoolManager, + addressesProvider.setLendingPoolParametersProviderImpl, + addressesProvider.setPriceOracle, + addressesProvider.setLendingRateOracle, + ]) { + await expect(contractFunction(mockAddress)).to.be.revertedWith( + INVALID_OWNER_REVERT_MSG + ); + } + }); +});