test_class.declarator: metaData
test_class.modifier: @Mock(answer = Answers.RETURNS_DEEP_STUBS)
      private
test_class.original_string: @Mock(answer = Answers.RETURNS_DEEP_STUBS)
      private ShardingSphereMetaData metaData;
test_class.type: ShardingSphereMetaData
test_class.var_name: metaData
test_class.declarator: props
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private ConfigurationProperties props;
test_class.type: ConfigurationProperties
test_class.var_name: props
test_class.declarator: routingHook
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private SPIRoutingHook routingHook;
test_class.type: SPIRoutingHook
test_class.var_name: routingHook
test_class.file: shardingsphere-infra/shardingsphere-infra-route/src/test/java/org/apache/shardingsphere/infra/route/engine/SQLRouteEngineTest.java
test_class.identifier: SQLRouteEngineTest
test_case.body: @Test
      public void assertRouteSuccess() {
          ShardingSphereSchema schema = new ShardingSphereSchema("logic_schema", Collections.emptyList(), Collections.singleton(new RouteRuleFixture()), Collections.emptyMap(), metaData);
          LogicSQL logicSQL = new LogicSQL(schema, mock(SQLStatementContext.class), "SELECT 1", Collections.emptyList());
          SQLRouteEngine sqlRouteEngine = new SQLRouteEngine(props, Collections.singleton(new RouteRuleFixture()));
          setSPIRoutingHook(sqlRouteEngine);
          RouteContext actual = sqlRouteEngine.route(logicSQL);
          assertThat(actual.getRouteUnits().size(), is(1));
          RouteUnit routeUnit = actual.getRouteUnits().iterator().next();
          assertThat(routeUnit.getDataSourceMapper().getLogicName(), is("ds"));
          assertThat(routeUnit.getDataSourceMapper().getActualName(), is("ds_0"));
          assertTrue(routeUnit.getTableMappers().isEmpty());
          verify(routingHook).start("SELECT 1");
          verify(routingHook).finishSuccess(actual, metaData.getRuleSchemaMetaData().getConfiguredSchemaMetaData());
      }
test_case.class_method_signature: SQLRouteEngineTest.assertRouteSuccess()
test_case.full_signature: @Test public void assertRouteSuccess()
test_case.identifier: assertRouteSuccess
test_case.invocations: emptyList singleton emptyMap mock emptyList singleton setSPIRoutingHook route assertThat size getRouteUnits is next iterator getRouteUnits assertThat getLogicName getDataSourceMapper is assertThat getActualName getDataSourceMapper is assertTrue isEmpty getTableMappers start verify finishSuccess verify getConfiguredSchemaMetaData getRuleSchemaMetaData
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void assertRouteSuccess()
focal_class.declarator: props
focal_class.modifier: private final
focal_class.original_string: private final ConfigurationProperties props;
focal_class.type: ConfigurationProperties
focal_class.var_name: props
focal_class.declarator: routers
focal_class.modifier: @SuppressWarnings("rawtypes")
      private final
focal_class.original_string: @SuppressWarnings("rawtypes")
      private final Map<ShardingSphereRule, SQLRouter> routers;
focal_class.type: Map<ShardingSphereRule, SQLRouter>
focal_class.var_name: routers
focal_class.declarator: routingHook
focal_class.modifier: private final
focal_class.original_string: private final SPIRoutingHook routingHook;
focal_class.type: SPIRoutingHook
focal_class.var_name: routingHook
focal_class.file: shardingsphere-infra/shardingsphere-infra-route/src/main/java/org/apache/shardingsphere/infra/route/engine/SQLRouteEngine.java
focal_class.identifier: SQLRouteEngine
focal_class.class_method_signature: SQLRouteEngine.SQLRouteEngine(final ConfigurationProperties props, final Collection<ShardingSphereRule> rules)
focal_class.full_signature: public  SQLRouteEngine(final ConfigurationProperties props, final Collection<ShardingSphereRule> rules)
focal_class.identifier: SQLRouteEngine
focal_class.modifiers: public
focal_class.parameters: (final ConfigurationProperties props, final Collection<ShardingSphereRule> rules)
focal_class.signature:  SQLRouteEngine(final ConfigurationProperties props, final Collection<ShardingSphereRule> rules)
focal_class.class_method_signature: SQLRouteEngine.route(final LogicSQL logicSQL)
focal_class.full_signature: public RouteContext route(final LogicSQL logicSQL)
focal_class.identifier: route
focal_class.modifiers: public
focal_class.parameters: (final LogicSQL logicSQL)
focal_class.return: RouteContext
focal_class.signature: RouteContext route(final LogicSQL logicSQL)
focal_class.class_method_signature: SQLRouteEngine.doRoute(final LogicSQL logicSQL)
focal_class.full_signature: @SuppressWarnings({"unchecked", "rawtypes"}) private RouteContext doRoute(final LogicSQL logicSQL)
focal_class.identifier: doRoute
focal_class.modifiers: @SuppressWarnings({"unchecked", "rawtypes"}) private
focal_class.parameters: (final LogicSQL logicSQL)
focal_class.return: RouteContext
focal_class.signature: RouteContext doRoute(final LogicSQL logicSQL)
focal_method.body: public RouteContext route(final LogicSQL logicSQL) {
          routingHook.start(logicSQL.getSql());
          try {
              RouteContext result = doRoute(logicSQL);
              routingHook.finishSuccess(result, logicSQL.getSchema().getMetaData().getRuleSchemaMetaData().getConfiguredSchemaMetaData());
              return result;
              // CHECKSTYLE:OFF
          } catch (final Exception ex) {
              // CHECKSTYLE:ON
              routingHook.finishFailure(ex);
              throw ex;
          }
      }
focal_method.class_method_signature: SQLRouteEngine.route(final LogicSQL logicSQL)
focal_method.full_signature: public RouteContext route(final LogicSQL logicSQL)
focal_method.identifier: route
focal_method.invocations: start getSql doRoute finishSuccess getConfiguredSchemaMetaData getRuleSchemaMetaData getMetaData getSchema finishFailure
focal_method.modifiers: public
focal_method.parameters: (final LogicSQL logicSQL)
focal_method.return: RouteContext
focal_method.signature: RouteContext route(final LogicSQL logicSQL)