Skip to content

Commit ba3fdec

Browse files
authored
Merge pull request #513 from AugurProject/fee-window-unit-tests
new fee window unit tests. added and modified mocks, removed unneeded…
2 parents 1c8e55f + d9e9b3a commit ba3fdec

File tree

10 files changed

+452
-22
lines changed

10 files changed

+452
-22
lines changed

source/contracts/factories/DisputeCrowdsourcerFactory.sol

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ pragma solidity 0.4.18;
33
import 'libraries/Delegator.sol';
44
import 'reporting/IDisputeCrowdsourcer.sol';
55
import 'reporting/IMarket.sol';
6-
import 'reporting/IFeeWindow.sol';
76
import 'IController.sol';
87

98

source/contracts/factories/MarketFactory.sol

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ pragma solidity 0.4.18;
22

33

44
import 'libraries/Delegator.sol';
5-
import 'reporting/IFeeWindow.sol';
65
import 'reporting/IMarket.sol';
76
import 'reporting/IReputationToken.sol';
87
import 'trading/ICash.sol';

source/contracts/reporting/FeeWindow.sol

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ import 'reporting/Reporting.sol';
1616
import 'libraries/math/SafeMathUint256.sol';
1717
import 'libraries/math/RunningAverage.sol';
1818
import 'reporting/IFeeWindow.sol';
19-
import 'factories/FeeWindowFactory.sol';
2019
import 'libraries/Extractable.sol';
2120
import 'libraries/token/VariableSupplyToken.sol';
2221
import 'reporting/IFeeToken.sol';
@@ -108,7 +107,7 @@ contract FeeWindow is DelegationTarget, VariableSupplyToken, Extractable, Initia
108107
}
109108

110109
if (_totalFeeStake == 0) {
111-
return;
110+
return true;
112111
}
113112

114113
// CASH
Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
pragma solidity 0.4.18;
2+
3+
import 'reporting/IFeeToken.sol';
4+
import 'reporting/IFeeWindow.sol';
5+
import 'libraries/DelegationTarget.sol';
6+
import 'TEST/MockVariableSupplyToken.sol';
7+
8+
9+
contract MockFeeToken is DelegationTarget, MockVariableSupplyToken, IFeeToken {
10+
bool private onBurnCalledValue;
11+
bool private onMintCalledValue;
12+
bool private onTokenTransferValue;
13+
IFeeWindow private initializeFeeWindowValue;
14+
address private feeWindowBurnTargetValue;
15+
uint256 private feeWindowBurnAmountValue;
16+
address private mintForReportingParticipantTargetValue;
17+
uint256 private mintForReportingParticipantAmountValue;
18+
address private onTokenTransferFromValue;
19+
address private onTokenTransferToValue;
20+
uint256 private onTokenTransferValueValue;
21+
address private onMintTargetValue;
22+
uint256 private onMintAmountValue;
23+
address private onBurnTargetValue;
24+
uint256 private onBurnAmountValue;
25+
26+
function reset() public {
27+
onBurnCalledValue = false;
28+
onMintCalledValue = false;
29+
onTokenTransferValue = false;
30+
feeWindowBurnTargetValue = address(0);
31+
feeWindowBurnAmountValue = 0;
32+
}
33+
34+
function onBurnCalled() public returns(bool) {
35+
return onBurnCalledValue;
36+
}
37+
38+
function onMintCalled() public returns(bool) {
39+
return onMintCalledValue;
40+
}
41+
42+
function onTokenTransferCalled() public returns(bool) {
43+
return onTokenTransferValue;
44+
}
45+
46+
function getInitializedFeeWindow() public returns(IFeeWindow) {
47+
return initializeFeeWindowValue;
48+
}
49+
50+
function initialize(IFeeWindow _feeWindow) public beforeInitialized returns (bool) {
51+
initializeFeeWindowValue = _feeWindow;
52+
return true;
53+
}
54+
55+
function getFeeWindow() public view returns (IFeeWindow) {
56+
return initializeFeeWindowValue;
57+
}
58+
59+
function getFeeWindowBurnTargetValue() public returns(address) { return feeWindowBurnTargetValue; }
60+
61+
function getFeeWindowBurnAmountValue() public returns(uint256) { return feeWindowBurnAmountValue; }
62+
63+
function feeWindowBurn(address _target, uint256 _amount) public returns (bool) {
64+
feeWindowBurnTargetValue = _target;
65+
feeWindowBurnAmountValue = _amount;
66+
return true;
67+
}
68+
69+
function getMintForReportingParticipantTargetValue() public returns(address) { return mintForReportingParticipantTargetValue; }
70+
71+
function getMintForReportingParticipantAmountValue() public returns(uint256) { return mintForReportingParticipantAmountValue; }
72+
73+
function mintForReportingParticipant(address _target, uint256 _amount) public returns (bool) {
74+
mintForReportingParticipantTargetValue = _target;
75+
mintForReportingParticipantAmountValue = _amount;
76+
return true;
77+
}
78+
79+
function getOnTokenTransferFromValue() public returns (address) { return onTokenTransferFromValue;}
80+
81+
function getOnTokenTransferToValue() public returns (address) { return onTokenTransferToValue;}
82+
83+
function getOnTokenTransferValueValue() public returns (uint256) { return onTokenTransferValueValue;}
84+
85+
function getOnMintTargetValue() public returns (address) { return onMintTargetValue;}
86+
87+
function getOnMintAmountValue() public returns (uint256) { return onMintAmountValue;}
88+
89+
function getOnBurnTargetValue() public returns (address) { return onBurnTargetValue;}
90+
91+
function getOnBurnAmountValue() public returns (uint256) { return onBurnAmountValue;}
92+
93+
function onBurn(address _target, uint256 _amount) internal returns (bool) {
94+
onBurnCalledValue = true;
95+
onBurnTargetValue = _target;
96+
onBurnAmountValue = _amount;
97+
return true;
98+
}
99+
100+
function onTokenTransfer(address _from, address _to, uint256 _value) internal returns (bool) {
101+
onTokenTransferValue = true;
102+
onTokenTransferFromValue = _from;
103+
onTokenTransferToValue = _to;
104+
onTokenTransferValueValue = _value;
105+
return true;
106+
}
107+
108+
function onMint(address _target, uint256 _amount) internal returns (bool) {
109+
onMintCalledValue = true;
110+
onMintTargetValue = _target;
111+
onMintAmountValue = _amount;
112+
return true;
113+
}
114+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
pragma solidity 0.4.18;
2+
3+
4+
import 'libraries/Delegator.sol';
5+
import 'reporting/IFeeWindow.sol';
6+
import 'IController.sol';
7+
8+
9+
contract MockFeeTokenFactory {
10+
IFeeWindow private createFeeTokenFeeWindowValue;
11+
IFeeToken private setCreateFeeTokenValue;
12+
13+
function getCreateFeeToken() public returns(IFeeToken) {
14+
return setCreateFeeTokenValue;
15+
}
16+
17+
function setCreateFeeToken(IFeeToken _feeToken) public {
18+
setCreateFeeTokenValue = _feeToken;
19+
}
20+
21+
function getCreateFeeTokenFeeWindowValue() public returns(IFeeWindow) {
22+
return createFeeTokenFeeWindowValue;
23+
}
24+
25+
function createFeeToken(IController _controller, IFeeWindow _feeWindow) public returns (IFeeToken) {
26+
createFeeTokenFeeWindowValue = _feeWindow;
27+
return setCreateFeeTokenValue;
28+
}
29+
}

tests/solidity_test_helpers/MockFeeWindowFactory.sol

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,33 @@ pragma solidity 0.4.18;
33

44
import 'IController.sol';
55
import 'reporting/IUniverse.sol';
6-
import 'reporting/IReputationToken.sol';
6+
import 'reporting/IFeeWindow.sol';
77

88

99
contract MockFeeWindowFactory {
1010
IUniverse private createFeeWindowUniverseValue;
1111
IFeeWindow private createFeeWindowValue;
12+
uint256 private createfeeWindowIdValue;
1213

1314
function getCreateFeeWindowUniverseValue() public returns(IUniverse) {
1415
return createFeeWindowUniverseValue;
1516
}
1617

18+
function getCreateFeeWindowValue(IFeeWindow _feeWindowValue) public returns(IFeeWindow) {
19+
return createFeeWindowValue;
20+
}
21+
22+
function getCreatefeeWindowIdValue() public returns(uint256) {
23+
return createfeeWindowIdValue;
24+
}
25+
1726
function setCreateFeeWindowValue(IFeeWindow _feeWindowValue) public {
1827
createFeeWindowValue = _feeWindowValue;
1928
}
2029

2130
function createFeeWindow(IController _controller, IUniverse _universe, uint256 _feeWindowId) public returns (IFeeWindow) {
2231
createFeeWindowUniverseValue = _universe;
32+
createfeeWindowIdValue = _feeWindowId;
2333
return createFeeWindowValue;
2434
}
2535
}

tests/solidity_test_helpers/MockInitialReporter.sol

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@ contract MockInitialReporter is IInitialReporter {
2626
return true;
2727
}
2828

29+
function callMintFeeTokens(IFeeWindow _feeWindow, uint256 _amount) public returns (bool) {
30+
return _feeWindow.mintFeeTokens(_amount);
31+
}
32+
2933
function report(address _reporter, bytes32 _payoutDistributionHash, uint256[] _payoutNumerators, bool _invalid) public returns (bool) {
3034
return true;
3135
}

tests/solidity_test_helpers/MockMarket.sol

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ contract MockMarket is IMarket {
3232
uint256 private firstReporterCompCheck;
3333
bool private migrateDueToNoRep;
3434
bool private isContForShareToken;
35-
bool private isValidValue;
35+
bool private isInValidValue;
3636
address private owner;
3737
bool private transferOwner;
3838
IUniverse private initializeUniverseValue;
@@ -44,6 +44,8 @@ contract MockMarket is IMarket {
4444
address private initializeCreatorValue;
4545
address private initializeDesignatedReporterAddressValue;
4646
IMailbox private setMarketCreatorMailbox;
47+
bool private setDesignatedReporterWasCorrectValue;
48+
bool private setDesignatedReporterShowedValue;
4749
/*
4850
* setters to feed the getters and impl of IMarket
4951
*/
@@ -139,8 +141,8 @@ contract MockMarket is IMarket {
139141
isContForShareToken = _isContForShareToken;
140142
}
141143

142-
function setIsValid(bool _isValidValue) public {
143-
isValidValue = _isValidValue;
144+
function setIsInvalid(bool _isInValidValue) public {
145+
isInValidValue = _isInValidValue;
144146
}
145147

146148
function setOwner(address _owner) public {
@@ -203,6 +205,10 @@ contract MockMarket is IMarket {
203205
setMarketCreatorMailbox = _setMarketCreatorMailbox;
204206
}
205207

208+
function callOnMarketFinalized(IFeeWindow _feeWindow) public returns(bool) {
209+
return _feeWindow.onMarketFinalized();
210+
}
211+
206212
/*
207213
* IMarket methods
208214
*/
@@ -329,8 +335,8 @@ contract MockMarket is IMarket {
329335
return isContForShareToken;
330336
}
331337

332-
function isValid() public view returns (bool) {
333-
return isValidValue;
338+
function isInvalid() public view returns (bool) {
339+
return isInValidValue;
334340
}
335341

336342
function getMarketCreatorMailbox() public view returns (IMailbox) {
@@ -357,20 +363,20 @@ contract MockMarket is IMarket {
357363
return true;
358364
}
359365

360-
function isInvalid() public view returns (bool) {
361-
return true;
362-
}
363-
364366
function finishedCrowdsourcingDisputeBond() public returns (bool) {
365367
return true;
366368
}
367369

370+
function setDesignatedReporterWasCorrect(bool _designatedReporterWasCorrect) public { setDesignatedReporterWasCorrectValue = _designatedReporterWasCorrect; }
371+
368372
function designatedReporterWasCorrect() public view returns (bool) {
369-
return true;
373+
return setDesignatedReporterWasCorrectValue;
370374
}
371375

376+
function setDesignatedReporterShowed(bool _designatedReporterShowed) public { setDesignatedReporterShowedValue = _designatedReporterShowed; }
377+
372378
function designatedReporterShowed() public view returns (bool) {
373-
return true;
379+
return setDesignatedReporterShowedValue;
374380
}
375381

376382
function isFinalized() public view returns (bool) {

tests/solidity_test_helpers/MockUniverse.sol

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ contract MockUniverse is Initializable, IUniverse {
2323
IMarket private setForkingMarketValue;
2424
uint256 private setForkEndTimeValue;
2525
bytes32 private setParentPayoutDistributionHashValue;
26-
uint256 private setReportingPeriodDurationInSecondsValue;
26+
uint256 private setDisputeRoundDurationInSecondsValue;
2727
IFeeWindow private setFeeWindowByTimestampValue;
2828
IFeeWindow private setFeeWindowByMarketEndTimeValue;
2929
IFeeWindow private setCurrentFeeWindowValue;
@@ -53,6 +53,8 @@ contract MockUniverse is Initializable, IUniverse {
5353
uint256 private setForkReputationGoalValue;
5454
MarketFactory private marketFactory;
5555
Controller private controller;
56+
bool private setIsContainerForReportingParticipantValue;
57+
bool private setIsForkingValue;
5658
/*
5759
* setters to feed the getters and impl of IUniverse
5860
*/
@@ -88,8 +90,8 @@ contract MockUniverse is Initializable, IUniverse {
8890
setParentPayoutDistributionHashValue = _setParentPayoutDistributionHashValue;
8991
}
9092

91-
function setReportingPeriodDurationInSeconds(uint256 _setReportingPeriodDurationInSecondsValue) public {
92-
setReportingPeriodDurationInSecondsValue = _setReportingPeriodDurationInSecondsValue;
93+
function setDisputeRoundDurationInSeconds(uint256 _setDisputeRoundDurationInSecondsValue) public {
94+
setDisputeRoundDurationInSecondsValue = _setDisputeRoundDurationInSecondsValue;
9395
}
9496

9597
function setFeeWindowByTimestamp(IFeeWindow _setFeeWindowByTimestampValue) public {
@@ -200,6 +202,9 @@ contract MockUniverse is Initializable, IUniverse {
200202
return initializeParentPayoutDistributionHashValue;
201203
}
202204

205+
function setIsContainerForReportingParticipant(bool _value) public {
206+
setIsContainerForReportingParticipantValue = _value;
207+
}
203208
/*
204209
* Impl of IUniverse and ITyped
205210
*/
@@ -247,7 +252,7 @@ contract MockUniverse is Initializable, IUniverse {
247252
}
248253

249254
function getDisputeRoundDurationInSeconds() public view returns (uint256) {
250-
return setReportingPeriodDurationInSecondsValue;
255+
return setDisputeRoundDurationInSecondsValue;
251256
}
252257

253258
function getOrCreateFeeWindowByTimestamp(uint256 _timestamp) public returns (IFeeWindow) {
@@ -396,7 +401,7 @@ contract MockUniverse is Initializable, IUniverse {
396401
}
397402

398403
function isContainerForReportingParticipant(IReportingParticipant _reportingParticipant) public view returns (bool) {
399-
return true;
404+
return setIsContainerForReportingParticipantValue;
400405
}
401406

402407
function addMarketTo() public returns (bool) {
@@ -423,8 +428,10 @@ contract MockUniverse is Initializable, IUniverse {
423428
return true;
424429
}
425430

431+
function setIsForking(bool _isForking) public { setIsForkingValue = _isForking; }
432+
426433
function isForking() public view returns (bool) {
427-
return true;
434+
return setIsForkingValue;
428435
}
429436

430437
function updateTentativeWinningChildUniverse(bytes32 _parentPayoutDistributionHash) public returns (bool) {

0 commit comments

Comments
 (0)