Skip to content

Commit

Permalink
Move invariant testing to own folder
Browse files Browse the repository at this point in the history
  • Loading branch information
elenadimitrova committed Aug 16, 2022
1 parent f2e5377 commit 6733821
Show file tree
Hide file tree
Showing 3 changed files with 74 additions and 71 deletions.
File renamed without changes.
74 changes: 74 additions & 0 deletions tests/invariants/RangeEditionMinterInvariants.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
pragma solidity ^0.8.16;

import "./InvariantTest.sol";
import "../modules/Minters/RangeEditionMinter.t.sol";

contract RangeEditionMinterInvariants is RangeEditionMinterTests, InvariantTest {
RangeEditionMinterUpdater minterUpdater;
RangeEditionMinter minter;
SoundEditionV1 edition;

function setUp() public override {
super.setUp();

edition = createGenericEdition();

minter = new RangeEditionMinter();

edition.grantRole(edition.MINTER_ROLE(), address(minter));

minter.createEditionMint(
address(edition),
PRICE,
START_TIME,
CLOSING_TIME,
END_TIME,
MAX_MINTABLE_LOWER,
MAX_MINTABLE_UPPER,
MAX_ALLOWED_PER_WALLET
);

minterUpdater = new RangeEditionMinterUpdater(edition, minter);

addTargetContract(address(minter));
}

function invariant_maxMintableRange() public {
RangeEditionMinter.EditionMintData memory data = minter.editionMintData(address(edition), MINT_ID);
assertTrue(data.maxMintableLower < data.maxMintableUpper);
}

function invariant_timeRange() public {
RangeEditionMinter.EditionMintData memory data = minter.editionMintData(address(edition), MINT_ID);
MintControllerBase.BaseData memory baseData = minter.baseMintData(address(edition), MINT_ID);

uint32 startTime = baseData.startTime;
uint32 closingTime = data.closingTime;
uint32 endTime = baseData.endTime;
assertTrue(startTime < closingTime && closingTime < endTime);
}
}

contract RangeEditionMinterUpdater {
uint256 constant MINT_ID = 0;

SoundEditionV1 edition;
RangeEditionMinter minter;

constructor(SoundEditionV1 _edition, RangeEditionMinter _minter) {
edition = _edition;
minter = _minter;
}

function setTimeRange(
uint32 startTime,
uint32 closingTime,
uint32 endTime
) public {
minter.setTimeRange(address(edition), MINT_ID, startTime, closingTime, endTime);
}

function setMaxMintableRange(uint32 maxMintableLower, uint32 maxMintableUpper) public {
minter.setMaxMintableRange(address(edition), MINT_ID, maxMintableLower, maxMintableUpper);
}
}
71 changes: 0 additions & 71 deletions tests/modules/Minters/RangeEditionMinter.t.sol
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
pragma solidity ^0.8.16;

import "../../TestConfig.sol";
import "../../utils/InvariantTest.sol";
import "../../../contracts/SoundEdition/SoundEditionV1.sol";
import "../../../contracts/SoundCreator/SoundCreatorV1.sol";
import "../../../contracts/modules/Minters/RangeEditionMinter.sol";
Expand Down Expand Up @@ -373,73 +372,3 @@ contract RangeEditionMinterTests is TestConfig {
}
}
}

contract RangeEditionMinterInvariants is RangeEditionMinterTests, InvariantTest {
RangeEditionMinterUpdater minterUpdater;
RangeEditionMinter minter;
SoundEditionV1 edition;

function setUp() public override {
super.setUp();

edition = createGenericEdition();

minter = new RangeEditionMinter();

edition.grantRole(edition.MINTER_ROLE(), address(minter));

minter.createEditionMint(
address(edition),
PRICE,
START_TIME,
CLOSING_TIME,
END_TIME,
MAX_MINTABLE_LOWER,
MAX_MINTABLE_UPPER,
MAX_ALLOWED_PER_WALLET
);

minterUpdater = new RangeEditionMinterUpdater(edition, minter);

addTargetContract(address(minter));
}

function invariant_maxMintableRange() public {
RangeEditionMinter.EditionMintData memory data = minter.editionMintData(address(edition), MINT_ID);
assertTrue(data.maxMintableLower < data.maxMintableUpper);
}

function invariant_timeRange() public {
RangeEditionMinter.EditionMintData memory data = minter.editionMintData(address(edition), MINT_ID);
MintControllerBase.BaseData memory baseData = minter.baseMintData(address(edition), MINT_ID);

uint32 startTime = baseData.startTime;
uint32 closingTime = data.closingTime;
uint32 endTime = baseData.endTime;
assertTrue(startTime < closingTime && closingTime < endTime);
}
}

contract RangeEditionMinterUpdater {
uint256 constant MINT_ID = 0;

SoundEditionV1 edition;
RangeEditionMinter minter;

constructor(SoundEditionV1 _edition, RangeEditionMinter _minter) {
edition = _edition;
minter = _minter;
}

function setTimeRange(
uint32 startTime,
uint32 closingTime,
uint32 endTime
) public {
minter.setTimeRange(address(edition), MINT_ID, startTime, closingTime, endTime);
}

function setMaxMintableRange(uint32 maxMintableLower, uint32 maxMintableUpper) public {
minter.setMaxMintableRange(address(edition), MINT_ID, maxMintableLower, maxMintableUpper);
}
}

0 comments on commit 6733821

Please sign in to comment.