### Question:
SqlSessionTemplate implements SqlSession, DisposableBean { @Override public <T> T getMapper(Class<T> type) { return getConfiguration().getMapper(type, this); } SqlSessionTemplate(SqlSessionFactory sqlSessionFactory);  SqlSessionTemplate(SqlSessionFactory sqlSessionFactory, ExecutorType executorType);  SqlSessionTemplate(SqlSessionFactory sqlSessionFactory, ExecutorType executorType,
      PersistenceExceptionTranslator exceptionTranslator); SqlSessionFactory getSqlSessionFactory(); ExecutorType getExecutorType(); PersistenceExceptionTranslator getPersistenceExceptionTranslator(); @Override T selectOne(String statement); @Override T selectOne(String statement, Object parameter); @Override Map<K, V> selectMap(String statement, String mapKey); @Override Map<K, V> selectMap(String statement, Object parameter, String mapKey); @Override Map<K, V> selectMap(String statement, Object parameter, String mapKey, RowBounds rowBounds); @Override Cursor<T> selectCursor(String statement); @Override Cursor<T> selectCursor(String statement, Object parameter); @Override Cursor<T> selectCursor(String statement, Object parameter, RowBounds rowBounds); @Override List<E> selectList(String statement); @Override List<E> selectList(String statement, Object parameter); @Override List<E> selectList(String statement, Object parameter, RowBounds rowBounds); @Override void select(String statement, ResultHandler handler); @Override void select(String statement, Object parameter, ResultHandler handler); @Override void select(String statement, Object parameter, RowBounds rowBounds, ResultHandler handler); @Override int insert(String statement); @Override int insert(String statement, Object parameter); @Override int update(String statement); @Override int update(String statement, Object parameter); @Override int delete(String statement); @Override int delete(String statement, Object parameter); @Override T getMapper(Class<T> type); @Override void commit(); @Override void commit(boolean force); @Override void rollback(); @Override void rollback(boolean force); @Override void close(); @Override void clearCache(); @Override Configuration getConfiguration(); @Override Connection getConnection(); @Override List<BatchResult> flushStatements(); @Override void destroy();  }### Answer:
@Test void testTemplateWithNoTxInsert() { sqlSessionTemplate.getMapper(TestMapper.class).insertTest("test1"); assertCommitJdbc(); assertCommitSession(); }
@Test void testTemplateWithNoTxSelect() { sqlSessionTemplate.getMapper(TestMapper.class).findTest(); assertCommit(); }
@Test public void testTemplateWithNoTxInsert() { sqlSessionTemplate.getMapper(TestMapper.class).insertTest("test1"); assertCommitJdbc(); assertCommitSession(); }
@Test public void testTemplateWithNoTxSelect() { sqlSessionTemplate.getMapper(TestMapper.class).findTest(); assertCommit(); }