fix(firstleg): restore sailing channel duplicate lookup
This commit is contained in:
+36
@@ -0,0 +1,36 @@
|
||||
package com.baiyue.firstleg.sailingcalendar.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.MybatisConfiguration;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||
import com.baiyue.firstleg.sailingcalendar.entity.SailingChannelEntity;
|
||||
import org.apache.ibatis.binding.MapperMethod;
|
||||
import org.apache.ibatis.mapping.BoundSql;
|
||||
import org.apache.ibatis.mapping.MappedStatement;
|
||||
import org.apache.ibatis.scripting.defaults.DefaultParameterHandler;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.sql.PreparedStatement;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.verify;
|
||||
|
||||
class SailingChannelMapperTest {
|
||||
@Test
|
||||
void inheritedSelectListStillBindsWrapperForChannelCodeLookup() throws Exception {
|
||||
MybatisConfiguration configuration = new MybatisConfiguration();
|
||||
configuration.addMapper(SailingChannelMapper.class);
|
||||
MappedStatement statement = configuration.getMappedStatement(SailingChannelMapper.class.getName() + ".selectList");
|
||||
MapperMethod.ParamMap<Object> parameters = new MapperMethod.ParamMap<>();
|
||||
parameters.put(Constants.WRAPPER, new LambdaQueryWrapper<SailingChannelEntity>()
|
||||
.eq(SailingChannelEntity::getChannelCode, "MATSON"));
|
||||
BoundSql sql = statement.getBoundSql(parameters);
|
||||
PreparedStatement preparedStatement = mock(PreparedStatement.class);
|
||||
|
||||
new DefaultParameterHandler(statement, parameters, sql).setParameters(preparedStatement);
|
||||
|
||||
assertThat(sql.getSql()).contains("channel_code = ?");
|
||||
verify(preparedStatement).setString(1, "MATSON");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user