All Downloads are FREE. Search and download functionalities are using the official Maven repository.

templates.repository.mapper.RowMapperImplTest.ftl Maven / Gradle / Ivy

Go to download

Maven plugin to generate Java classes from StoredProcedure and Functions in Database

There is a newer version: 1.8.20
Show newest version
package ${javaPackage}.${repositoryFolderName}.mapper;
<#assign importList = ["java.sql.SQLException", "com.github.javafaker.Faker", "java.sql.ResultSet"]>
<#list parameter.parameters as paramrs>
<#if paramrs.date>
<#assign importList = importList + ["java.util.Date"]>


<#if cursorFolderName != repositoryFolderName>
<#assign importList = importList + ["${javaPackage}.${cursorFolderName}.${parameter.javaTypeName}"]>

<#if junit == 'junit5'>
<#assign importList = importList + ["org.junit.jupiter.api.extension.ExtendWith", "org.mockito.junit.jupiter.MockitoExtension", "org.junit.jupiter.api.Assertions", "org.junit.jupiter.api.BeforeEach", "org.junit.jupiter.api.Test"]>
<#else>
<#assign importList = importList + ["org.junit.runner.RunWith", "org.mockito.runners.MockitoJUnitRunner", "org.junit.Assert", "org.junit.Before", "org.junit.Test"]>

<#assign importList = importList + ["org.mockito.Mock", "org.mockito.Mockito"]>

<#list importSort(importList) as import>
<#if previousImportMatch?? && !import?starts_with(previousImportMatch)>


import ${import};
<#assign previousImportMatch = import?keep_before_last(".") >

<#if importList?has_content>


<#if junit == 'junit5'>
@ExtendWith(MockitoExtension.class)
<#else>
@RunWith(MockitoJUnitRunner.class)

@SuppressWarnings({"rawtypes", "unchecked"})
class ${parameter.javaTypeName}RowMapperImplTest {

    @Mock
    private ResultSet resultSetMock;

    private Faker faker;

    private ${parameter.javaTypeName}RowMapper mapper;

    @<#if junit == 'junit5'>BeforeEach<#else>Before
    void setUp() {
        faker = new Faker();
        mapper = new ${parameter.javaTypeName}RowMapperImpl();
    }
<#list parameter.parameters as parameterTest>

    @Test
    void should_check_${proc.constantFullName?lower_case}_row_mapper_check_${parameterTest.name?lower_case}_value() throws SQLException {

<#if parameterTest.date>
        ${parameterTest.javaTypeName} ${parameterTest.fieldName} = faker.date().birthday();
<#elseif parameterTest.blob>
        byte[] ${parameterTest.fieldName} = new byte[faker.random().nextInt(${parameterTest.position} * 100)];
<#elseif parameterTest.number>
        ${parameterTest.javaTypeName} ${parameterTest.fieldName} = faker.random().nextLong();
<#else>
        ${parameterTest.javaTypeName} ${parameterTest.fieldName} = faker.internet().uuid();


<#if parameterTest.date>
        Mockito.when(resultSetMock.getTimestamp(<#if position>Mockito.anyInt()<#else>Mockito.anyString())).thenReturn(new java.sql.Timestamp(${parameterTest.fieldName}.getTime()));
<#elseif parameterTest.clob>
        Mockito.when(resultSetMock.getString(<#if position>Mockito.anyInt()<#else>Mockito.anyString())).thenReturn(${parameterTest.fieldName});
<#elseif parameterTest.blob>
        Mockito.when(resultSetMock.getBytes(<#if position>Mockito.anyInt()<#else>Mockito.anyString())).thenReturn(${parameterTest.fieldName});
<#elseif parameterTest.string>
        Mockito.when(resultSetMock.getString(<#if position>Mockito.anyInt()<#else>Mockito.anyString())).thenReturn(${parameterTest.fieldName});
<#else>
        Mockito.when(resultSetMock.getObject(<#if position>Mockito.anyInt()<#else>Mockito.anyString())).thenReturn(${parameterTest.fieldName});


        ${parameter.javaTypeName} result = mapper.mapRow(resultSetMock, 0);

        <#if junit == 'junit5'>Assertions<#else>Assert.assertNotNull(result);
<#if parameterTest.date>
        <#if junit == 'junit5'>Assertions<#else>Assert.assertEquals(${parameterTest.fieldName}, result.get${parameterTest.propertyName}());
<#elseif parameterTest.blob>
        <#if junit == 'junit5'>Assertions<#else>Assert.<#if junit == 'junit5'>assertArrayEquals(${parameterTest.fieldName}, result.get${parameterTest.propertyName}())<#else>assertTrue(java.util.Arrays.equals(${parameterTest.fieldName}, result.get${parameterTest.propertyName}()));
<#else>
        <#if junit == 'junit5'>Assertions<#else>Assert.assertSame(${parameterTest.fieldName}, result.get${parameterTest.propertyName}());


<#if parameterTest.date>
        Mockito.verify(resultSetMock, Mockito.times(1)).getTimestamp(<#if position>${parameterTest.position}<#else>"${parameterTest.name}");
<#elseif parameterTest.clob>
        Mockito.verify(resultSetMock, Mockito.times(1)).getString(<#if position>${parameterTest.position}<#else>"${parameterTest.name}");
<#elseif parameterTest.blob>
        Mockito.verify(resultSetMock, Mockito.times(1)).getBytes(<#if position>${parameterTest.position}<#else>"${parameterTest.name}");
<#elseif parameterTest.string>
        Mockito.verify(resultSetMock, Mockito.times(1)).getString(<#if position>${parameterTest.position}<#else>"${parameterTest.name}");
<#else>
        Mockito.verify(resultSetMock, Mockito.times(1)).getObject(<#if position>${parameterTest.position}<#else>"${parameterTest.name}");

    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy