package org.nextprot.api.core.dao; import static org.junit.Assert.assertEquals; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import org.junit.Test; import org.nextprot.api.commons.constants.AnnotationCategory; import org.nextprot.api.core.domain.annotation.Annotation; import org.nextprot.api.core.domain.annotation.AnnotationEvidence; import org.nextprot.api.core.domain.annotation.AnnotationIsoformSpecificity; import org.nextprot.api.core.domain.annotation.AnnotationProperty; import org.nextprot.api.core.test.base.CoreUnitBaseTest; import org.springframework.beans.factory.annotation.Autowired; import com.github.springtestdbunit.annotation.DatabaseOperation; import com.github.springtestdbunit.annotation.DatabaseSetup; /** * @author dteixeira */ @DatabaseSetup(value = "AnnotationMVCTest.xml", type = DatabaseOperation.INSERT) public class AnnotationDaoTest extends CoreUnitBaseTest { @Autowired AnnotationDAO annotationDAO; @Test public void shouldGetTheListOfAnnotations() { List<Annotation> annotations = annotationDAO.findAnnotationsByEntryName("NX_P12345"); assertEquals(annotations.size(), 5); long id = annotations.iterator().next().getAnnotationId(); List<Long> ids = Arrays.asList(id); List<AnnotationEvidence> evidences = annotationDAO.findAnnotationEvidencesByAnnotationIds(ids); List<AnnotationIsoformSpecificity> isoforms = annotationDAO.findAnnotationIsoformsByAnnotationIds(ids); List<AnnotationProperty> property = annotationDAO.findAnnotationPropertiesByAnnotationIds(ids); } @Test public void shouldTurnBiotechnologyAnnotationToMiscellaneous() { List<Annotation> annotations = annotationDAO.findAnnotationsByEntryName("NX_O43474"); assertEquals(annotations.get(0).getCategory(), AnnotationCategory.MISCELLANEOUS.getDbAnnotationTypeName()); assertEquals(annotations.size(),1); } @Test public void shouldTurnTransmembraneAnnotationToIntramembrane() { List<Annotation> annotations = annotationDAO.findAnnotationsByEntryName("NX_P51797"); assertEquals(annotations.get(0).getCategory(), AnnotationCategory.INTRAMEMBRANE_REGION.getDbAnnotationTypeName()); assertEquals(annotations.size(),1); } @Test public void shouldSplitTransitPeptideAnnotations() { List<Annotation> annotations = annotationDAO.findAnnotationsByEntryName("NX_Q6P4F2"); List<String> list = new ArrayList<String>(); for (Annotation an: annotations) list.add(an.getCategory()); assertEquals(list.contains(AnnotationCategory.MITOCHONDRIAL_TRANSIT_PEPTIDE.getDbAnnotationTypeName()), true); assertEquals(list.contains(AnnotationCategory.PEROXISOME_TRANSIT_PEPTIDE.getDbAnnotationTypeName()), true); assertEquals(annotations.size(),2); } }