5555import java .util .concurrent .ConcurrentHashMap ;
5656
5757import static org .mockito .ArgumentMatchers .anyString ;
58+ import static org .mockito .Mockito .doNothing ;
59+ import static org .mockito .Mockito .spy ;
5860import static org .mockito .Mockito .when ;
5961
6062@ RunWith (MockitoJUnitRunner .class )
@@ -113,13 +115,9 @@ public void init() {
113115 when (brokerController .getMessageStore ()).thenReturn (messageStore );
114116 when (brokerController .getTimerMessageStore ()).thenReturn (timerMessageStore );
115117 when (brokerController .getTimerCheckpoint ()).thenReturn (timerCheckpoint );
116- when (topicConfigManager .getDataVersion ()).thenReturn (new DataVersion ());
117- when (topicConfigManager .getTopicConfigTable ()).thenReturn (new ConcurrentHashMap <>());
118118 when (brokerController .getConsumerOffsetManager ()).thenReturn (consumerOffsetManager );
119119 when (consumerOffsetManager .getOffsetTable ()).thenReturn (new ConcurrentHashMap <>());
120120 when (consumerOffsetManager .getDataVersion ()).thenReturn (new DataVersion ());
121- when (subscriptionGroupManager .getDataVersion ()).thenReturn (new DataVersion ());
122- when (subscriptionGroupManager .getSubscriptionGroupTable ()).thenReturn (new ConcurrentHashMap <>());
123121 when (queryAssignmentProcessor .getMessageRequestModeManager ()).thenReturn (messageRequestModeManager );
124122 when (messageRequestModeManager .getMessageRequestModeMap ()).thenReturn (new ConcurrentHashMap <>());
125123 when (messageStoreConfig .isTimerWheelEnable ()).thenReturn (true );
@@ -136,17 +134,31 @@ public void init() {
136134 public void testSyncAll () throws RemotingConnectException , RemotingSendRequestException , RemotingTimeoutException ,
137135 MQBrokerException , InterruptedException , UnsupportedEncodingException , RemotingCommandException {
138136 TopicConfig newTopicConfig = new TopicConfig ("NewTopic" );
139- when (brokerOuterAPI .getAllTopicConfig (anyString ())).thenReturn (createTopicConfigWrapper (newTopicConfig ));
137+ TopicConfigAndMappingSerializeWrapper topicConfigWrapper = createTopicConfigWrapper (newTopicConfig );
138+ when (brokerOuterAPI .getAllTopicConfig (anyString ())).thenReturn (topicConfigWrapper );
140139 when (brokerOuterAPI .getAllConsumerOffset (anyString ())).thenReturn (createConsumerOffsetWrapper ());
141140 when (brokerOuterAPI .getAllDelayOffset (anyString ())).thenReturn ("" );
142- when (brokerOuterAPI .getAllSubscriptionGroupConfig (anyString ())).thenReturn (createSubscriptionGroupWrapper ());
141+ SubscriptionGroupWrapper subscriptionGroupWrapper = createSubscriptionGroupWrapper ();
142+ when (brokerOuterAPI .getAllSubscriptionGroupConfig (anyString ())).thenReturn (subscriptionGroupWrapper );
143143 when (brokerOuterAPI .getAllMessageRequestMode (anyString ())).thenReturn (createMessageRequestModeWrapper ());
144144 when (brokerOuterAPI .getTimerMetrics (anyString ())).thenReturn (createTimerMetricsWrapper ());
145+
146+ TopicConfigManager topicConfigManager = new TopicConfigManager ();
147+ TopicConfigManager spiedTopicConfigManager = spy (topicConfigManager );
148+ doNothing ().when (spiedTopicConfigManager ).persist ();
149+ SubscriptionGroupManager groupConfigManager = new SubscriptionGroupManager ();
150+ SubscriptionGroupManager spiedGroupConfigManager = spy (groupConfigManager );
151+ doNothing ().when (spiedGroupConfigManager ).persist ();
152+ when (brokerController .getTopicConfigManager ()).thenReturn (spiedTopicConfigManager );
153+ when (brokerController .getSubscriptionGroupManager ()).thenReturn (spiedGroupConfigManager );
154+
145155 slaveSynchronize .syncAll ();
146- Assert .assertEquals (1 , this .brokerController .getTopicConfigManager ().getDataVersion ().getStateVersion ());
147- Assert .assertEquals (1 , this .brokerController .getTopicQueueMappingManager ().getDataVersion ().getStateVersion ());
156+ long topicVer = topicConfigWrapper .getDataVersion ().getStateVersion ();
157+ long groupVer = subscriptionGroupWrapper .getDataVersion ().getStateVersion ();
158+ Assert .assertEquals (topicVer , this .brokerController .getTopicConfigManager ().getDataVersion ().getStateVersion ());
159+ Assert .assertEquals (topicVer , this .brokerController .getTopicQueueMappingManager ().getDataVersion ().getStateVersion ());
148160 Assert .assertEquals (1 , consumerOffsetManager .getDataVersion ().getStateVersion ());
149- Assert .assertEquals (1 , subscriptionGroupManager .getDataVersion ().getStateVersion ());
161+ Assert .assertEquals (groupVer , this . brokerController . getSubscriptionGroupManager () .getDataVersion ().getStateVersion ());
150162 Assert .assertEquals (1 , timerMetrics .getDataVersion ().getStateVersion ());
151163 }
152164
@@ -167,7 +179,7 @@ private TopicConfigAndMappingSerializeWrapper createTopicConfigWrapper(TopicConf
167179 wrapper .setTopicConfigTable (new ConcurrentHashMap <>());
168180 wrapper .getTopicConfigTable ().put (topicConfig .getTopicName (), topicConfig );
169181 DataVersion dataVersion = new DataVersion ();
170- dataVersion .setStateVersion (1L );
182+ dataVersion .setStateVersion (5L );
171183 wrapper .setDataVersion (dataVersion );
172184 wrapper .setMappingDataVersion (dataVersion );
173185 return wrapper ;
@@ -186,7 +198,7 @@ private SubscriptionGroupWrapper createSubscriptionGroupWrapper() {
186198 SubscriptionGroupWrapper wrapper = new SubscriptionGroupWrapper ();
187199 wrapper .setSubscriptionGroupTable (new ConcurrentHashMap <>());
188200 DataVersion dataVersion = new DataVersion ();
189- dataVersion .setStateVersion (1L );
201+ dataVersion .setStateVersion (5L );
190202 wrapper .setDataVersion (dataVersion );
191203 return wrapper ;
192204 }
0 commit comments