test_class.declarator: spiRoutingHook = new SPIRoutingHook()
test_class.modifier: private final
test_class.original_string: private final SPIRoutingHook spiRoutingHook = new SPIRoutingHook();
test_class.type: SPIRoutingHook
test_class.var_name: spiRoutingHook
test_class.declarator: routeContext
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private RouteContext routeContext;
test_class.type: RouteContext
test_class.var_name: routeContext
test_class.declarator: schemaMetaData
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private SchemaMetaData schemaMetaData;
test_class.type: SchemaMetaData
test_class.var_name: schemaMetaData
test_class.declarator: exception
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private Exception exception;
test_class.type: Exception
test_class.var_name: exception
test_class.file: shardingsphere-infra/shardingsphere-infra-route/src/test/java/org/apache/shardingsphere/infra/route/hook/SPIRoutingHookTest.java
test_class.identifier: SPIRoutingHookTest
test_case.body: @Test
      public void assertStart() {
          String sql = "SELECT * FROM table";
          spiRoutingHook.start(sql);
          RoutingHook routingHook = getFixtureHook();
          assertThat(routingHook, instanceOf(RoutingHookFixture.class));
          assertThat(((RoutingHookFixture) routingHook).getSql(), is(sql));
      }
test_case.class_method_signature: SPIRoutingHookTest.assertStart()
test_case.full_signature: @Test public void assertStart()
test_case.identifier: assertStart
test_case.invocations: start getFixtureHook assertThat instanceOf assertThat getSql is
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void assertStart()
focal_class.declarator: routingHooks = ShardingSphereServiceLoader.newServiceInstances(RoutingHook.class)
focal_class.modifier: private final
focal_class.original_string: private final Collection<RoutingHook> routingHooks = ShardingSphereServiceLoader.newServiceInstances(RoutingHook.class);
focal_class.type: Collection<RoutingHook>
focal_class.var_name: routingHooks
focal_class.file: shardingsphere-infra/shardingsphere-infra-route/src/main/java/org/apache/shardingsphere/infra/route/hook/SPIRoutingHook.java
focal_class.identifier: SPIRoutingHook
focal_class.interfaces: implements RoutingHook
focal_class.class_method_signature: SPIRoutingHook.start(final String sql)
focal_class.full_signature: @Override public void start(final String sql)
focal_class.identifier: start
focal_class.modifiers: @Override public
focal_class.parameters: (final String sql)
focal_class.return: void
focal_class.signature: void start(final String sql)
focal_class.class_method_signature: SPIRoutingHook.finishSuccess(final RouteContext routeContext, final SchemaMetaData schemaMetaData)
focal_class.full_signature: @Override public void finishSuccess(final RouteContext routeContext, final SchemaMetaData schemaMetaData)
focal_class.identifier: finishSuccess
focal_class.modifiers: @Override public
focal_class.parameters: (final RouteContext routeContext, final SchemaMetaData schemaMetaData)
focal_class.return: void
focal_class.signature: void finishSuccess(final RouteContext routeContext, final SchemaMetaData schemaMetaData)
focal_class.class_method_signature: SPIRoutingHook.finishFailure(final Exception cause)
focal_class.full_signature: @Override public void finishFailure(final Exception cause)
focal_class.identifier: finishFailure
focal_class.modifiers: @Override public
focal_class.parameters: (final Exception cause)
focal_class.return: void
focal_class.signature: void finishFailure(final Exception cause)
focal_method.body: @Override
      public void start(final String sql) {
          for (RoutingHook each : routingHooks) {
              each.start(sql);
          }
      }
focal_method.class_method_signature: SPIRoutingHook.start(final String sql)
focal_method.full_signature: @Override public void start(final String sql)
focal_method.identifier: start
focal_method.invocations: start
focal_method.modifiers: @Override public
focal_method.parameters: (final String sql)
focal_method.return: void
focal_method.signature: void start(final String sql)