fix(firstleg): restore sailing channel duplicate lookup

This commit is contained in:
2026-09-27 19:56:23 +08:00
parent 48de46739c
commit 69f2a18a44
3 changed files with 38 additions and 2 deletions
@@ -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");
}
}