1515
1616import lombok .extern .slf4j .Slf4j ;
1717import org .bouncycastle .util .encoders .Hex ;
18- import org .junit .After ;
1918import org .junit .Assert ;
20- import org .junit .Before ;
2119import org .junit .Ignore ;
22- import org .junit .Rule ;
2320import org .junit .Test ;
24- import org .junit .rules .TemporaryFolder ;
25- import org .tron .common .TestConstants ;
26- import org .tron .common .application .TronApplicationContext ;
21+ import org .tron .common .BaseMethodTest ;
2722import org .tron .common .parameter .CommonParameter ;
2823import org .tron .common .runtime .Runtime ;
2924import org .tron .common .runtime .RuntimeImpl ;
3833import org .tron .core .Wallet ;
3934import org .tron .core .capsule .AccountCapsule ;
4035import org .tron .core .capsule .TransactionCapsule ;
41- import org .tron .core .config .DefaultConfig ;
42- import org .tron .core .config .args .Args ;
4336import org .tron .core .consensus .ConsensusService ;
44- import org .tron .core .db .Manager ;
4537import org .tron .core .db .TransactionTrace ;
4638import org .tron .core .service .MortgageService ;
4739import org .tron .core .store .StoreFactory ;
5244import org .tron .protos .Protocol ;
5345
5446@ Slf4j
55- public class VoteTest {
47+ public class VoteTest extends BaseMethodTest {
5648
5749 /**
5850 * contract TestVote {
@@ -265,23 +257,20 @@ private static Consumer<byte[]> getSmallerConsumer(long expected) {
265257 return getConsumer ("<" , expected );
266258 }
267259
268- @ Rule
269- public TemporaryFolder temporaryFolder = new TemporaryFolder ();
270- private static TronApplicationContext context ;
271- private static Manager manager ;
272260 private static MaintenanceManager maintenanceManager ;
273261 private static ConsensusService consensusService ;
274262 private static MortgageService mortgageService ;
275263 private static byte [] owner ;
276264 private static Repository rootRepository ;
277265
278- @ Before
279- public void init () throws Exception {
280- Args .setParam (new String []{"--output-directory" ,
281- temporaryFolder .newFolder ().toString (), "--debug" }, TestConstants .TEST_CONF );
266+ @ Override
267+ protected String [] extraArgs () {
268+ return new String []{"--debug" };
269+ }
270+
271+ @ Override
272+ protected void afterInit () {
282273 CommonParameter .getInstance ().setCheckFrozenTime (0 );
283- context = new TronApplicationContext (DefaultConfig .class );
284- manager = context .getBean (Manager .class );
285274 maintenanceManager = context .getBean (MaintenanceManager .class );
286275 consensusService = context .getBean (ConsensusService .class );
287276 consensusService .start ();
@@ -301,17 +290,15 @@ public void init() throws Exception {
301290 VMConfig .initAllowTvmIstanbul (1 );
302291 VMConfig .initAllowTvmFreeze (1 );
303292 VMConfig .initAllowTvmVote (1 );
304- manager .getDynamicPropertiesStore ().saveChangeDelegation (1 );
305- manager .getDynamicPropertiesStore ().saveAllowTvmVote (1 );
306- manager .getDynamicPropertiesStore ().saveNewRewardAlgorithmEffectiveCycle ();
293+ dbManager .getDynamicPropertiesStore ().saveChangeDelegation (1 );
294+ dbManager .getDynamicPropertiesStore ().saveAllowTvmVote (1 );
295+ dbManager .getDynamicPropertiesStore ().saveNewRewardAlgorithmEffectiveCycle ();
307296 }
308297
309- @ After
310- public void destroy () {
298+ @ Override
299+ protected void beforeDestroy () {
311300 ConfigLoader .disable = false ;
312301 VMConfig .initVmHardFork (false );
313- Args .clearParam ();
314- context .destroy ();
315302 }
316303
317304 private byte [] deployContract (String contractName , String abi , String code ) throws Exception {
@@ -331,7 +318,7 @@ private byte[] deployContract(String contractName, String abi, String code) thro
331318 trace .finalization ();
332319 Runtime runtime = trace .getRuntime ();
333320 Assert .assertEquals (SUCCESS , runtime .getResult ().getResultCode ());
334- Assert .assertEquals (value , manager .getAccountStore ().get (contractAddr ).getBalance ());
321+ Assert .assertEquals (value , dbManager .getAccountStore ().get (contractAddr ).getBalance ());
335322
336323 return contractAddr ;
337324 }
@@ -394,7 +381,7 @@ public void testVote() throws Exception {
394381 isWitnessMethod , userAStr );
395382
396383 // query witness received vote
397- oldReceivedVoteCount = manager .getWitnessStore ().get (witnessA ).getVoteCount ();
384+ oldReceivedVoteCount = dbManager .getWitnessStore ().get (witnessA ).getVoteCount ();
398385 triggerContract (voteContract , SUCCESS , getEqualConsumer (oldReceivedVoteCount ),
399386 queryReceivedVoteCountMethod , witnessAStr );
400387
@@ -444,14 +431,14 @@ public void testVote() throws Exception {
444431 triggerContract (voteContract , SUCCESS , null , unfreezeMethod ,
445432 StringUtil .encode58Check (voteContract ), 0 );
446433
447- AccountCapsule contractCapsule = manager .getAccountStore ().get (voteContract );
434+ AccountCapsule contractCapsule = dbManager .getAccountStore ().get (voteContract );
448435 Assert .assertEquals (2 , contractCapsule .getVotesList ().size ());
449436
450437 // unfreeze energy, clear vote
451438 triggerContract (voteContract , SUCCESS , null , unfreezeMethod ,
452439 StringUtil .encode58Check (voteContract ), 1 );
453440
454- contractCapsule = manager .getAccountStore ().get (voteContract );
441+ contractCapsule = dbManager .getAccountStore ().get (voteContract );
455442 Assert .assertEquals (0 , contractCapsule .getVotesList ().size ());
456443
457444 checkRewardAndWithdraw (voteContract , false );
@@ -723,10 +710,10 @@ public void testRewardAlgorithmNo3() throws Exception {
723710 checkRewardAndWithdraw (voteContractB , false );
724711
725712 // beginCycle == currentCycle + 1 (special case if has no vote while withdrawing)
726- Assert .assertEquals (manager .getDynamicPropertiesStore ().getCurrentCycleNumber () + 1 ,
727- manager .getDelegationStore ().getBeginCycle (voteContractA ));
728- Assert .assertEquals (manager .getDynamicPropertiesStore ().getCurrentCycleNumber () + 1 ,
729- manager .getDelegationStore ().getBeginCycle (voteContractB ));
713+ Assert .assertEquals (dbManager .getDynamicPropertiesStore ().getCurrentCycleNumber () + 1 ,
714+ dbManager .getDelegationStore ().getBeginCycle (voteContractA ));
715+ Assert .assertEquals (dbManager .getDynamicPropertiesStore ().getCurrentCycleNumber () + 1 ,
716+ dbManager .getDelegationStore ().getBeginCycle (voteContractB ));
730717
731718 payRewardAndDoMaintenance (1 );
732719 }
@@ -763,10 +750,10 @@ public void testRewardAlgorithmNo3() throws Exception {
763750 checkRewardAndWithdraw (voteContractB , false );
764751
765752 // beginCycle == currentCycle + 1 (special case if has no vote while withdrawing)
766- Assert .assertEquals (manager .getDynamicPropertiesStore ().getCurrentCycleNumber () + 1 ,
767- manager .getDelegationStore ().getBeginCycle (voteContractA ));
768- Assert .assertEquals (manager .getDynamicPropertiesStore ().getCurrentCycleNumber () + 1 ,
769- manager .getDelegationStore ().getBeginCycle (voteContractB ));
753+ Assert .assertEquals (dbManager .getDynamicPropertiesStore ().getCurrentCycleNumber () + 1 ,
754+ dbManager .getDelegationStore ().getBeginCycle (voteContractA ));
755+ Assert .assertEquals (dbManager .getDynamicPropertiesStore ().getCurrentCycleNumber () + 1 ,
756+ dbManager .getDelegationStore ().getBeginCycle (voteContractB ));
770757
771758 payRewardAndDoMaintenance (1 );
772759 }
@@ -860,33 +847,33 @@ private void checkVote(byte[] contract,
860847
861848 private void checkRewardAndWithdraw (byte [] contract , boolean isZero ) throws Exception {
862849 long rewardBySystem = mortgageService .queryReward (contract );
863- long beginCycle = manager .getDelegationStore ().getBeginCycle (contract );
864- long currentCycle = manager .getDynamicPropertiesStore ().getCurrentCycleNumber ();
850+ long beginCycle = dbManager .getDelegationStore ().getBeginCycle (contract );
851+ long currentCycle = dbManager .getDynamicPropertiesStore ().getCurrentCycleNumber ();
865852 long passedCycle = max (0 , currentCycle - beginCycle ,
866- manager .getDynamicPropertiesStore ().disableJavaLangMath ());
853+ dbManager .getDynamicPropertiesStore ().disableJavaLangMath ());
867854 Assert .assertTrue (isZero ? rewardBySystem == 0 : rewardBySystem > 0 );
868855 triggerContract (contract , SUCCESS ,
869856 getConsumer (">=" , rewardBySystem )
870857 .andThen (getConsumer ("<=" , rewardBySystem + passedCycle )),
871858 queryRewardBalanceMethod );
872859
873- long oldBalance = manager .getAccountStore ().get (contract ).getBalance ();
860+ long oldBalance = dbManager .getAccountStore ().get (contract ).getBalance ();
874861 long rewardByContract = new DataWord (triggerContract (contract , SUCCESS ,
875862 getConsumer (">=" , rewardBySystem )
876863 .andThen (getConsumer ("<=" , rewardBySystem + passedCycle )),
877864 withdrawRewardMethod ).getRuntime ().getResult ().getHReturn ()).longValue ();
878- long newBalance = manager .getAccountStore ().get (contract ).getBalance ();
865+ long newBalance = dbManager .getAccountStore ().get (contract ).getBalance ();
879866 Assert .assertEquals (oldBalance + rewardByContract , newBalance );
880867 }
881868
882869 private void payRewardAndDoMaintenance (int cycle ) {
883870 while (cycle -- > 0 ) {
884- manager .getDelegationStore ().addReward (
885- manager .getDynamicPropertiesStore ().getCurrentCycleNumber (), witnessA , 1000_000_000 );
886- manager .getDelegationStore ().addReward (
887- manager .getDynamicPropertiesStore ().getCurrentCycleNumber (), witnessB , 1000_000_000 );
888- manager .getDelegationStore ().addReward (
889- manager .getDynamicPropertiesStore ().getCurrentCycleNumber (), witnessC , 1000_000_000 );
871+ dbManager .getDelegationStore ().addReward (
872+ dbManager .getDynamicPropertiesStore ().getCurrentCycleNumber (), witnessA , 1000_000_000 );
873+ dbManager .getDelegationStore ().addReward (
874+ dbManager .getDynamicPropertiesStore ().getCurrentCycleNumber (), witnessB , 1000_000_000 );
875+ dbManager .getDelegationStore ().addReward (
876+ dbManager .getDynamicPropertiesStore ().getCurrentCycleNumber (), witnessC , 1000_000_000 );
890877
891878 maintenanceManager .doMaintenance ();
892879 }
0 commit comments