This is an automated email from the ASF dual-hosted git repository.

duanzhengqiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new 9c83948cdb4 Refactor view metadata load and persist logic (#21037)
9c83948cdb4 is described below

commit 9c83948cdb49af429851eb2eca9ce10da9dfb7a7
Author: zhaojinchao <[email protected]>
AuthorDate: Mon Sep 19 08:13:14 2022 +0800

    Refactor view metadata load and persist logic (#21037)
    
    * Refactor view metadata load and persist logic
    
    * Remove unless line
    
    * Rename to result
---
 .../metadata/database/schema/SchemaManager.java    | 26 ++--------------------
 .../database/schema/SchemaManagerTest.java         | 15 -------------
 .../mode/manager/ContextManager.java               | 20 ++++++++++++-----
 .../service/DatabaseMetaDataPersistService.java    |  3 ---
 .../service/schema/ViewMetaDataPersistService.java |  4 ----
 .../schema/ViewMetaDataPersistServiceTest.java     |  9 --------
 .../SchemaMetaDataRegistrySubscriber.java          |  7 +++---
 .../SchemaMetaDataRegistrySubscriberTest.java      | 13 +++++++----
 8 files changed, 29 insertions(+), 68 deletions(-)

diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/SchemaManager.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/SchemaManager.java
index cee27b1bda2..8ec3f775948 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/SchemaManager.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/SchemaManager.java
@@ -19,8 +19,8 @@ package 
org.apache.shardingsphere.infra.metadata.database.schema;
 
 import 
org.apache.shardingsphere.infra.metadata.database.schema.decorator.model.ShardingSphereSchema;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.decorator.model.ShardingSphereTable;
-import 
org.apache.shardingsphere.infra.metadata.database.schema.decorator.model.ShardingSphereView;
 
+import java.util.LinkedHashMap;
 import java.util.Map;
 import java.util.Map.Entry;
 import java.util.stream.Collectors;
@@ -38,7 +38,7 @@ public final class SchemaManager {
      * @return To be deleted schema meta data
      */
     public static ShardingSphereSchema getToBeDeletedSchemaMetaData(final 
ShardingSphereSchema loadedSchema, final ShardingSphereSchema currentSchema) {
-        return new 
ShardingSphereSchema(getToBeDeletedTables(loadedSchema.getTables(), 
currentSchema.getTables()), getToBeDeletedViews(loadedSchema.getViews(), 
currentSchema.getViews()));
+        return new 
ShardingSphereSchema(getToBeDeletedTables(loadedSchema.getTables(), 
currentSchema.getTables()), new LinkedHashMap<>());
     }
     
     /**
@@ -62,26 +62,4 @@ public final class SchemaManager {
     public static Map<String, ShardingSphereTable> getToBeDeletedTables(final 
Map<String, ShardingSphereTable> loadedTables, final Map<String, 
ShardingSphereTable> currentTables) {
         return currentTables.entrySet().stream().filter(entry -> 
!loadedTables.containsKey(entry.getKey())).collect(Collectors.toMap(Entry::getKey,
 Entry::getValue));
     }
-    
-    /**
-     * Get to be added view meta data.
-     *
-     * @param loadedViews loaded views
-     * @param currentViews current views
-     * @return To be added view meta data
-     */
-    public static Map<String, ShardingSphereView> getToBeAddedViews(final 
Map<String, ShardingSphereView> loadedViews, final Map<String, 
ShardingSphereView> currentViews) {
-        return loadedViews.entrySet().stream().filter(entry -> 
!entry.getValue().equals(currentViews.get(entry.getKey()))).collect(Collectors.toMap(Entry::getKey,
 Entry::getValue));
-    }
-    
-    /**
-     * Get to be deleted view meta data.
-     *
-     * @param loadedViews loaded views
-     * @param currentViews current views
-     * @return To be deleted view meta data
-     */
-    public static Map<String, ShardingSphereView> getToBeDeletedViews(final 
Map<String, ShardingSphereView> loadedViews, final Map<String, 
ShardingSphereView> currentViews) {
-        return currentViews.entrySet().stream().filter(entry -> 
!loadedViews.containsKey(entry.getKey())).collect(Collectors.toMap(Entry::getKey,
 Entry::getValue));
-    }
 }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/SchemaManagerTest.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/SchemaManagerTest.java
index 70a595b184b..7655e002b91 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/SchemaManagerTest.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/SchemaManagerTest.java
@@ -38,7 +38,6 @@ public final class SchemaManagerTest {
                 new ShardingSphereSchema(Collections.singletonMap("foo_table", 
new ShardingSphereTable()), Collections.singletonMap("foo_view", new 
ShardingSphereView("", "")));
         ShardingSphereSchema actual = 
SchemaManager.getToBeDeletedSchemaMetaData(loadedSchemas, currentSchemas);
         assertThat(actual.getTables().size(), is(1));
-        assertThat(actual.getViews().size(), is(1));
     }
     
     @Test
@@ -54,18 +53,4 @@ public final class SchemaManagerTest {
         assertThat(actual.size(), is(1));
         assertTrue(actual.containsKey("foo_table"));
     }
-    
-    @Test
-    public void assertGetToBeAddedViews() {
-        Map<String, ShardingSphereView> actual = 
SchemaManager.getToBeAddedViews(Collections.singletonMap("foo_view", new 
ShardingSphereView("", "")), Collections.emptyMap());
-        assertThat(actual.size(), is(1));
-        assertTrue(actual.containsKey("foo_view"));
-    }
-    
-    @Test
-    public void assertGetToBeDeletedViews() {
-        Map<String, ShardingSphereView> actual = 
SchemaManager.getToBeDeletedViews(Collections.emptyMap(), 
Collections.singletonMap("foo_view", new ShardingSphereView("", "")));
-        assertThat(actual.size(), is(1));
-        assertTrue(actual.containsKey("foo_view"));
-    }
 }
diff --git 
a/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
 
b/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
index 9421bff5895..b8512f1392b 100644
--- 
a/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
+++ 
b/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
@@ -175,8 +175,7 @@ public final class ContextManager implements AutoCloseable {
      * @param toBeDeletedTableName to be deleted table name
      * @param toBeDeletedViewName to be deleted view name
      */
-    public synchronized void alterSchema(final String databaseName, final 
String schemaName, final String toBeDeletedTableName,
-                                         final String toBeDeletedViewName) {
+    public synchronized void alterSchema(final String databaseName, final 
String schemaName, final String toBeDeletedTableName, final String 
toBeDeletedViewName) {
         if (!metaDataContexts.getMetaData().containsDatabase(databaseName) || 
!metaDataContexts.getMetaData().getDatabase(databaseName).containsSchema(schemaName))
 {
             return;
         }
@@ -192,8 +191,7 @@ public final class ContextManager implements AutoCloseable {
      * @param toBeChangedTable to be changed table
      * @param toBeChangedView to be changed view
      */
-    public synchronized void alterSchema(final String databaseName, final 
String schemaName, final ShardingSphereTable toBeChangedTable,
-                                         final ShardingSphereView 
toBeChangedView) {
+    public synchronized void alterSchema(final String databaseName, final 
String schemaName, final ShardingSphereTable toBeChangedTable, final 
ShardingSphereView toBeChangedView) {
         if (!metaDataContexts.getMetaData().containsDatabase(databaseName) || 
!metaDataContexts.getMetaData().getDatabase(databaseName).containsSchema(schemaName))
 {
             return;
         }
@@ -345,7 +343,7 @@ public final class ContextManager implements AutoCloseable {
             Collection<ResourceHeldRule> staleResourceHeldRules = 
getStaleResourceHeldRules(databaseName);
             
staleResourceHeldRules.forEach(ResourceHeldRule::closeStaleResource);
             metaDataContexts = createMetaDataContexts(databaseName, null, 
ruleConfigs);
-            
metaDataContexts.getMetaData().getDatabases().putAll(newShardingSphereDatabase(metaDataContexts.getMetaData().getDatabase(databaseName)));
+            compareAndPersistMetaData(metaDataContexts);
         } catch (final SQLException ex) {
             log.error("Alter database: {} rule configurations failed", 
databaseName, ex);
         }
@@ -422,6 +420,7 @@ public final class ContextManager implements AutoCloseable {
         ShardingSphereDatabase changedDatabase = 
ShardingSphereDatabasesFactory.create(metaDataContexts.getMetaData().getActualDatabaseName(databaseName),
                 toBeCreatedDatabaseConfig, 
metaDataContexts.getMetaData().getProps(), instanceContext);
         Map<String, ShardingSphereDatabase> result = new 
LinkedHashMap<>(metaDataContexts.getMetaData().getDatabases());
+        
changedDatabase.getSchemas().putAll(newShardingSphereSchemas(changedDatabase));
         result.put(databaseName.toLowerCase(), changedDatabase);
         return result;
     }
@@ -430,6 +429,13 @@ public final class ContextManager implements AutoCloseable 
{
         return new MetaDataContexts(metaDataContexts.getPersistService(), 
metaData);
     }
     
+    private Map<String, ShardingSphereSchema> newShardingSphereSchemas(final 
ShardingSphereDatabase database) {
+        Map<String, ShardingSphereSchema> result = new 
LinkedHashMap<>(database.getSchemas().size(), 1);
+        database.getSchemas().forEach((key, value) -> result.put(key, new 
ShardingSphereSchema(value.getTables(),
+                
metaDataContexts.getPersistService().getDatabaseMetaDataService().getViewMetaDataPersistService().load(database.getName(),
 key))));
+        return result;
+    }
+    
     private Map<String, ShardingSphereDatabase> 
newShardingSphereDatabase(final ShardingSphereDatabase originalDatabase) {
         Map<String, ShardingSphereDatabase> result = new LinkedHashMap<>(1, 1);
         result.put(originalDatabase.getName().toLowerCase(), new 
ShardingSphereDatabase(originalDatabase.getName(),
@@ -534,7 +540,9 @@ public final class ContextManager implements AutoCloseable {
         GenericSchemaBuilderMaterials materials = new 
GenericSchemaBuilderMaterials(database.getProtocolType(), 
database.getResource().getDatabaseType(),
                 Collections.singletonMap(dataSourceName, 
database.getResource().getDataSources().get(dataSourceName)),
                 database.getRuleMetaData().getRules(), 
metaDataContexts.getMetaData().getProps(), schemaName);
-        return GenericSchemaBuilder.build(materials).get(schemaName);
+        ShardingSphereSchema result = 
GenericSchemaBuilder.build(materials).get(schemaName);
+        
result.getViews().putAll(metaDataContexts.getPersistService().getDatabaseMetaDataService().getViewMetaDataPersistService().load(database.getName(),
 schemaName));
+        return result;
     }
     
     /**
diff --git 
a/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/DatabaseMetaDataPersistService.java
 
b/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/DatabaseMetaDataPersistService.java
index a614fd66c48..f7328f8b6fd 100644
--- 
a/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/DatabaseMetaDataPersistService.java
+++ 
b/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/DatabaseMetaDataPersistService.java
@@ -105,7 +105,6 @@ public final class DatabaseMetaDataPersistService {
             addSchema(databaseName, schemaName);
         }
         tableMetaDataPersistService.compareAndPersist(databaseName, 
schemaName, schema.getTables());
-        viewMetaDataPersistService.compareAndPersist(databaseName, schemaName, 
schema.getViews());
     }
     
     /**
@@ -120,7 +119,6 @@ public final class DatabaseMetaDataPersistService {
             addSchema(databaseName, schemaName);
         }
         tableMetaDataPersistService.persist(databaseName, schemaName, 
schema.getTables());
-        viewMetaDataPersistService.persist(databaseName, schemaName, 
schema.getViews());
     }
     
     /**
@@ -132,7 +130,6 @@ public final class DatabaseMetaDataPersistService {
      */
     public void delete(final String databaseName, final String schemaName, 
final ShardingSphereSchema schema) {
         schema.getTables().forEach((key, value) -> 
tableMetaDataPersistService.delete(databaseName, schemaName, key));
-        schema.getViews().forEach((key, value) -> 
viewMetaDataPersistService.delete(databaseName, schemaName, key));
     }
     
     /**
diff --git 
a/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/schema/ViewMetaDataPersistService.java
 
b/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/schema/ViewMetaDataPersistService.java
index 513a488d712..488a2673c20 100644
--- 
a/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/schema/ViewMetaDataPersistService.java
+++ 
b/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/schema/ViewMetaDataPersistService.java
@@ -19,7 +19,6 @@ package 
org.apache.shardingsphere.mode.metadata.persist.service.schema;
 
 import lombok.RequiredArgsConstructor;
 import org.apache.commons.lang.StringUtils;
-import org.apache.shardingsphere.infra.metadata.database.schema.SchemaManager;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.decorator.model.ShardingSphereView;
 import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
 import org.apache.shardingsphere.infra.yaml.schema.pojo.YamlShardingSphereView;
@@ -42,9 +41,6 @@ public final class ViewMetaDataPersistService implements 
SchemaMetaDataPersistSe
     
     @Override
     public void compareAndPersist(final String databaseName, final String 
schemaName, final Map<String, ShardingSphereView> loadedViews) {
-        Map<String, ShardingSphereView> currentViews = load(databaseName, 
schemaName);
-        persist(databaseName, schemaName, 
SchemaManager.getToBeAddedViews(loadedViews, currentViews));
-        SchemaManager.getToBeDeletedViews(loadedViews, 
currentViews).forEach((key, value) -> delete(databaseName, schemaName, key));
     }
     
     @Override
diff --git 
a/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/config/schema/ViewMetaDataPersistServiceTest.java
 
b/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/config/schema/ViewMetaDataPersistServiceTest.java
index 77b1672d808..dc349016fea 100644
--- 
a/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/config/schema/ViewMetaDataPersistServiceTest.java
+++ 
b/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/config/schema/ViewMetaDataPersistServiceTest.java
@@ -45,15 +45,6 @@ public final class ViewMetaDataPersistServiceTest {
     @Mock
     private PersistRepository repository;
     
-    @Test
-    public void assertCompareAndPersist() {
-        ViewMetaDataPersistService viewMetaDataPersistService = new 
ViewMetaDataPersistService(repository);
-        
when(repository.getChildrenKeys("/metadata/foo_db/schemas/foo_schema/views")).thenReturn(Collections.singletonList("foo_view"));
-        
when(repository.get("/metadata/foo_db/schemas/foo_schema/views/foo_view")).thenReturn(readYAML());
-        viewMetaDataPersistService.compareAndPersist("foo_db", "foo_schema", 
Collections.emptyMap());
-        
verify(repository).delete("/metadata/foo_db/schemas/foo_schema/views/foo_view");
-    }
-    
     @Test
     public void assertPersist() {
         ShardingSphereView view = new ShardingSphereView("foo_view", "select 
`db`.`db`.`id` AS `id`,`db`.`db`.`order_id` AS `order_id` from `db`.`db`");
diff --git 
a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/metadata/subscriber/SchemaMetaDataRegistrySubscriber.java
 
b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/metadata/subscriber/SchemaMetaDataRegistrySu
 [...]
index 0538d000fe8..15368d06485 100644
--- 
a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/metadata/subscriber/SchemaMetaDataRegistrySubscriber.java
+++ 
b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/metadata/subscriber/SchemaMetaDataRegistrySubscriber.java
@@ -18,7 +18,6 @@
 package 
org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.metadata.subscriber;
 
 import com.google.common.eventbus.Subscribe;
-import 
org.apache.shardingsphere.infra.metadata.database.schema.decorator.model.ShardingSphereSchema;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.decorator.model.ShardingSphereTable;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.decorator.model.ShardingSphereView;
 import org.apache.shardingsphere.infra.util.eventbus.EventBusContext;
@@ -57,7 +56,8 @@ public final class SchemaMetaDataRegistrySubscriber {
         String schemaName = event.getSchemaName();
         Map<String, ShardingSphereTable> tables = 
event.getAlteredTables().stream().collect(Collectors.toMap(ShardingSphereTable::getName,
 table -> table));
         Map<String, ShardingSphereView> views = 
event.getAlteredViews().stream().collect(Collectors.toMap(ShardingSphereView::getName,
 view -> view));
-        persistService.persist(databaseName, schemaName, new 
ShardingSphereSchema(tables, views));
+        persistService.getTableMetaDataPersistService().persist(databaseName, 
schemaName, tables);
+        persistService.getViewMetaDataPersistService().persist(databaseName, 
schemaName, views);
         event.getDroppedTables().forEach(each -> 
persistService.getTableMetaDataPersistService().delete(databaseName, 
schemaName, each));
         event.getDroppedViews().forEach(each -> 
persistService.getViewMetaDataPersistService().delete(databaseName, schemaName, 
each));
     }
@@ -79,7 +79,8 @@ public final class SchemaMetaDataRegistrySubscriber {
      */
     @Subscribe
     public void alterSchema(final AlterSchemaEvent event) {
-        persistService.compareAndPersist(event.getDatabaseName(), 
event.getRenameSchemaName(), event.getSchema());
+        persistService.persist(event.getDatabaseName(), 
event.getRenameSchemaName(), event.getSchema());
+        
persistService.getViewMetaDataPersistService().persist(event.getDatabaseName(), 
event.getRenameSchemaName(), event.getSchema().getViews());
         persistService.dropSchema(event.getDatabaseName(), 
event.getSchemaName());
     }
     
diff --git 
a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/metadata/subscriber/SchemaMetaDataRegistrySubscriberTest.java
 
b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/metadata/subscriber/SchemaMetaDataRegist
 [...]
index b4b529a971d..364221be5de 100644
--- 
a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/metadata/subscriber/SchemaMetaDataRegistrySubscriberTest.java
+++ 
b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/metadata/subscriber/SchemaMetaDataRegistrySubscriberTest.java
@@ -26,6 +26,7 @@ import 
org.apache.shardingsphere.infra.metadata.database.schema.event.DropSchema
 import 
org.apache.shardingsphere.infra.metadata.database.schema.event.SchemaAlteredEvent;
 import 
org.apache.shardingsphere.mode.metadata.persist.service.DatabaseMetaDataPersistService;
 import 
org.apache.shardingsphere.mode.metadata.persist.service.schema.TableMetaDataPersistService;
+import 
org.apache.shardingsphere.mode.metadata.persist.service.schema.ViewMetaDataPersistService;
 import 
org.apache.shardingsphere.mode.repository.cluster.ClusterPersistRepository;
 import org.junit.Before;
 import org.junit.Test;
@@ -60,13 +61,15 @@ public final class SchemaMetaDataRegistrySubscriberTest {
     
     @Test
     public void assertUpdateWithMetaDataAlteredEvent() {
+        
when(persistService.getTableMetaDataPersistService()).thenReturn(mock(TableMetaDataPersistService.class));
+        
when(persistService.getViewMetaDataPersistService()).thenReturn(mock(ViewMetaDataPersistService.class));
         SchemaAlteredEvent event = new SchemaAlteredEvent("foo_db", 
"foo_schema");
         ShardingSphereTable table = new ShardingSphereTable();
         event.getAlteredTables().add(table);
         event.getDroppedTables().add("foo_table");
-        
when(persistService.getTableMetaDataPersistService()).thenReturn(mock(TableMetaDataPersistService.class));
         schemaMetaDataRegistrySubscriber.update(event);
-        verify(persistService).persist(anyString(), anyString(), any());
+        
verify(persistService.getTableMetaDataPersistService()).persist(anyString(), 
anyString(), any());
+        
verify(persistService.getViewMetaDataPersistService()).persist(anyString(), 
anyString(), any());
         
verify(persistService.getTableMetaDataPersistService()).delete("foo_db", 
"foo_schema", "foo_table");
     }
     
@@ -86,19 +89,21 @@ public final class SchemaMetaDataRegistrySubscriberTest {
     
     @Test
     public void assertAlterSchemaEventWhenContainsTable() {
+        
when(persistService.getViewMetaDataPersistService()).thenReturn(mock(ViewMetaDataPersistService.class));
         ShardingSphereSchema schema = new 
ShardingSphereSchema(Collections.singletonMap("t_order", new 
ShardingSphereTable()), Collections.emptyMap());
         AlterSchemaEvent event = new AlterSchemaEvent("foo_db", "foo_schema", 
"new_foo_schema", schema);
         schemaMetaDataRegistrySubscriber.alterSchema(event);
-        verify(persistService).compareAndPersist("foo_db", "new_foo_schema", 
schema);
+        verify(persistService).persist("foo_db", "new_foo_schema", schema);
         verify(persistService).dropSchema("foo_db", "foo_schema");
     }
     
     @Test
     public void assertAlterSchemaEventWhenNotContainsTable() {
+        
when(persistService.getViewMetaDataPersistService()).thenReturn(mock(ViewMetaDataPersistService.class));
         ShardingSphereSchema schema = new ShardingSphereSchema();
         AlterSchemaEvent event = new AlterSchemaEvent("foo_db", "foo_schema", 
"new_foo_schema", schema);
         schemaMetaDataRegistrySubscriber.alterSchema(event);
-        verify(persistService).compareAndPersist("foo_db", "new_foo_schema", 
schema);
+        verify(persistService).persist("foo_db", "new_foo_schema", schema);
         verify(persistService).dropSchema("foo_db", "foo_schema");
     }
 }

Reply via email to