All Downloads are FREE. Search and download functionalities are using the official Maven repository.
Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
templates.object.ObjectBuilderUtilImplTest.ftl Maven / Gradle / Ivy
Go to download
Maven plugin to generate Java classes from StoredProcedure and Functions in Database
package ${javaPackage}.${objectFolderName};
<#assign importList = ["java.sql.Connection", "java.sql.SQLException", "com.github.javafaker.Faker"]>
<#list parameter.parameters as parameter>
<#if parameter.clob>
<#assign importClobUtil = 1>
<#if utilFolderName != objectFolderName>
<#assign importList = importList + ["${javaPackage}.${utilFolderName}.${prefixUtilityName}ClobUtil"]>
<#elseif parameter.blob>
<#assign importBlobUtil = 1>
<#if utilFolderName != objectFolderName>
<#assign importList = importList + ["${javaPackage}.${utilFolderName}.${prefixUtilityName}BlobUtil"]>
<#elseif parameter.date>
<#assign importDateUtil = 1>
<#if utilFolderName != objectFolderName>
<#assign importList = importList + ["${javaPackage}.${utilFolderName}.${prefixUtilityName}DateUtil"]>
<#if parameter.date>
<#assign importDate = 1>
<#assign importList = importList + ["java.util.Date"]>
<#if utilFolderName != objectFolderName>
<#assign importList = importList + ["${javaPackage}.${utilFolderName}.${prefixUtilityName}ObjectUtil"]>
<#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.ArgumentCaptor", "org.mockito.Captor", "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}BuilderUtilImplTest {
<#if importBlobUtil??>
@Mock
private ${prefixUtilityName}BlobUtil blobUtilMock;
<#if importClobUtil??>
@Mock
private ${prefixUtilityName}ClobUtil clobUtilMock;
<#if importDateUtil??>
@Mock
private ${prefixUtilityName}DateUtil dateUtilMock;
@Mock
private ${prefixUtilityName}ObjectUtil objectUtilMock;
@Mock
private Connection connectionMock;
@Captor
private ArgumentCaptor captorObjects;
private Faker faker;
private ${parameter.javaTypeName}BuilderUtil builder;
@<#if junit == 'junit5'>BeforeEach<#else>Before
void setUp() {
faker = new Faker();
builder = new ${parameter.javaTypeName}BuilderUtilImpl(${'\n'} objectUtilMock<#if importBlobUtil??>,${'\n'} blobUtilMock<#if importClobUtil??>,${'\n'} clobUtilMock<#if importDateUtil??>,${'\n'} dateUtilMock${'\n'} );
}
<#if importBlobUtil??>
@Test
void should_check_${parameter.realObjectName?lower_case}_builder_process_check_parameters_with_blob_util() throws SQLException {
${parameter.javaTypeName} object;
<#list parameter.parameters as parameter>
<#if parameter.number>
${parameter.javaTypeName} obj${parameter.propertyName} = faker.random().nextLong();
<#elseif parameter.date>
${parameter.javaTypeName} obj${parameter.propertyName} = faker.date().birthday();
<#elseif parameter.blob>
${parameter.javaTypeName} obj${parameter.propertyName} = new byte[faker.random().nextInt(${parameter.position} * 100)];
<#else>
${parameter.javaTypeName} obj${parameter.propertyName} = faker.internet().uuid();
object = new ${parameter.javaTypeName}Builder()<#list parameter.parameters as parameter>${'\n'} .${parameter.fieldName}(obj${parameter.propertyName})${'\n'} .build();
Object[] obj = new Object[0];
builder.process(connectionMock, object);
<#list parameter.parameters as parameterTest>
<#if parameterTest.blob>
Mockito.verify(blobUtilMock, Mockito.times(1)).process(Mockito.same(connectionMock), Mockito.same(obj${parameterTest.propertyName}));
}
<#if importClobUtil??>
@Test
void should_check_${parameter.realObjectName?lower_case}_builder_process_check_parameters_with_clob_util() throws SQLException {
${parameter.javaTypeName} object;
<#list parameter.parameters as parameter>
<#if parameter.number>
${parameter.javaTypeName} obj${parameter.propertyName} = faker.random().nextLong();
<#elseif parameter.date>
${parameter.javaTypeName} obj${parameter.propertyName} = faker.date().birthday();
<#elseif parameter.blob>
${parameter.javaTypeName} obj${parameter.propertyName} = new byte[faker.random().nextInt(${parameter.position} * 100)];
<#else>
${parameter.javaTypeName} obj${parameter.propertyName} = faker.internet().uuid();
object = new ${parameter.javaTypeName}Builder()<#list parameter.parameters as parameter>${'\n'} .${parameter.fieldName}(obj${parameter.propertyName})${'\n'} .build();
Object[] obj = new Object[0];
builder.process(connectionMock, object);
<#list parameter.parameters as parameterTest>
<#if parameterTest.clob>
Mockito.verify(clobUtilMock, Mockito.times(1)).process(Mockito.same(connectionMock), Mockito.same(obj${parameterTest.propertyName}));
}
<#if importDateUtil??>
@Test
void should_check_${parameter.realObjectName?lower_case}_builder_process_check_parameters_with_date_util() throws SQLException {
${parameter.javaTypeName} object;
<#list parameter.parameters as parameter>
<#if parameter.number>
${parameter.javaTypeName} obj${parameter.propertyName} = faker.random().nextLong();
<#elseif parameter.date>
${parameter.javaTypeName} obj${parameter.propertyName} = faker.date().birthday();
<#elseif parameter.blob>
${parameter.javaTypeName} obj${parameter.propertyName} = new byte[faker.random().nextInt(${parameter.position} * 100)];
<#else>
${parameter.javaTypeName} obj${parameter.propertyName} = faker.internet().uuid();
object = new ${parameter.javaTypeName}Builder()<#list parameter.parameters as parameter>${'\n'} .${parameter.fieldName}(obj${parameter.propertyName})${'\n'} .build();
Object[] obj = new Object[0];
builder.process(connectionMock, object);
<#list parameter.parameters as parameterTest>
<#if parameterTest.date>
Mockito.verify(dateUtilMock, Mockito.times(1)).process(Mockito.eq(obj${parameterTest.propertyName}));
}
@Test
void should_check_${parameter.realObjectName?lower_case}_builder_process_response() throws SQLException {
${parameter.javaTypeName} object;
<#list parameter.parameters as parameter>
<#if parameter.number>
${parameter.javaTypeName} obj${parameter.propertyName} = faker.random().nextLong();
<#elseif parameter.date>
${parameter.javaTypeName} obj${parameter.propertyName} = faker.date().birthday();
<#elseif parameter.blob>
${parameter.javaTypeName} obj${parameter.propertyName} = new byte[faker.random().nextInt(${parameter.position} * 100)];
<#else>
${parameter.javaTypeName} obj${parameter.propertyName} = faker.internet().uuid();
object = new ${parameter.javaTypeName}Builder()<#list parameter.parameters as parameter>${'\n'} .${parameter.fieldName}(obj${parameter.propertyName})${'\n'} .build();
Object[] obj = new Object[0];
Mockito.when(objectUtilMock.process(Mockito.any(), Mockito.anyString(), Mockito.any())).thenReturn(obj);
Object result = builder.process(connectionMock, object);
<#if junit == 'junit5'>Assertions<#else>Assert.assertNotNull(result);
<#if junit == 'junit5'>Assertions<#else>Assert.assertSame(obj, result);
Mockito.verify(objectUtilMock, Mockito.times(1)).process(Mockito.same(connectionMock), Mockito.eq("${parameter.realObjectName}"), captorObjects.capture());
Object[] objParamsResult = captorObjects.getValue();
<#if junit == 'junit5'>Assertions<#else>Assert.assertNotNull(objParamsResult);
<#if junit == 'junit5'>Assertions<#else>Assert.assertEquals(${parameter.parameters?size}, objParamsResult.length);
}
<#list parameter.parameters as parameterTest>
@Test
void should_check_${parameter.realObjectName?lower_case}_builder_process_check_parameter_${parameterTest.name?lower_case}_value() throws SQLException {
${parameter.javaTypeName} object;
<#list parameter.parameters as parameter>
<#if parameter.number>
${parameter.javaTypeName} obj${parameter.propertyName} = faker.random().nextLong();
<#elseif parameter.date>
${parameter.javaTypeName} obj${parameter.propertyName} = faker.date().birthday();
<#elseif parameter.blob>
${parameter.javaTypeName} obj${parameter.propertyName} = new byte[faker.random().nextInt(${parameter.position} * 100)];
<#else>
${parameter.javaTypeName} obj${parameter.propertyName} = faker.internet().uuid();
object = new ${parameter.javaTypeName}Builder()<#list parameter.parameters as parameter>${'\n'} .${parameter.fieldName}(obj${parameter.propertyName})${'\n'} .build();
Object[] obj = new Object[0];
<#list parameter.parameters as parameter>
<#if parameter.date>
Mockito.when(dateUtilMock.process(obj${parameter.propertyName})).thenReturn(obj${parameter.propertyName});
<#elseif parameter.blob>
Mockito.when(blobUtilMock.process(Mockito.same(connectionMock), Mockito.same(obj${parameter.propertyName}))).thenReturn(obj${parameter.propertyName});
<#elseif parameter.clob>
Mockito.when(clobUtilMock.process(Mockito.same(connectionMock), Mockito.same(obj${parameter.propertyName}))).thenReturn(obj${parameter.propertyName});
Mockito.when(objectUtilMock.process(Mockito.any(), Mockito.anyString(), Mockito.any())).thenReturn(obj);
builder.process(connectionMock, object);
Mockito.verify(objectUtilMock, Mockito.times(1)).process(Mockito.same(connectionMock), Mockito.eq("${parameter.realObjectName}"), captorObjects.capture());
Object[] objParamsResult = captorObjects.getValue();
<#if junit == 'junit5'>Assertions<#else>Assert.assertNotNull(objParamsResult);
<#if parameterTest.date>
<#if junit == 'junit5'>Assertions<#else>Assert.assertEquals(obj${parameterTest.propertyName}, objParamsResult[${parameterTest.position - 1}]);
<#elseif parameterTest.blob>
<#if junit == 'junit5'>Assertions<#else>Assert.<#if junit == 'junit5'>assertArrayEquals(obj${parameterTest.propertyName}, result.get${parameterTest.propertyName}())<#else>assertTrue(java.util.Arrays.equals(obj${parameter.propertyName}, result.get${parameter.propertyName}()));
<#else>
<#if junit == 'junit5'>Assertions<#else>Assert.assertSame(obj${parameterTest.propertyName}, objParamsResult[${parameterTest.position - 1}]);
}
}