templates.repository.mapper.RowMapperImplTest.ftl Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of autoplsp Show documentation
Show all versions of autoplsp Show documentation
Maven plugin to generate Java classes from StoredProcedure and Functions in Database
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}");
}
}