Java JDBI测试自定义注释以生成sql语句
我希望在jdbi包中测试一个定制的SqlStatementCustomingAnnotation注释 我有下面的单元测试,但是我看到返回的“customizer”对象是一个lambda。如何断言我希望在自定义注释中生成的SQL是我所期望的。如何将“customizer”对象转换为sql语句,或在“customizer”对象中检查和断言sql SourceEventTimeCustomizerTestJava JDBI测试自定义注释以生成sql语句,java,jdbi,Java,Jdbi,我希望在jdbi包中测试一个定制的SqlStatementCustomingAnnotation注释 我有下面的单元测试,但是我看到返回的“customizer”对象是一个lambda。如何断言我希望在自定义注释中生成的SQL是我所期望的。如何将“customizer”对象转换为sql语句,或在“customizer”对象中检查和断言sql SourceEventTimeCustomizerTest @Test public void testSourceModifiedQuery(){
@Test
public void testSourceModifiedQuery(){
SourceModifiedQuery.SourceEventDateTimeCustomizer srcModifiedQuery = new SourceModifiedQuery.SourceEventDateTimeCustomizer();
Annotation annotation = buildSourceModifiedQueryAnnotation();
List<Query> queries = new ArrayList<Query>();
queries.add(QueryHelper.createQuery("source_modified_date_time" , Query.Operator.EQ, "2018-01-01"));
SqlStatementCustomizer customizer = srcModifiedQuery.createForParameter(annotation, DealDao.class, null, queries );
assertNotNull(customizer);
}
@测试
public void testSourceModifiedQuery(){
SourceModifiedQuery.SourceEventDateTimeCustomizer srcModifiedQuery=新建SourceModifiedQuery.SourceEventDateTimeCustomizer();
Annotation=buildSourceModifiedQueryAnnotation();
列表查询=新建ArrayList();
querys.add(queryhelp.createQuery(“source\u modified\u date\u time”,Query.Operator.EQ,“2018-01-01”);
SqlStatementCustomizer customizer=srcModifiedQuery.createForParameter(注释,DealDao.class,null,查询);
assertNotNull(定制器);
}
SourceEventTimeCustomizer
@Override
public SqlStatementCustomizer createForParameter(final Annotation annotation, final Class sqlObjectType,
final Method method, final Object arg) {
final List<Query> queries = (List<Query>) arg;
final SourceModifiedQuery sourceModifiedQuery = (SourceModifiedQuery) annotation;
final String actualQuery = genQuery(queries, sourceModifiedQuery);
return sqlStatement -> sqlStatement.define(sourceModifiedQuery.value(), actualQuery);
}
@覆盖
公共SqlStatementCustomizer createForParameter(最终注释,最终类sqlObjectType,
最终方法,最终对象参数){
最终列表查询=(列表)参数;
最终SourceModifiedQuery SourceModifiedQuery=(SourceModifiedQuery)注释;
最终字符串actualQuery=genQuery(查询,sourceModifiedQuery);
返回sqlStatement->sqlStatement.define(sourceModifiedQuery.value(),actualQuery);
}