刘光辉
15 小时以前 34981c30a78e8bbd7791131059a9210f9928b62c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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());
    }
}