Skip to content

Commit

Permalink
Added tests
Browse files Browse the repository at this point in the history
  • Loading branch information
McReader committed Dec 5, 2023
1 parent 0332990 commit e362a54
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 23 deletions.
8 changes: 5 additions & 3 deletions src/Oracle.sol
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,15 @@ import {DataStreamConsumer} from "./DataStreamConsumer.sol";
import {PriceFeedConsumer} from "./PriceFeedConsumer.sol";
import {RequestsManager} from "./RequestsManager.sol";

contract Oracle is IOracle, DataStreamConsumer, PriceFeedConsumer {
contract Oracle is IOracle, DataStreamConsumer {
error DuplicatedRequestCreation(bytes32 id);
error InvalidRequestsExecution(bytes32 id);
error FailedRequestsConsumption(bytes32 id);

IAutomationEmitter public immutable emitter;
IVerifierProxy public immutable verifier;
RequestsManager public immutable requestManager;
PriceFeedConsumer public immutable priceFeedConsumer;
// blocks from request initialization
uint256 public immutable requestTimeout;

Expand All @@ -36,10 +37,11 @@ contract Oracle is IOracle, DataStreamConsumer, PriceFeedConsumer {
string memory _dataStreamfeedId,
address _priceFeedId,
uint256 _requestTimeout
) DataStreamConsumer(_dataStreamfeedId) PriceFeedConsumer(_priceFeedId) {
) DataStreamConsumer(_dataStreamfeedId) {
emitter = IAutomationEmitter(_emmiter);
verifier = IVerifierProxy(_verifier);
requestManager = new RequestsManager();
priceFeedConsumer = PriceFeedConsumer(_priceFeedId);
requestTimeout = _requestTimeout;
}

Expand Down Expand Up @@ -166,7 +168,7 @@ contract Oracle is IOracle, DataStreamConsumer, PriceFeedConsumer {
revert InvalidRequestsExecution(id);
}

int256 price = getLatestPrice();
int256 price = priceFeedConsumer.getLatestPrice();

bool success = IOracleConsumerContract(callbackContract).consume(
ForwardData({
Expand Down
2 changes: 1 addition & 1 deletion src/PriceFeedConsumer.sol
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ abstract contract PriceFeedConsumer {
*
* @return latest price
*/
function getLatestPrice() internal view returns (int256) {
function getLatestPrice() public view returns (int256) {
(
,
/* uint80 roundID */
Expand Down
40 changes: 21 additions & 19 deletions src/test/Oracle.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import "@std/Test.sol";

import {Oracle} from "src/Oracle.sol";
import {AutomationEmitter} from "src/AutomationEmitter.sol";
import {IOracleConsumerContract} from "src/interfaces/IOracleCallBackContract.sol";

contract OracleTest is Test {
event AutomationTrigger(
Expand All @@ -24,9 +25,9 @@ contract OracleTest is Test {
AutomationEmitter emitter = new AutomationEmitter();
oracle = new Oracle(
address(emitter),
address(0),
address(1),
"test",
address(0),
address(2),
10
);
}
Expand Down Expand Up @@ -74,23 +75,24 @@ contract OracleTest is Test {
);
}

// function test_Fallback() public {
// oracle.addRequest(
// address(this),
// abi.encodePacked("test"),
// 0,
// address(this)
// );

// vm.roll(100);

// oracle.fallbackCall(
// address(this),
// abi.encodePacked("test"),
// 0,
// address(this)
// );
// }
function test_Fallback() public {
oracle.addRequest(address(3), abi.encodePacked("test"), 0, address(4));

vm.roll(12);

vm.mockCall(
address(3),
abi.encodeWithSelector(IOracleConsumerContract.consume.selector),
abi.encode(true)
);

oracle.fallbackCall(
address(3),
abi.encodePacked("test"),
0,
address(4)
);
}

function test_RevertIfTimoutHasNotPassed() public {
oracle.addRequest(
Expand Down

0 comments on commit e362a54

Please sign in to comment.