You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by pa...@apache.org on 2020/10/10 03:16:14 UTC

[shardingsphere] branch master updated: Add test case for ShardingConditionEngineFactory (#7714)

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

panjuan 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 a61f4dc  Add test case for ShardingConditionEngineFactory (#7714)
a61f4dc is described below

commit a61f4dcb33fa94b08af8d829a498712378c96f24
Author: Serendipity <ja...@163.com>
AuthorDate: Sat Oct 10 11:16:04 2020 +0800

    Add test case for ShardingConditionEngineFactory (#7714)
    
    * Add test case for ShardingConditionEngineFactory
    
    * Add test case for ShardingConditionEngineFactory
    
    * adjust method name
    
    * adjust code style
---
 .../engine/ShardingConditionEngineFactoryTest.java | 74 ++++++++++++++++++++++
 1 file changed, 74 insertions(+)

diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/ShardingConditionEngineFactoryTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/ShardingConditionEngineFactoryTest.java
new file mode 100644
index 0000000..d89f790
--- /dev/null
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/ShardingConditionEngineFactoryTest.java
@@ -0,0 +1,74 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shardingsphere.sharding.route.engine.condition.engine;
+
+import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
+import org.apache.shardingsphere.infra.metadata.schema.RuleSchemaMetaData;
+import org.apache.shardingsphere.infra.schema.ShardingSphereSchema;
+import org.apache.shardingsphere.infra.sql.LogicSQL;
+import org.apache.shardingsphere.sharding.route.engine.condition.engine.impl.InsertClauseShardingConditionEngine;
+import org.apache.shardingsphere.sharding.route.engine.condition.engine.impl.WhereClauseShardingConditionEngine;
+import org.apache.shardingsphere.sharding.rule.ShardingRule;
+import org.apache.shardingsphere.sql.parser.binder.metadata.schema.SchemaMetaData;
+import org.apache.shardingsphere.sql.parser.binder.statement.SQLStatementContext;
+import org.apache.shardingsphere.sql.parser.binder.statement.dml.InsertStatementContext;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnitRunner;
+
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+@RunWith(MockitoJUnitRunner.class)
+public final class ShardingConditionEngineFactoryTest {
+    
+    @Mock
+    private LogicSQL logicSQL;
+    
+    @Mock
+    private ShardingRule shardingRule;
+    
+    @Before
+    public void setUp() {
+        ShardingSphereSchema shardingSphereSchema = mock(ShardingSphereSchema.class);
+        when(logicSQL.getSchema()).thenReturn(shardingSphereSchema);
+        ShardingSphereMetaData shardingSphereMetaData = mock(ShardingSphereMetaData.class);
+        when(shardingSphereSchema.getMetaData()).thenReturn(shardingSphereMetaData);
+        RuleSchemaMetaData ruleSchemaMetaData = mock(RuleSchemaMetaData.class);
+        when(shardingSphereMetaData.getRuleSchemaMetaData()).thenReturn(ruleSchemaMetaData);
+        SchemaMetaData schemaMetaData = mock(SchemaMetaData.class);
+        when(ruleSchemaMetaData.getConfiguredSchemaMetaData()).thenReturn(schemaMetaData);
+    }
+    
+    @Test
+    public void assertCreateInsertClauseShardingConditionEngine() {
+        SQLStatementContext insertStatementContext = mock(InsertStatementContext.class);
+        when(logicSQL.getSqlStatementContext()).thenReturn(insertStatementContext);
+        ShardingConditionEngine<?> actualInsertClauseShardingConditionEngine = ShardingConditionEngineFactory.createShardingConditionEngine(logicSQL, shardingRule);
+        assertTrue(actualInsertClauseShardingConditionEngine instanceof InsertClauseShardingConditionEngine);
+    }
+    
+    @Test
+    public void assertCreateWhereClauseShardingConditionEngine() {
+        ShardingConditionEngine<?> actualWhereClauseShardingConditionEngine = ShardingConditionEngineFactory.createShardingConditionEngine(logicSQL, shardingRule);
+        assertTrue(actualWhereClauseShardingConditionEngine instanceof WhereClauseShardingConditionEngine);
+    }
+}