Skip to content

Commit

Permalink
Mock Test Contract
Browse files Browse the repository at this point in the history
  • Loading branch information
hakymulla committed Jun 27, 2024
1 parent bdc931b commit fbec1b9
Show file tree
Hide file tree
Showing 5 changed files with 93 additions and 2 deletions.
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "ethereum/lib/forge-std"]
path = ethereum/lib/forge-std
url = https://github.com/foundry-rs/forge-std
5 changes: 3 additions & 2 deletions ethereum/foundry.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ src = "src"
out = "out"
libs = ["lib"]
fs_permissions = [{ access = "read-write", path = "./logs" }]
remappings = ["@forge-std/=lib/forge-std/"]

[dependencies] # <= Dependencies will be added under this config
forge-std = { version = "1.8.2", url = "https://github.com/foundry-rs/foundry.git" }
[profile.dependencies] # <= Dependencies will be added under this config
forge-std = { version = "1.8.2", url = "https://github.com/foundry-rs/foundry.git" }
28 changes: 28 additions & 0 deletions ethereum/script/DeployMockStorage.s.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.0;

import {Script} from "@forge-std/src/Script.sol";
import {MockStorage} from "../src/Mock/MockStorage.sol";

contract DeployMockStorage is Script{

uint256 public val1 = 1000;
uint256 public val2 = 2000;
address public addr = 0x9D7f74d0C41E726EC95884E0e97Fa6129e3b5E99;
address public addr2 = 0x5B38Da6a701c568545dCfcB03FcB875f56beddC4;

function run() external returns (MockStorage) {

vm.startBroadcast();
MockStorage mockStorage = new MockStorage();
mockStorage.setValue(val1);
mockStorage.setMapValues(val1, addr);
mockStorage.setMapValues(val2, addr2);
mockStorage.setArrValues(addr);
mockStorage.setArrValues(addr2);
vm.stopBroadcast();

return mockStorage;
}

}
32 changes: 32 additions & 0 deletions ethereum/src/Mock/MockStorage.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.0;

contract MockStorage {
uint256 public value;
mapping(uint256 => address) public mapValues;
address[] public arrValues;

function setValue(uint256 _value) public {
value = _value;
}

function getValue() public view returns (uint256) {
return value;
}

function setMapValues(uint256 _value, address _add) public {
mapValues[_value] = _add;
}

function getMapValues(uint256 _value) public view returns (address) {
return mapValues[_value];
}

function setArrValues(address _value) public {
arrValues.push(_value);
}

function getArrValues(uint256 i) public view returns (address) {
return arrValues[i];
}
}
27 changes: 27 additions & 0 deletions ethereum/test/MockStorageTest.t.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.0;

import {Script} from "@forge-std/src/Script.sol";
import {MockStorage} from "../src/Mock/MockStorage.sol";
import {DeployMockStorage} from "../script/DeployMockStorage.s.sol";
import {Test, console} from "@forge-std/src/Test.sol";

contract MockStorageTest is Test{
MockStorage mockStorage;

function setUp() external {
DeployMockStorage deployer = new DeployMockStorage();
mockStorage = deployer.run();
}


function testMockStorage() public view {

assert( mockStorage.getValue() == 1000);
assert( mockStorage.getMapValues(1000) == 0x9D7f74d0C41E726EC95884E0e97Fa6129e3b5E99);
assert( mockStorage.getMapValues(2000) == 0x5B38Da6a701c568545dCfcB03FcB875f56beddC4);
assert( mockStorage.getArrValues(0) == 0x9D7f74d0C41E726EC95884E0e97Fa6129e3b5E99);
assert( mockStorage.getArrValues(1) == 0x5B38Da6a701c568545dCfcB03FcB875f56beddC4);

}
}

0 comments on commit fbec1b9

Please sign in to comment.