forked from D-Net/dnet-hadoop
tests
This commit is contained in:
parent
478a958f09
commit
d2058fdc47
|
@ -58,7 +58,7 @@ public class MappersTest {
|
||||||
assertTrue(StringUtils.isNotBlank(p.getJournal().getName()));
|
assertTrue(StringUtils.isNotBlank(p.getJournal().getName()));
|
||||||
|
|
||||||
assertValidId(r1.getSource());
|
assertValidId(r1.getSource());
|
||||||
assertValidId(r2.getTarget());
|
assertValidId(r1.getTarget());
|
||||||
assertValidId(r2.getSource());
|
assertValidId(r2.getSource());
|
||||||
assertValidId(r2.getTarget());
|
assertValidId(r2.getTarget());
|
||||||
assertNotNull(r1.getDataInfo());
|
assertNotNull(r1.getDataInfo());
|
||||||
|
@ -97,7 +97,7 @@ public class MappersTest {
|
||||||
assertTrue(d.getSubject().size() > 0);
|
assertTrue(d.getSubject().size() > 0);
|
||||||
|
|
||||||
assertValidId(r1.getSource());
|
assertValidId(r1.getSource());
|
||||||
assertValidId(r2.getTarget());
|
assertValidId(r1.getTarget());
|
||||||
assertValidId(r2.getSource());
|
assertValidId(r2.getSource());
|
||||||
assertValidId(r2.getTarget());
|
assertValidId(r2.getTarget());
|
||||||
assertNotNull(r1.getDataInfo());
|
assertNotNull(r1.getDataInfo());
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
package eu.dnetlib.dhp.oa.graph.raw;
|
package eu.dnetlib.dhp.oa.graph.raw;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.type.TypeReference;
|
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
||||||
import eu.dnetlib.dhp.schema.oaf.*;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.sql.Array;
|
import java.sql.Array;
|
||||||
import java.sql.Date;
|
import java.sql.Date;
|
||||||
|
@ -12,7 +11,9 @@ import java.sql.ResultSet;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
import org.apache.commons.io.IOUtils;
|
import org.apache.commons.io.IOUtils;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.junit.jupiter.api.extension.ExtendWith;
|
import org.junit.jupiter.api.extension.ExtendWith;
|
||||||
|
@ -20,294 +21,314 @@ import org.mockito.Mock;
|
||||||
import org.mockito.Mockito;
|
import org.mockito.Mockito;
|
||||||
import org.mockito.junit.jupiter.MockitoExtension;
|
import org.mockito.junit.jupiter.MockitoExtension;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.core.type.TypeReference;
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
|
||||||
|
import eu.dnetlib.dhp.schema.oaf.Datasource;
|
||||||
|
import eu.dnetlib.dhp.schema.oaf.Oaf;
|
||||||
|
import eu.dnetlib.dhp.schema.oaf.Organization;
|
||||||
|
import eu.dnetlib.dhp.schema.oaf.Project;
|
||||||
|
import eu.dnetlib.dhp.schema.oaf.Relation;
|
||||||
|
|
||||||
@ExtendWith(MockitoExtension.class)
|
@ExtendWith(MockitoExtension.class)
|
||||||
public class MigrateDbEntitiesApplicationTest {
|
public class MigrateDbEntitiesApplicationTest {
|
||||||
|
|
||||||
private MigrateDbEntitiesApplication app;
|
private MigrateDbEntitiesApplication app;
|
||||||
|
|
||||||
@Mock private ResultSet rs;
|
@Mock
|
||||||
|
private ResultSet rs;
|
||||||
|
|
||||||
@BeforeEach
|
@BeforeEach
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
this.app = new MigrateDbEntitiesApplication();
|
this.app = new MigrateDbEntitiesApplication();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testProcessDatasource() throws Exception {
|
public void testProcessDatasource() throws Exception {
|
||||||
final List<TypedField> fields = prepareMocks("datasources_resultset_entry.json");
|
final List<TypedField> fields = prepareMocks("datasources_resultset_entry.json");
|
||||||
|
|
||||||
final List<Oaf> list = app.processDatasource(rs);
|
final List<Oaf> list = app.processDatasource(rs);
|
||||||
assertEquals(1, list.size());
|
assertEquals(1, list.size());
|
||||||
verifyMocks(fields);
|
verifyMocks(fields);
|
||||||
|
|
||||||
final Datasource ds = (Datasource) list.get(0);
|
final Datasource ds = (Datasource) list.get(0);
|
||||||
assertValidId(ds.getId());
|
assertValidId(ds.getId());
|
||||||
assertEquals(ds.getOfficialname().getValue(), getValueAsString("officialname", fields));
|
assertEquals(ds.getOfficialname().getValue(), getValueAsString("officialname", fields));
|
||||||
assertEquals(ds.getEnglishname().getValue(), getValueAsString("englishname", fields));
|
assertEquals(ds.getEnglishname().getValue(), getValueAsString("englishname", fields));
|
||||||
assertEquals(ds.getContactemail().getValue(), getValueAsString("contactemail", fields));
|
assertEquals(ds.getContactemail().getValue(), getValueAsString("contactemail", fields));
|
||||||
assertEquals(ds.getWebsiteurl().getValue(), getValueAsString("websiteurl", fields));
|
assertEquals(ds.getWebsiteurl().getValue(), getValueAsString("websiteurl", fields));
|
||||||
assertEquals(
|
assertEquals(ds.getNamespaceprefix().getValue(), getValueAsString("namespaceprefix", fields));
|
||||||
ds.getNamespaceprefix().getValue(), getValueAsString("namespaceprefix", fields));
|
assertEquals(ds.getCollectedfrom().get(0).getKey(), getValueAsString("collectedfromid", fields));
|
||||||
assertEquals(
|
assertEquals(ds.getCollectedfrom().get(0).getValue(), getValueAsString("collectedfromname", fields));
|
||||||
ds.getCollectedfrom().get(0).getKey(), getValueAsString("collectedfromid", fields));
|
}
|
||||||
assertEquals(
|
|
||||||
ds.getCollectedfrom().get(0).getValue(),
|
|
||||||
getValueAsString("collectedfromname", fields));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testProcessProject() throws Exception {
|
public void testProcessProject() throws Exception {
|
||||||
final List<TypedField> fields = prepareMocks("projects_resultset_entry.json");
|
final List<TypedField> fields = prepareMocks("projects_resultset_entry.json");
|
||||||
|
|
||||||
final List<Oaf> list = app.processProject(rs);
|
final List<Oaf> list = app.processProject(rs);
|
||||||
assertEquals(1, list.size());
|
assertEquals(1, list.size());
|
||||||
verifyMocks(fields);
|
verifyMocks(fields);
|
||||||
|
|
||||||
final Project p = (Project) list.get(0);
|
final Project p = (Project) list.get(0);
|
||||||
assertValidId(p.getId());
|
assertValidId(p.getId());
|
||||||
assertEquals(p.getAcronym().getValue(), getValueAsString("acronym", fields));
|
assertEquals(p.getAcronym().getValue(), getValueAsString("acronym", fields));
|
||||||
assertEquals(p.getTitle().getValue(), getValueAsString("title", fields));
|
assertEquals(p.getTitle().getValue(), getValueAsString("title", fields));
|
||||||
assertEquals(
|
assertEquals(p.getCollectedfrom().get(0).getKey(), getValueAsString("collectedfromid", fields));
|
||||||
p.getCollectedfrom().get(0).getKey(), getValueAsString("collectedfromid", fields));
|
assertEquals(p.getCollectedfrom().get(0).getValue(), getValueAsString("collectedfromname", fields));
|
||||||
assertEquals(
|
}
|
||||||
p.getCollectedfrom().get(0).getValue(),
|
|
||||||
getValueAsString("collectedfromname", fields));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testProcessOrganization() throws Exception {
|
public void testProcessOrganization() throws Exception {
|
||||||
final List<TypedField> fields = prepareMocks("organizations_resultset_entry.json");
|
final List<TypedField> fields = prepareMocks("organizations_resultset_entry.json");
|
||||||
|
|
||||||
final List<Oaf> list = app.processOrganization(rs);
|
final List<Oaf> list = app.processOrganization(rs);
|
||||||
|
|
||||||
assertEquals(1, list.size());
|
assertEquals(1, list.size());
|
||||||
|
|
||||||
verifyMocks(fields);
|
verifyMocks(fields);
|
||||||
|
|
||||||
final Organization o = (Organization) list.get(0);
|
final Organization o = (Organization) list.get(0);
|
||||||
assertValidId(o.getId());
|
assertValidId(o.getId());
|
||||||
assertEquals(o.getLegalshortname().getValue(), getValueAsString("legalshortname", fields));
|
assertEquals(o.getLegalshortname().getValue(), getValueAsString("legalshortname", fields));
|
||||||
assertEquals(o.getLegalname().getValue(), getValueAsString("legalname", fields));
|
assertEquals(o.getLegalname().getValue(), getValueAsString("legalname", fields));
|
||||||
assertEquals(o.getWebsiteurl().getValue(), getValueAsString("websiteurl", fields));
|
assertEquals(o.getWebsiteurl().getValue(), getValueAsString("websiteurl", fields));
|
||||||
assertEquals(
|
assertEquals(o.getCountry().getClassid(), getValueAsString("country", fields).split("@@@")[0]);
|
||||||
o.getCountry().getClassid(), getValueAsString("country", fields).split("@@@")[0]);
|
assertEquals(o.getCountry().getClassname(), getValueAsString("country", fields).split("@@@")[1]);
|
||||||
assertEquals(
|
assertEquals(o.getCountry().getSchemeid(), getValueAsString("country", fields).split("@@@")[2]);
|
||||||
o.getCountry().getClassname(), getValueAsString("country", fields).split("@@@")[1]);
|
assertEquals(o.getCountry().getSchemename(), getValueAsString("country", fields).split("@@@")[3]);
|
||||||
assertEquals(
|
assertEquals(o.getCollectedfrom().get(0).getKey(), getValueAsString("collectedfromid", fields));
|
||||||
o.getCountry().getSchemeid(), getValueAsString("country", fields).split("@@@")[2]);
|
assertEquals(o.getCollectedfrom().get(0).getValue(), getValueAsString("collectedfromname", fields));
|
||||||
assertEquals(
|
}
|
||||||
o.getCountry().getSchemename(),
|
|
||||||
getValueAsString("country", fields).split("@@@")[3]);
|
|
||||||
assertEquals(
|
|
||||||
o.getCollectedfrom().get(0).getKey(), getValueAsString("collectedfromid", fields));
|
|
||||||
assertEquals(
|
|
||||||
o.getCollectedfrom().get(0).getValue(),
|
|
||||||
getValueAsString("collectedfromname", fields));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testProcessDatasourceOrganization() throws Exception {
|
public void testProcessDatasourceOrganization() throws Exception {
|
||||||
final List<TypedField> fields = prepareMocks("datasourceorganization_resultset_entry.json");
|
final List<TypedField> fields = prepareMocks("datasourceorganization_resultset_entry.json");
|
||||||
|
|
||||||
final List<Oaf> list = app.processDatasourceOrganization(rs);
|
final List<Oaf> list = app.processDatasourceOrganization(rs);
|
||||||
|
|
||||||
assertEquals(2, list.size());
|
assertEquals(2, list.size());
|
||||||
verifyMocks(fields);
|
verifyMocks(fields);
|
||||||
|
|
||||||
final Relation r1 = (Relation) list.get(0);
|
final Relation r1 = (Relation) list.get(0);
|
||||||
final Relation r2 = (Relation) list.get(1);
|
final Relation r2 = (Relation) list.get(1);
|
||||||
assertValidId(r1.getSource());
|
assertValidId(r1.getSource());
|
||||||
assertValidId(r2.getSource());
|
assertValidId(r2.getSource());
|
||||||
assertEquals(r1.getSource(), r2.getTarget());
|
assertEquals(r1.getSource(), r2.getTarget());
|
||||||
assertEquals(r2.getSource(), r1.getTarget());
|
assertEquals(r2.getSource(), r1.getTarget());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testProcessProjectOrganization() throws Exception {
|
public void testProcessProjectOrganization() throws Exception {
|
||||||
final List<TypedField> fields = prepareMocks("projectorganization_resultset_entry.json");
|
final List<TypedField> fields = prepareMocks("projectorganization_resultset_entry.json");
|
||||||
|
|
||||||
final List<Oaf> list = app.processProjectOrganization(rs);
|
final List<Oaf> list = app.processProjectOrganization(rs);
|
||||||
|
|
||||||
assertEquals(2, list.size());
|
assertEquals(2, list.size());
|
||||||
verifyMocks(fields);
|
verifyMocks(fields);
|
||||||
|
|
||||||
final Relation r1 = (Relation) list.get(0);
|
final Relation r1 = (Relation) list.get(0);
|
||||||
final Relation r2 = (Relation) list.get(1);
|
final Relation r2 = (Relation) list.get(1);
|
||||||
assertValidId(r1.getSource());
|
assertValidId(r1.getSource());
|
||||||
assertValidId(r2.getSource());
|
assertValidId(r2.getSource());
|
||||||
assertEquals(r1.getSource(), r2.getTarget());
|
assertEquals(r1.getSource(), r2.getTarget());
|
||||||
assertEquals(r2.getSource(), r1.getTarget());
|
assertEquals(r2.getSource(), r1.getTarget());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testProcessClaims_context() throws Exception {
|
public void testProcessClaims_context() throws Exception {
|
||||||
final List<TypedField> fields = prepareMocks("claimscontext_resultset_entry.json");
|
final List<TypedField> fields = prepareMocks("claimscontext_resultset_entry.json");
|
||||||
|
|
||||||
final List<Oaf> list = app.processClaims(rs);
|
final List<Oaf> list = app.processClaims(rs);
|
||||||
|
|
||||||
assertEquals(1, list.size());
|
assertEquals(1, list.size());
|
||||||
verifyMocks(fields);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
verifyMocks(fields);
|
||||||
public void testProcessClaims_rels() throws Exception {
|
}
|
||||||
final List<TypedField> fields = prepareMocks("claimsrel_resultset_entry.json");
|
|
||||||
|
|
||||||
final List<Oaf> list = app.processClaims(rs);
|
@Test
|
||||||
|
public void testProcessClaims_rels() throws Exception {
|
||||||
|
final List<TypedField> fields = prepareMocks("claimsrel_resultset_entry.json");
|
||||||
|
|
||||||
assertEquals(2, list.size());
|
final List<Oaf> list = app.processClaims(rs);
|
||||||
verifyMocks(fields);
|
|
||||||
}
|
|
||||||
|
|
||||||
private List<TypedField> prepareMocks(final String jsonFile) throws IOException, SQLException {
|
assertEquals(2, list.size());
|
||||||
final String json = IOUtils.toString(getClass().getResourceAsStream(jsonFile));
|
verifyMocks(fields);
|
||||||
final ObjectMapper mapper = new ObjectMapper();
|
|
||||||
final List<TypedField> list =
|
|
||||||
mapper.readValue(json, new TypeReference<List<TypedField>>() {});
|
|
||||||
|
|
||||||
for (final TypedField tf : list) {
|
assertTrue(list.get(0) instanceof Relation);
|
||||||
if (tf.getValue() == null) {
|
assertTrue(list.get(1) instanceof Relation);
|
||||||
switch (tf.getType()) {
|
|
||||||
case "not_used":
|
|
||||||
break;
|
|
||||||
case "boolean":
|
|
||||||
Mockito.when(rs.getBoolean(tf.getField())).thenReturn(false);
|
|
||||||
break;
|
|
||||||
case "date":
|
|
||||||
Mockito.when(rs.getDate(tf.getField())).thenReturn(null);
|
|
||||||
break;
|
|
||||||
case "int":
|
|
||||||
Mockito.when(rs.getInt(tf.getField())).thenReturn(0);
|
|
||||||
break;
|
|
||||||
case "double":
|
|
||||||
Mockito.when(rs.getDouble(tf.getField())).thenReturn(0.0);
|
|
||||||
break;
|
|
||||||
case "array":
|
|
||||||
Mockito.when(rs.getArray(tf.getField())).thenReturn(null);
|
|
||||||
break;
|
|
||||||
case "string":
|
|
||||||
default:
|
|
||||||
Mockito.when(rs.getString(tf.getField())).thenReturn(null);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
switch (tf.getType()) {
|
|
||||||
case "not_used":
|
|
||||||
break;
|
|
||||||
case "boolean":
|
|
||||||
Mockito.when(rs.getBoolean(tf.getField()))
|
|
||||||
.thenReturn(Boolean.parseBoolean(tf.getValue().toString()));
|
|
||||||
break;
|
|
||||||
case "date":
|
|
||||||
Mockito.when(rs.getDate(tf.getField()))
|
|
||||||
.thenReturn(Date.valueOf(tf.getValue().toString()));
|
|
||||||
break;
|
|
||||||
case "int":
|
|
||||||
Mockito.when(rs.getInt(tf.getField()))
|
|
||||||
.thenReturn(new Integer(tf.getValue().toString()));
|
|
||||||
break;
|
|
||||||
case "double":
|
|
||||||
Mockito.when(rs.getDouble(tf.getField()))
|
|
||||||
.thenReturn(new Double(tf.getValue().toString()));
|
|
||||||
break;
|
|
||||||
case "array":
|
|
||||||
final Array arr = Mockito.mock(Array.class);
|
|
||||||
final String[] values =
|
|
||||||
((List<?>) tf.getValue())
|
|
||||||
.stream()
|
|
||||||
.filter(Objects::nonNull)
|
|
||||||
.map(o -> o.toString())
|
|
||||||
.toArray(String[]::new);
|
|
||||||
|
|
||||||
Mockito.when(arr.getArray()).thenReturn(values);
|
final Relation r1 = (Relation) list.get(0);
|
||||||
Mockito.when(rs.getArray(tf.getField())).thenReturn(arr);
|
final Relation r2 = (Relation) list.get(1);
|
||||||
break;
|
|
||||||
case "string":
|
|
||||||
default:
|
|
||||||
Mockito.when(rs.getString(tf.getField()))
|
|
||||||
.thenReturn(tf.getValue().toString());
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return list;
|
assertValidId(r1.getSource());
|
||||||
}
|
assertValidId(r1.getTarget());
|
||||||
|
assertValidId(r2.getSource());
|
||||||
|
assertValidId(r2.getTarget());
|
||||||
|
assertNotNull(r1.getDataInfo());
|
||||||
|
assertNotNull(r2.getDataInfo());
|
||||||
|
assertNotNull(r1.getDataInfo().getTrust());
|
||||||
|
assertNotNull(r2.getDataInfo().getTrust());
|
||||||
|
assertEquals(r1.getSource(), r2.getTarget());
|
||||||
|
assertEquals(r2.getSource(), r1.getTarget());
|
||||||
|
assertTrue(StringUtils.isNotBlank(r1.getRelClass()));
|
||||||
|
assertTrue(StringUtils.isNotBlank(r2.getRelClass()));
|
||||||
|
assertTrue(StringUtils.isNotBlank(r1.getRelType()));
|
||||||
|
assertTrue(StringUtils.isNotBlank(r2.getRelType()));
|
||||||
|
|
||||||
private void verifyMocks(final List<TypedField> list) throws SQLException {
|
// System.out.println(new ObjectMapper().writeValueAsString(r1));
|
||||||
for (final TypedField tf : list) {
|
// System.out.println(new ObjectMapper().writeValueAsString(r2));
|
||||||
|
}
|
||||||
|
|
||||||
switch (tf.getType()) {
|
private List<TypedField> prepareMocks(final String jsonFile) throws IOException, SQLException {
|
||||||
case "not_used":
|
final String json = IOUtils.toString(getClass().getResourceAsStream(jsonFile));
|
||||||
break;
|
final ObjectMapper mapper = new ObjectMapper();
|
||||||
case "boolean":
|
final List<TypedField> list =
|
||||||
Mockito.verify(rs, Mockito.atLeastOnce()).getBoolean(tf.getField());
|
mapper.readValue(json, new TypeReference<List<TypedField>>() {});
|
||||||
break;
|
|
||||||
case "date":
|
|
||||||
Mockito.verify(rs, Mockito.atLeastOnce()).getDate(tf.getField());
|
|
||||||
break;
|
|
||||||
case "int":
|
|
||||||
Mockito.verify(rs, Mockito.atLeastOnce()).getInt(tf.getField());
|
|
||||||
break;
|
|
||||||
case "double":
|
|
||||||
Mockito.verify(rs, Mockito.atLeastOnce()).getDouble(tf.getField());
|
|
||||||
break;
|
|
||||||
case "array":
|
|
||||||
Mockito.verify(rs, Mockito.atLeastOnce()).getArray(tf.getField());
|
|
||||||
break;
|
|
||||||
case "string":
|
|
||||||
default:
|
|
||||||
Mockito.verify(rs, Mockito.atLeastOnce()).getString(tf.getField());
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void assertValidId(final String id) {
|
for (final TypedField tf : list) {
|
||||||
assertEquals(49, id.length());
|
if (tf.getValue() == null) {
|
||||||
assertEquals('|', id.charAt(2));
|
switch (tf.getType()) {
|
||||||
assertEquals(':', id.charAt(15));
|
case "not_used":
|
||||||
assertEquals(':', id.charAt(16));
|
break;
|
||||||
}
|
case "boolean":
|
||||||
|
Mockito.when(rs.getBoolean(tf.getField())).thenReturn(false);
|
||||||
|
break;
|
||||||
|
case "date":
|
||||||
|
Mockito.when(rs.getDate(tf.getField())).thenReturn(null);
|
||||||
|
break;
|
||||||
|
case "int":
|
||||||
|
Mockito.when(rs.getInt(tf.getField())).thenReturn(0);
|
||||||
|
break;
|
||||||
|
case "double":
|
||||||
|
Mockito.when(rs.getDouble(tf.getField())).thenReturn(0.0);
|
||||||
|
break;
|
||||||
|
case "array":
|
||||||
|
Mockito.when(rs.getArray(tf.getField())).thenReturn(null);
|
||||||
|
break;
|
||||||
|
case "string":
|
||||||
|
default:
|
||||||
|
Mockito.when(rs.getString(tf.getField())).thenReturn(null);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
switch (tf.getType()) {
|
||||||
|
case "not_used":
|
||||||
|
break;
|
||||||
|
case "boolean":
|
||||||
|
Mockito.when(rs.getBoolean(tf.getField()))
|
||||||
|
.thenReturn(Boolean.parseBoolean(tf.getValue().toString()));
|
||||||
|
break;
|
||||||
|
case "date":
|
||||||
|
Mockito.when(rs.getDate(tf.getField()))
|
||||||
|
.thenReturn(Date.valueOf(tf.getValue().toString()));
|
||||||
|
break;
|
||||||
|
case "int":
|
||||||
|
Mockito.when(rs.getInt(tf.getField()))
|
||||||
|
.thenReturn(new Integer(tf.getValue().toString()));
|
||||||
|
break;
|
||||||
|
case "double":
|
||||||
|
Mockito.when(rs.getDouble(tf.getField()))
|
||||||
|
.thenReturn(new Double(tf.getValue().toString()));
|
||||||
|
break;
|
||||||
|
case "array":
|
||||||
|
final Array arr = Mockito.mock(Array.class);
|
||||||
|
final String[] values =
|
||||||
|
((List<?>) tf.getValue())
|
||||||
|
.stream()
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.map(o -> o.toString())
|
||||||
|
.toArray(String[]::new);
|
||||||
|
|
||||||
private String getValueAsString(final String name, final List<TypedField> fields) {
|
Mockito.when(arr.getArray()).thenReturn(values);
|
||||||
return fields.stream()
|
Mockito.when(rs.getArray(tf.getField())).thenReturn(arr);
|
||||||
.filter(f -> f.getField().equals(name))
|
break;
|
||||||
.map(TypedField::getValue)
|
case "string":
|
||||||
.filter(Objects::nonNull)
|
default:
|
||||||
.map(o -> o.toString())
|
Mockito.when(rs.getString(tf.getField()))
|
||||||
.findFirst()
|
.thenReturn(tf.getValue().toString());
|
||||||
.get();
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void verifyMocks(final List<TypedField> list) throws SQLException {
|
||||||
|
for (final TypedField tf : list) {
|
||||||
|
|
||||||
|
switch (tf.getType()) {
|
||||||
|
case "not_used":
|
||||||
|
break;
|
||||||
|
case "boolean":
|
||||||
|
Mockito.verify(rs, Mockito.atLeastOnce()).getBoolean(tf.getField());
|
||||||
|
break;
|
||||||
|
case "date":
|
||||||
|
Mockito.verify(rs, Mockito.atLeastOnce()).getDate(tf.getField());
|
||||||
|
break;
|
||||||
|
case "int":
|
||||||
|
Mockito.verify(rs, Mockito.atLeastOnce()).getInt(tf.getField());
|
||||||
|
break;
|
||||||
|
case "double":
|
||||||
|
Mockito.verify(rs, Mockito.atLeastOnce()).getDouble(tf.getField());
|
||||||
|
break;
|
||||||
|
case "array":
|
||||||
|
Mockito.verify(rs, Mockito.atLeastOnce()).getArray(tf.getField());
|
||||||
|
break;
|
||||||
|
case "string":
|
||||||
|
default:
|
||||||
|
Mockito.verify(rs, Mockito.atLeastOnce()).getString(tf.getField());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void assertValidId(final String id) {
|
||||||
|
assertEquals(49, id.length());
|
||||||
|
assertEquals('|', id.charAt(2));
|
||||||
|
assertEquals(':', id.charAt(15));
|
||||||
|
assertEquals(':', id.charAt(16));
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getValueAsString(final String name, final List<TypedField> fields) {
|
||||||
|
return fields.stream()
|
||||||
|
.filter(f -> f.getField().equals(name))
|
||||||
|
.map(TypedField::getValue)
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.map(o -> o.toString())
|
||||||
|
.findFirst()
|
||||||
|
.get();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class TypedField {
|
class TypedField {
|
||||||
|
|
||||||
private String field;
|
private String field;
|
||||||
private String type;
|
private String type;
|
||||||
private Object value;
|
private Object value;
|
||||||
|
|
||||||
public String getField() {
|
public String getField() {
|
||||||
return field;
|
return field;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setField(final String field) {
|
public void setField(final String field) {
|
||||||
this.field = field;
|
this.field = field;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getType() {
|
public String getType() {
|
||||||
return type;
|
return type;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setType(final String type) {
|
public void setType(final String type) {
|
||||||
this.type = type;
|
this.type = type;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Object getValue() {
|
public Object getValue() {
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setValue(final Object value) {
|
public void setValue(final Object value) {
|
||||||
this.value = value;
|
this.value = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue