1+ package org .tron .core .consensus ;
2+
3+ import static org .mockito .Mockito .mock ;
4+
5+ import java .lang .reflect .Field ;
6+ import org .junit .Assert ;
7+ import org .junit .Test ;
8+ import org .mockito .Mockito ;
9+ import org .tron .consensus .ConsensusDelegate ;
10+ import org .tron .consensus .dpos .DposService ;
11+ import org .tron .core .capsule .BlockCapsule ;
12+ import org .tron .core .store .DynamicPropertiesStore ;
13+ import org .tron .protos .Protocol ;
14+
15+ public class DposServiceTest {
16+ DposService service = new DposService ();
17+
18+ @ Test
19+ public void test () throws Exception {
20+ long headTime = 1724036757000L ;
21+
22+ ConsensusDelegate consensusDelegate = mock (ConsensusDelegate .class );
23+ Field field = service .getClass ().getDeclaredField ("consensusDelegate" );
24+ field .setAccessible (true );
25+ field .set (service , consensusDelegate );
26+
27+ DynamicPropertiesStore store = mock (DynamicPropertiesStore .class );
28+ Mockito .when (consensusDelegate .getDynamicPropertiesStore ()).thenReturn (store );
29+
30+ Mockito .when (consensusDelegate .getLatestBlockHeaderNumber ()).thenReturn (0L );
31+ boolean f = service .validBlock (null );
32+ Assert .assertTrue (f );
33+
34+ Protocol .BlockHeader .raw raw = Protocol .BlockHeader .raw .newBuilder ()
35+ .setTimestamp (headTime + 3001 ).build ();
36+ Protocol .BlockHeader header = Protocol .BlockHeader .newBuilder ().setRawData (raw ).build ();
37+ Protocol .Block block = Protocol .Block .newBuilder ().setBlockHeader (header ).build ();
38+
39+ Mockito .when (consensusDelegate .getLatestBlockHeaderNumber ()).thenReturn (100L );
40+ Mockito .when (store .allowConsensusLogicOptimization ()).thenReturn (true );
41+
42+ Mockito .when (consensusDelegate .getLatestBlockHeaderTimestamp ()).thenReturn (headTime + 3000 );
43+ f = service .validBlock (new BlockCapsule (block ));
44+ Assert .assertTrue (!f );
45+
46+ }
47+ }
0 commit comments