// 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); } }