42 lines
1015 B
Solidity
42 lines
1015 B
Solidity
// SPDX-License-Identifier: MIT
|
|
pragma solidity ^0.8.26;
|
|
|
|
import {Test} from "forge-std/Test.sol";
|
|
import {Counter} from "../src/Counter.sol";
|
|
|
|
contract CounterTest is Test {
|
|
Counter private counter;
|
|
address private owner = address(0xA11CE);
|
|
address private stranger = address(0xB0B);
|
|
|
|
function setUp() public {
|
|
vm.prank(owner);
|
|
counter = new Counter(41);
|
|
}
|
|
|
|
function testInitialNumberAndOwner() public view {
|
|
assertEq(counter.number(), 41);
|
|
assertEq(counter.owner(), owner);
|
|
}
|
|
|
|
function testOwnerCanSetNumber() public {
|
|
vm.prank(owner);
|
|
counter.setNumber(100);
|
|
|
|
assertEq(counter.number(), 100);
|
|
}
|
|
|
|
function testNonOwnerCannotSetNumber() public {
|
|
vm.prank(stranger);
|
|
vm.expectRevert(Counter.NotOwner.selector);
|
|
counter.setNumber(100);
|
|
}
|
|
|
|
function testAnyoneCanIncrement() public {
|
|
vm.prank(stranger);
|
|
counter.increment();
|
|
|
|
assertEq(counter.number(), 42);
|
|
}
|
|
}
|