41 lines
1.1 KiB
Solidity
41 lines
1.1 KiB
Solidity
// SPDX-License-Identifier: MIT
|
|
|
|
pragma solidity ^0.8.17;
|
|
|
|
import "./TestBase.sol";
|
|
import {FleekAccessControl} from "contracts/FleekAccessControl.sol";
|
|
|
|
contract Test_FleekERC721_Burn is Test_FleekERC721_Base {
|
|
uint256 internal tokenId;
|
|
|
|
function setUp() public {
|
|
baseSetUp();
|
|
tokenId = mintDefault(deployer);
|
|
}
|
|
|
|
function test_burn() public {
|
|
CuT.burn(tokenId);
|
|
}
|
|
|
|
function testFuzz_cannotBurnAsNotOwner(address account) public {
|
|
vm.assume(account != deployer);
|
|
vm.prank(account);
|
|
expectRevertWithMustBeTokenOwner(tokenId);
|
|
CuT.burn(tokenId);
|
|
}
|
|
|
|
function testFuzz_cannotBurnAsController(address account) public {
|
|
vm.assume(account != deployer);
|
|
CuT.grantTokenRole(tokenId, FleekAccessControl.TokenRoles.Controller, account);
|
|
vm.prank(account);
|
|
expectRevertWithMustBeTokenOwner(tokenId);
|
|
CuT.burn(tokenId);
|
|
}
|
|
|
|
function testFuzz_cannotBurnInexistentToken(uint256 _tokenId) public {
|
|
vm.assume(_tokenId != tokenId);
|
|
expectRevertWithInvalidTokenId();
|
|
CuT.burn(_tokenId);
|
|
}
|
|
}
|