package org.nextprot.api.core.service; import org.dbunit.dataset.DataSetException; import org.junit.Before; import org.junit.Ignore; import org.junit.Test; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.nextprot.api.core.dao.DbXrefDao; import org.nextprot.api.core.domain.DbXref; import org.nextprot.api.core.service.impl.DbXrefServiceImpl; import java.io.FileNotFoundException; import java.util.ArrayList; import java.util.List; import static org.junit.Assert.assertEquals; import static org.mockito.Matchers.anyListOf; import static org.mockito.Matchers.anyString; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; //@DatabaseSetup(value = "DbXrefServiceTest.xml", type = DatabaseOperation.INSERT) public class DbXrefServiceTest { private FlatXmlDataSetExtractor flatXmlDataSetExtractor; @InjectMocks private DbXrefService xrefService = new DbXrefServiceImpl(); @Mock private DbXrefDao dbXRefDao; @Mock private PeptideNamesService peptideNamesService; @Mock private AntibodyResourceIdsService antibodyResourceIdsService; @Before public void init() throws FileNotFoundException, DataSetException { flatXmlDataSetExtractor = new FlatXmlDataSetExtractor(AnnotationServiceTest.class.getResource("DbXrefServiceTest.xml").getFile()); MockitoAnnotations.initMocks(this); } @Test public void verifyFindDbXrefsByPublicationIds() { xrefService.findDbXRefByPublicationId(100L); verify(dbXRefDao).findDbXRefsByPublicationId(100L); } @Ignore @Test public void testFindDbXrefsByPublicationIds() { List<DbXref> xrefs = this.xrefService.findDbXRefByPublicationId(100L); assertEquals(1, xrefs.size()); assertEquals("15923218", xrefs.get(0).getAccession()); } @Test public void verifyFindDbXrefsByMaster() { xrefService.findDbXrefsByMaster("NX_P12345"); verify(peptideNamesService).findAllPeptideNamesByMasterId(anyString()); verify(dbXRefDao, times(0)).findPeptideXrefs(anyListOf(String.class)); verify(dbXRefDao).findEntryAnnotationsEvidenceXrefs("NX_P12345"); verify(dbXRefDao).findEntryAttachedXrefs("NX_P12345"); verify(dbXRefDao).findEntryIdentifierXrefs("NX_P12345"); verify(dbXRefDao).findEntryInteractionXrefs("NX_P12345"); } @Ignore @Test public void testFindDbXrefsByMaster() { List<DbXref> xrefs = this.xrefService.findDbXrefsByMaster("NX_P12345"); assertEquals(1, xrefs.size()); assertEquals(1, xrefs.get(0).getProperties().size()); assertEquals("money", xrefs.get(0).getProperties().get(0).getName()); } private static List<DbXref> extractDbXRefs(long id, FlatXmlDataSetExtractor extractor) throws DataSetException { FlatXmlDataSetExtractor.Factory<DbXref> factory = new FlatXmlDataSetExtractor.Factory<DbXref>() { @Override public DbXref create() { return new DbXref(); } @Override public void setField(DbXref dbxref, String key, String value) { switch (key) { case "accession": dbxref.setAccession(value); break; case "resource_id": dbxref.setDbXrefId(Long.valueOf(value)); break; } } }; List<DbXref> data = new ArrayList<>(); for (DbXref xref : extractor.extractDataList("db_xrefs", factory, "accession", "resource_id")) { if (xref.getDbXrefId() == id) data.add(xref); } return data; } }