package org.nextprot.api.core.dao;
import com.github.springtestdbunit.annotation.DatabaseOperation;
import com.github.springtestdbunit.annotation.DatabaseSetup;
import org.junit.Assert;
import org.junit.Test;
import org.nextprot.api.commons.constants.AnnotationCategory;
import org.nextprot.api.commons.constants.IdentifierOffset;
import org.nextprot.api.core.domain.annotation.Annotation;
import org.nextprot.api.core.test.base.CoreUnitBaseTest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.transaction.TransactionConfiguration;
import java.util.List;
@DatabaseSetup(value = "AntibodyMappingDaoTest.xml", type = DatabaseOperation.INSERT)
@TransactionConfiguration(defaultRollback = true)
public class AntibodyMappingDaoTest extends CoreUnitBaseTest {
@Autowired
private AntibodyMappingDao antibodyMappingDao;
private static Annotation getAnnotationByUniqueName(String uniqueName, List<Annotation> annotations) {
for(Annotation a : annotations){
if(a.getUniqueName().equals(uniqueName)){
return a;
}
}
return null;
}
@Test
public void testFindAntibodiesById() {
List<Annotation> annotations = this.antibodyMappingDao.findAntibodyMappingAnnotationsById(636535L);
Assert.assertEquals(2, annotations.size());
long tmpId = 4049518L;
long annotId = tmpId + IdentifierOffset.ANTIBODY_MAPPING_ANNOTATION_OFFSET;
long evidenceId = tmpId + IdentifierOffset.ANTIBODY_MAPPING_ANNOTATION_EVIDENCE_OFFSET;
//String annotUniqueName = "AN_"+resultSet.getString("resource_ac")+"_"+annotId; // AN_HPA039796_000890
String annotUniqueName = "AN_HPA036302_" + annotId; // old = AN_HPA036302_4049518"
Annotation annotation = getAnnotationByUniqueName(annotUniqueName, annotations);
Assert.assertEquals(AnnotationCategory.ANTIBODY_MAPPING, annotation.getAPICategory());
Assert.assertEquals(annotUniqueName, annotation.getUniqueName());
Assert.assertEquals("GOLD", annotation.getQualityQualifier());
Assert.assertEquals(annotId, annotation.getAnnotationId());
Assert.assertEquals(1, annotation.getEvidences().size());
Assert.assertEquals(annotId, annotation.getEvidences().get(0).getAnnotationId());
Assert.assertEquals(17201575, annotation.getEvidences().get(0).getResourceId());
Assert.assertEquals("database", annotation.getEvidences().get(0).getResourceType());
Assert.assertEquals("Human protein atlas", annotation.getEvidences().get(0).getAssignedBy());
Assert.assertEquals("HPA", annotation.getEvidences().get(0).getResourceDb());
Assert.assertEquals("evidence", annotation.getEvidences().get(0).getResourceAssociationType());
Assert.assertEquals("ECO:0000154", annotation.getEvidences().get(0).getEvidenceCodeAC());
Assert.assertTrue(!annotation.getEvidences().get(0).isNegativeEvidence());
Assert.assertEquals(2, annotation.getTargetingIsoformsMap().size());
Assert.assertTrue(annotation.getTargetingIsoformsMap().containsKey("NX_P06213-1"));
Assert.assertTrue(annotation.getTargetingIsoformsMap().containsKey("NX_P06213-2"));
Assert.assertEquals(608, annotation.getTargetingIsoformsMap().get("NX_P06213-1").getFirstPosition().intValue());
Assert.assertEquals(608, annotation.getTargetingIsoformsMap().get("NX_P06213-2").getFirstPosition().intValue());
Assert.assertEquals(742, annotation.getTargetingIsoformsMap().get("NX_P06213-1").getLastPosition().intValue());
Assert.assertEquals(742, annotation.getTargetingIsoformsMap().get("NX_P06213-2").getLastPosition().intValue());
tmpId = 9547085;
annotId = tmpId + IdentifierOffset.ANTIBODY_MAPPING_ANNOTATION_OFFSET;
evidenceId = tmpId + IdentifierOffset.ANTIBODY_MAPPING_ANNOTATION_EVIDENCE_OFFSET;
annotUniqueName = "AN_HPA036303_" + annotId;
annotation = getAnnotationByUniqueName(annotUniqueName, annotations); // old "AN_HPA036303_9547085"
Assert.assertEquals(AnnotationCategory.ANTIBODY_MAPPING, annotation.getAPICategory());
Assert.assertEquals(annotUniqueName, annotation.getUniqueName());
Assert.assertEquals("GOLD", annotation.getQualityQualifier());
Assert.assertEquals(annotId, annotation.getAnnotationId());
Assert.assertEquals(1, annotation.getEvidences().size());
Assert.assertEquals(annotId, annotation.getEvidences().get(0).getAnnotationId());
Assert.assertEquals(39235676, annotation.getEvidences().get(0).getResourceId());
Assert.assertEquals("database", annotation.getEvidences().get(0).getResourceType());
Assert.assertEquals("HPA", annotation.getEvidences().get(0).getResourceDb());
Assert.assertEquals("Human protein atlas", annotation.getEvidences().get(0).getAssignedBy());
Assert.assertEquals("evidence", annotation.getEvidences().get(0).getResourceAssociationType());
Assert.assertEquals("ECO:0000154", annotation.getEvidences().get(0).getEvidenceCodeAC());
Assert.assertTrue(!annotation.getEvidences().get(0).isNegativeEvidence());
Assert.assertEquals(2, annotation.getTargetingIsoformsMap().size());
Assert.assertTrue(annotation.getTargetingIsoformsMap().containsKey("NX_P06213-1"));
Assert.assertTrue(annotation.getTargetingIsoformsMap().containsKey("NX_P06213-2"));
Assert.assertEquals(246, annotation.getTargetingIsoformsMap().get("NX_P06213-1").getFirstPosition().intValue());
Assert.assertEquals(246, annotation.getTargetingIsoformsMap().get("NX_P06213-2").getFirstPosition().intValue());
Assert.assertEquals(326, annotation.getTargetingIsoformsMap().get("NX_P06213-1").getLastPosition().intValue());
Assert.assertEquals(326, annotation.getTargetingIsoformsMap().get("NX_P06213-2").getLastPosition().intValue());
}
}