package jnpf.dmsDatabase;
|
|
import com.baomidou.mybatisplus.core.MybatisConfiguration;
|
import org.apache.ibatis.session.SqlSessionFactory;
|
import org.apache.ibatis.type.TypeHandler;
|
import org.junit.jupiter.api.Test;
|
import org.springframework.beans.factory.config.BeanPostProcessor;
|
|
import java.sql.PreparedStatement;
|
import java.sql.ResultSet;
|
import java.sql.Types;
|
import java.util.UUID;
|
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertInstanceOf;
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.when;
|
|
class DmsUuidTypeHandlerTest {
|
private final DmsUuidTypeHandler handler = new DmsUuidTypeHandler();
|
|
@Test
|
void bindsUuidAsPostgresqlOtherType() throws Exception {
|
PreparedStatement statement = mock(PreparedStatement.class);
|
UUID value = UUID.randomUUID();
|
|
handler.setNonNullParameter(statement, 2, value, null);
|
|
verify(statement).setObject(2, value, Types.OTHER);
|
}
|
|
@Test
|
void readsNativeAndTextUuidValues() throws Exception {
|
ResultSet resultSet = mock(ResultSet.class);
|
UUID value = UUID.randomUUID();
|
when(resultSet.getObject("native_id")).thenReturn(value);
|
when(resultSet.getObject("text_id")).thenReturn(value.toString());
|
|
assertEquals(value, handler.getNullableResult(resultSet, "native_id"));
|
assertEquals(value, handler.getNullableResult(resultSet, "text_id"));
|
}
|
|
@Test
|
void registersHandlerForGeneratedBaseMapperStatements() {
|
MybatisConfiguration configuration = new MybatisConfiguration();
|
SqlSessionFactory sessionFactory = mock(SqlSessionFactory.class);
|
when(sessionFactory.getConfiguration()).thenReturn(configuration);
|
BeanPostProcessor registrar = DmsMybatisConfig.dmsMybatisConfigurationRegistrar();
|
|
registrar.postProcessAfterInitialization(sessionFactory, "sqlSessionFactoryOne");
|
|
TypeHandler<UUID> registered = configuration.getTypeHandlerRegistry().getTypeHandler(UUID.class);
|
assertInstanceOf(DmsUuidTypeHandler.class, registered);
|
assertTrue(configuration.isMapUnderscoreToCamelCase());
|
}
|
}
|