29
29
import org .apache .ibatis .reflection .factory .ObjectFactory ;
30
30
import org .apache .ibatis .reflection .wrapper .DefaultObjectWrapperFactory ;
31
31
import org .apache .ibatis .reflection .wrapper .ObjectWrapperFactory ;
32
+ import org .apache .ibatis .scripting .LanguageDriver ;
33
+ import org .apache .ibatis .scripting .LanguageDriverRegistry ;
34
+ import org .apache .ibatis .scripting .defaults .RawLanguageDriver ;
35
+ import org .apache .ibatis .scripting .xmltags .XMLLanguageDriver ;
32
36
import org .apache .ibatis .session .Configuration ;
33
37
import org .apache .ibatis .session .ExecutorType ;
34
38
import org .apache .ibatis .session .SqlSessionFactory ;
@@ -440,6 +444,42 @@ void testAddCache() {
440
444
assertThat (this .factoryBean .getCache ().getId ()).isEqualTo ("test-cache" );
441
445
}
442
446
447
+ @ Test
448
+ void testScriptingLanguageDriverEmpty () throws Exception {
449
+ setupFactoryBean ();
450
+ this .factoryBean .setScriptingLanguageDrivers ();
451
+ LanguageDriverRegistry registry = this .factoryBean .getObject ().getConfiguration ().getLanguageRegistry ();
452
+ assertThat (registry .getDefaultDriver ()).isInstanceOf (XMLLanguageDriver .class );
453
+ assertThat (registry .getDefaultDriverClass ()).isEqualTo (XMLLanguageDriver .class );
454
+ }
455
+
456
+ @ Test
457
+ void testScriptingLanguageDriver () throws Exception {
458
+ setupFactoryBean ();
459
+ this .factoryBean .setScriptingLanguageDrivers (new MyLanguageDriver1 (), new MyLanguageDriver2 ());
460
+ LanguageDriverRegistry registry = this .factoryBean .getObject ().getConfiguration ().getLanguageRegistry ();
461
+ assertThat (registry .getDefaultDriver ()).isInstanceOf (XMLLanguageDriver .class );
462
+ assertThat (registry .getDefaultDriverClass ()).isEqualTo (XMLLanguageDriver .class );
463
+ assertThat (registry .getDriver (MyLanguageDriver1 .class )).isNotNull ();
464
+ assertThat (registry .getDriver (MyLanguageDriver2 .class )).isNotNull ();
465
+ assertThat (registry .getDriver (XMLLanguageDriver .class )).isNotNull ();
466
+ assertThat (registry .getDriver (RawLanguageDriver .class )).isNotNull ();
467
+ }
468
+
469
+ @ Test
470
+ void testScriptingLanguageDriverWithDefault () throws Exception {
471
+ setupFactoryBean ();
472
+ this .factoryBean .setScriptingLanguageDrivers (new MyLanguageDriver1 (), new MyLanguageDriver2 ());
473
+ this .factoryBean .setDefaultScriptingLanguageDriver (MyLanguageDriver1 .class );
474
+ LanguageDriverRegistry registry = this .factoryBean .getObject ().getConfiguration ().getLanguageRegistry ();
475
+ assertThat (registry .getDefaultDriver ()).isInstanceOf (MyLanguageDriver1 .class );
476
+ assertThat (registry .getDefaultDriverClass ()).isEqualTo (MyLanguageDriver1 .class );
477
+ assertThat (registry .getDriver (MyLanguageDriver1 .class )).isNotNull ();
478
+ assertThat (registry .getDriver (MyLanguageDriver2 .class )).isNotNull ();
479
+ assertThat (registry .getDriver (XMLLanguageDriver .class )).isNotNull ();
480
+ assertThat (registry .getDriver (RawLanguageDriver .class )).isNotNull ();
481
+ }
482
+
443
483
private void assertDefaultConfig (SqlSessionFactory factory ) {
444
484
assertConfig (factory , SqlSessionFactoryBean .class .getSimpleName (),
445
485
org .mybatis .spring .transaction .SpringManagedTransactionFactory .class );
@@ -464,4 +504,10 @@ private void assertConfig(SqlSessionFactory factory, String environment,
464
504
assertThat (factory .getConfiguration ().getSqlFragments ().size ()).isEqualTo (0 );
465
505
}
466
506
507
+ private static class MyLanguageDriver1 extends RawLanguageDriver {
508
+ }
509
+
510
+ private static class MyLanguageDriver2 extends RawLanguageDriver {
511
+ }
512
+
467
513
}
0 commit comments