// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.13; import "forge-std/Test.sol"; import {UnaboomerCommon} from "../src/UnaboomerCommon.sol"; import {Unaboomer} from "../src/Unaboomer.sol"; import {Mailbomb} from "../src/Mailbomb.sol"; contract UnaboomerTest is Test { UnaboomerCommon public main; Unaboomer public boomr; Mailbomb public bomb; function setUp() public { main = new UnaboomerCommon(); boomr = new Unaboomer(); bomb = new Mailbomb(); boomr.setMainContract(address(main)); bomb.setMainContract(address(main)); main.setUnaboomerContract(address(boomr)); main.setMailbombContract(address(bomb)); } function testWithdraws() public { vm.deal(address(main), 10 ether); vm.prank(address(main.owner())); main.withdraw(); } function testMint() public { hoax(address(1)); main.radicalizeBoomer{value: 0.05 ether}(5); assertEq(boomr.totalSupply(), 5); assertEq(boomr.tokenDead(1), false); } }