non-fungible-apps/contracts/test/foundry/FleekERC721/Verified.t.sol

50 lines
1.6 KiB
Solidity

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;
import "./TestBase.sol";
import {TestConstants} from "./Constants.sol";
import {FleekAccessControl} from "../../../contracts/FleekAccessControl.sol";
contract Test_FleekERC721_Verified is Test_FleekERC721_Base {
uint256 internal tokenId;
function setUp() public {
baseSetUp();
tokenId = mintDefault(deployer);
}
function test_shouldNotBeVerifiedAfterMint() public {
assertFalse(CuT.isTokenVerified(tokenId));
}
function test_shouldVerifyToken() public {
CuT.setTokenVerified(tokenId, true);
assertTrue(CuT.isTokenVerified(tokenId));
}
function test_verifyAndUnverify() public {
CuT.setTokenVerified(tokenId, true);
assertTrue(CuT.isTokenVerified(tokenId));
CuT.setTokenVerified(tokenId, false);
assertFalse(CuT.isTokenVerified(tokenId));
}
function testFuzz_shouldNotAllowVerifyIfHasNotVerifierRole(address verifier) public {
vm.assume(!CuT.hasCollectionRole(FleekAccessControl.CollectionRoles.Verifier, verifier));
vm.prank(verifier);
expectRevertWithCollectionRole(FleekAccessControl.CollectionRoles.Verifier);
CuT.setTokenVerified(tokenId, true);
}
function testFuzz_shouldNotAllowVerifyIfIsNotTokenVerifier(address verifier) public {
vm.assume(CuT.getTokenVerifier(tokenId) != verifier);
CuT.grantCollectionRole(FleekAccessControl.CollectionRoles.Verifier, verifier);
vm.prank(verifier);
expectRevertWithMustBeTokenVerifier(tokenId);
CuT.setTokenVerified(tokenId, true);
}
}