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(expected = UnsupportedOperationException.class)
      public void assertRouteFailure() {
          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 RouteFailureRuleFixture()));
          setSPIRoutingHook(sqlRouteEngine);
          try {
              sqlRouteEngine.route(logicSQL);
          } catch (final UnsupportedOperationException ex) {
              verify(routingHook).start("SELECT 1");
              verify(routingHook).finishFailure(ex);
              throw ex;
          }
      }
test_case.class_method_signature: SQLRouteEngineTest.assertRouteFailure()
test_case.full_signature: @Test(expected = UnsupportedOperationException.class) public void assertRouteFailure()
test_case.identifier: assertRouteFailure
test_case.invocations: emptyList singleton emptyMap mock emptyList singleton setSPIRoutingHook route start verify finishFailure verify
test_case.modifiers: @Test(expected = UnsupportedOperationException.class) public
test_case.parameters: ()
test_case.return: void
test_case.signature: void assertRouteFailure()
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)