test_class.declarator: serviceConfig = new ServiceConfig()
test_class.original_string: ServiceConfig serviceConfig = new ServiceConfig();
test_class.type: ServiceConfig
test_class.var_name: serviceConfig
test_class.declarator: dataSourceConfig = new DataSourceConfig()
test_class.original_string: DataSourceConfig dataSourceConfig = new DataSourceConfig();
test_class.type: DataSourceConfig
test_class.var_name: dataSourceConfig
test_class.file: 01-spring5/src/test/java/com/example/service/config/ServiceConfigTest.java
test_class.identifier: ServiceConfigTest
test_case.body: @Test
      @DisplayName("transactionManagerのBeanが定義されている")
      public void transactionManagerTest() {
          Method transactionManagerMethod = assertDoesNotThrow(() -> ServiceConfig.class.getMethod("transactionManager", DataSource.class));
          Bean bean = transactionManagerMethod.getAnnotation(Bean.class);
          assertNotNull(bean, "annotation required");
  
          PlatformTransactionManager transactionManager = serviceConfig.transactionManager(dataSourceConfig.dataSource());
          assertTrue(transactionManager instanceof DataSourceTransactionManager, "not correct transaction manager");
      }
test_case.class_method_signature: ServiceConfigTest.transactionManagerTest()
test_case.full_signature: @Test @DisplayName("transactionManagerのBeanが定義されている") public void transactionManagerTest()
test_case.identifier: transactionManagerTest
test_case.invocations: assertDoesNotThrow getMethod getAnnotation assertNotNull transactionManager dataSource assertTrue
test_case.modifiers: @Test @DisplayName("transactionManagerのBeanが定義されている") public
test_case.parameters: ()
test_case.return: void
test_case.signature: void transactionManagerTest()
focal_class.file: 01-spring5/src/main/java/com/example/service/config/ServiceConfig.java
focal_class.identifier: ServiceConfig
focal_class.class_method_signature: ServiceConfig.transactionManager(DataSource dataSource)
focal_class.full_signature: public PlatformTransactionManager transactionManager(DataSource dataSource)
focal_class.identifier: transactionManager
focal_class.modifiers: public
focal_class.parameters: (DataSource dataSource)
focal_class.return: PlatformTransactionManager
focal_class.signature: PlatformTransactionManager transactionManager(DataSource dataSource)
focal_method.body: public PlatformTransactionManager transactionManager(DataSource dataSource) {
          // DataSourceTransactionManagerをnewしてreturnする
          // コンストラクタでDataSourceを受け取る
          return new DataSourceTransactionManager(dataSource);
      }
focal_method.class_method_signature: ServiceConfig.transactionManager(DataSource dataSource)
focal_method.full_signature: public PlatformTransactionManager transactionManager(DataSource dataSource)
focal_method.identifier: transactionManager
focal_method.modifiers: public
focal_method.parameters: (DataSource dataSource)
focal_method.return: PlatformTransactionManager
focal_method.signature: PlatformTransactionManager transactionManager(DataSource dataSource)