29
29
import org .apache .shardingsphere .infra .metadata .database .schema .model .ShardingSphereTable ;
30
30
import org .apache .shardingsphere .infra .rule .ShardingSphereRule ;
31
31
import org .apache .shardingsphere .infra .spi .type .typed .TypedSPILoader ;
32
- import org .apache .shardingsphere .mode .metadata .changed .RuleItemChangedNodePathBuilder ;
33
32
import org .apache .shardingsphere .mode .metadata .manager .MetaDataContextManager ;
34
33
import org .apache .shardingsphere .mode .metadata .persist .MetaDataPersistFacade ;
35
34
import org .apache .shardingsphere .mode .metadata .persist .metadata .DatabaseMetaDataPersistFacade ;
48
47
49
48
import java .sql .SQLException ;
50
49
import java .util .Collections ;
51
- import java .util .Optional ;
52
50
import java .util .Properties ;
53
51
52
+ import static org .apache .shardingsphere .test .matcher .ShardingSphereArgumentVerifyMatchers .deepEq ;
54
53
import static org .mockito .ArgumentMatchers .any ;
55
54
import static org .mockito .ArgumentMatchers .anyCollection ;
56
55
import static org .mockito .ArgumentMatchers .eq ;
@@ -173,16 +172,11 @@ void assertAlterRuleConfiguration() throws SQLException {
173
172
ShardingSphereMetaData metaData = new ShardingSphereMetaData (Collections .singleton (database ), mock (), mock (), new ConfigurationProperties (new Properties ()));
174
173
when (metaDataContextManager .getMetaDataContexts ().getMetaData ()).thenReturn (metaData );
175
174
RuleConfiguration ruleConfig = mock (RuleConfiguration .class , RETURNS_DEEP_STUBS );
176
- MetaDataVersion metaDataVersion = mock (MetaDataVersion .class );
177
- DatabaseRuleNodePath databaseRuleNodePath = new DatabaseRuleNodePath ("foo_db" , "fixture" , new DatabaseRuleItem ("foo_type" ));
178
- when (metaDataVersion .getNodePath ()).thenReturn (databaseRuleNodePath );
179
- when (metaDataPersistFacade .getDatabaseRuleService ().persist ("foo_db" , Collections .singleton (ruleConfig ))).thenReturn (Collections .singleton (metaDataVersion ));
180
- RuleItemChangedNodePathBuilder ruleItemChangedNodePathBuilder = mock (RuleItemChangedNodePathBuilder .class );
181
- when (ruleItemChangedNodePathBuilder .build (eq ("foo_db" ), any ())).thenReturn (Optional .of (databaseRuleNodePath ));
182
- setRuleItemChangedBuildExecutor (ruleItemChangedNodePathBuilder );
183
- when (metaDataPersistFacade .getRepository ().query ("/metadata/foo_db/rules/fixture/foo_type/active_version" )).thenReturn ("0" );
175
+ DatabaseRuleNodePath databaseRuleNodePath = new DatabaseRuleNodePath ("foo_db" , "fixture" , new DatabaseRuleItem ("unique" ));
176
+ when (metaDataPersistFacade .getDatabaseRuleService ().persist ("foo_db" , Collections .singleton (ruleConfig ))).thenReturn (Collections .singleton (new MetaDataVersion (databaseRuleNodePath )));
177
+ when (metaDataPersistFacade .getRepository ().query ("/metadata/foo_db/rules/fixture/unique/active_version" )).thenReturn ("0" );
184
178
metaDataManagerPersistService .alterRuleConfiguration (database , ruleConfig );
185
- verify (metaDataContextManager .getDatabaseRuleItemManager ()).alter (databaseRuleNodePath );
179
+ verify (metaDataContextManager .getDatabaseRuleItemManager ()).alter (deepEq ( databaseRuleNodePath ) );
186
180
}
187
181
188
182
@ Test
@@ -201,15 +195,10 @@ void assertRemoveRuleConfigurationItem() throws SQLException {
201
195
ShardingSphereMetaData metaData = new ShardingSphereMetaData (Collections .singleton (database ), mock (), mock (), new ConfigurationProperties (new Properties ()));
202
196
when (metaDataContextManager .getMetaDataContexts ().getMetaData ()).thenReturn (metaData );
203
197
RuleConfiguration ruleConfig = mock (RuleConfiguration .class , RETURNS_DEEP_STUBS );
204
- MetaDataVersion metaDataVersion = mock (MetaDataVersion .class );
205
- when (metaDataPersistFacade .getDatabaseRuleService ().delete ("foo_db" , Collections .singleton (ruleConfig ))).thenReturn (Collections .singleton (metaDataVersion ));
206
- RuleItemChangedNodePathBuilder ruleItemChangedNodePathBuilder = mock (RuleItemChangedNodePathBuilder .class );
207
- DatabaseRuleNodePath databaseRuleNodePath = mock (DatabaseRuleNodePath .class );
208
- when (metaDataVersion .getNodePath ()).thenReturn (databaseRuleNodePath );
209
- when (ruleItemChangedNodePathBuilder .build (eq ("foo_db" ), any ())).thenReturn (Optional .of (databaseRuleNodePath ));
210
- setRuleItemChangedBuildExecutor (ruleItemChangedNodePathBuilder );
198
+ DatabaseRuleNodePath databaseRuleNodePath = new DatabaseRuleNodePath ("foo_db" , "fixture" , new DatabaseRuleItem ("unique" ));
199
+ when (metaDataPersistFacade .getDatabaseRuleService ().delete ("foo_db" , Collections .singleton (ruleConfig ))).thenReturn (Collections .singleton (new MetaDataVersion (databaseRuleNodePath )));
211
200
metaDataManagerPersistService .removeRuleConfigurationItem (database , ruleConfig );
212
- verify (metaDataContextManager .getDatabaseRuleItemManager ()).drop (databaseRuleNodePath );
201
+ verify (metaDataContextManager .getDatabaseRuleItemManager ()).drop (deepEq ( databaseRuleNodePath ) );
213
202
}
214
203
215
204
@ Test
@@ -247,10 +236,4 @@ void assertDropTables() throws SQLException {
247
236
"foo_db" , mock (), mock (), mock (), Collections .emptyList ()), "foo_schema" , Collections .singleton ("foo_tbl" ));
248
237
verify (metaDataPersistFacade .getDatabaseMetaDataFacade ().getTable ()).drop ("foo_db" , "foo_schema" , "foo_tbl" );
249
238
}
250
-
251
- @ SneakyThrows (ReflectiveOperationException .class )
252
- private void setRuleItemChangedBuildExecutor (final RuleItemChangedNodePathBuilder ruleItemChangedNodePathBuilder ) {
253
- Plugins .getMemberAccessor ().set (
254
- StandaloneMetaDataManagerPersistService .class .getDeclaredField ("ruleItemChangedNodePathBuilder" ), metaDataManagerPersistService , ruleItemChangedNodePathBuilder );
255
- }
256
239
}
0 commit comments