2020import static org .junit .jupiter .api .Assertions .assertNull ;
2121import static org .junit .jupiter .api .Assertions .assertThrows ;
2222import static org .junit .jupiter .api .Assertions .assertTrue ;
23+
2324import java .io .Reader ;
25+ import java .text .MessageFormat ;
2426import java .util .List ;
27+
2528import org .apache .ibatis .BaseDataTest ;
2629import org .apache .ibatis .exceptions .PersistenceException ;
2730import org .apache .ibatis .io .Resources ;
@@ -39,14 +42,14 @@ class ColumnOrderBasedConstructorAutomappingTest {
3942 static void setUp () throws Exception {
4043 // create an SqlSessionFactory
4144 try (Reader reader = Resources .getResourceAsReader (
42- "org/apache/ibatis/submitted/column_order_based_constructor_automapping/mybatis-config.xml" )) {
45+ "org/apache/ibatis/submitted/column_order_based_constructor_automapping/mybatis-config.xml" )) {
4346 sqlSessionFactory = new SqlSessionFactoryBuilder ().build (reader );
4447 sqlSessionFactory .getConfiguration ().setArgNameBasedConstructorAutoMapping (false );
4548 }
4649
4750 // populate in-memory database
4851 BaseDataTest .runScript (sqlSessionFactory .getConfiguration ().getEnvironment ().getDataSource (),
49- "org/apache/ibatis/submitted/column_order_based_constructor_automapping/CreateDB.sql" );
52+ "org/apache/ibatis/submitted/column_order_based_constructor_automapping/CreateDB.sql" );
5053 }
5154
5255 @ Test
@@ -120,10 +123,14 @@ void shouldNotHandleConstructorGreaterThanResultSet() {
120123 try (SqlSession sqlSession = sqlSessionFactory .openSession ()) {
121124 Mapper mapper = sqlSession .getMapper (Mapper .class );
122125
123- PersistenceException persistenceException = assertThrows (PersistenceException .class , mapper ::finaAllByConstructorGreaterThanResultSet );
126+ PersistenceException persistenceException = assertThrows (PersistenceException .class ,
127+ mapper ::finaAllByConstructorGreaterThanResultSet );
124128 assertNotNull (persistenceException );
125- assertNotNull (persistenceException .getMessage ());
126- assertTrue (persistenceException .getMessage ().contains ("Column order based constructor auto-mapping of" ));
129+ String message = persistenceException .getMessage ();
130+ assertNotNull (message );
131+ assertTrue (message .contains (MessageFormat .format (
132+ "Constructor auto-mapping of ''{0}'' failed. The constructor takes ''{1}'' arguments, but there are only ''{2}'' columns in the result set." ,
133+ UserConstructorGreaterThanResultSet .class .getConstructors ()[0 ], 4 , 3 )));
127134 }
128135 }
129136}
0 commit comments