fluid-contracts-public/test/foundry/oracle/weETHOracle.t.sol

33 lines
1.2 KiB
Solidity
Raw Normal View History

//SPDX-License-Identifier: MIT
pragma solidity 0.8.21;
import { Test } from "forge-std/Test.sol";
import { IWeETH } from "../../../contracts/oracle/interfaces/external/IWeETH.sol";
import { WeETHOracle } from "../../../contracts/oracle/oracles/weETHOracle.sol";
import { ErrorTypes } from "../../../contracts/oracle/errorTypes.sol";
import { Error } from "../../../contracts/oracle/error.sol";
import { OracleTestSuite } from "./oracleTestSuite.t.sol";
contract WeETHOracleTest is OracleTestSuite {
function setUp() public override {
super.setUp();
oracle = new WeETHOracle(infoName, WEETH_TOKEN);
}
function test_constructor() public {
vm.expectRevert(abi.encodeWithSelector(Error.FluidOracleError.selector, ErrorTypes.WeETHOracle__InvalidParams));
oracle = new WeETHOracle(infoName, IWeETH(address(0)));
}
function test_getExchangeRate() public {
uint256 eEthPerWeEth = WEETH_TOKEN.getEETHByWeETH(1e18);
uint256 expectedRate = (eEthPerWeEth * 1e27) / 1e18;
assertEq(expectedRate, 1025233132798815224000000000); // 1.025233132798815224000000000
_assertExchangeRatesAllMethods(oracle, expectedRate);
}
}