package org.nextprot.api.core.domain; import org.junit.Assert; import org.junit.Test; import org.nextprot.api.core.domain.annotation.Annotation; import org.nextprot.api.core.domain.annotation.AnnotationEvidence; import org.nextprot.api.core.domain.annotation.AnnotationEvidenceProperty; import java.util.ArrayList; import java.util.List; public class AnnotationTest { @Test public void testOneHigh() { Annotation a = new Annotation(); List<AnnotationEvidence> evidences = new ArrayList<>(); evidences.add(buildEvidence("high")); a.setEvidences(evidences); Assert.assertTrue(a.isExpressionLevelDetected().isPresent()); } @Test public void testTwoHigh() { Annotation a = new Annotation(); List<AnnotationEvidence> evidences = new ArrayList<>(); evidences.add(buildEvidence("high")); evidences.add(buildEvidence("high")); a.setEvidences(evidences); Assert.assertTrue(a.isExpressionLevelDetected().isPresent()); Assert.assertTrue(a.isExpressionLevelDetected().get()); } @Test public void testHighAndLow() { Annotation a = new Annotation(); List<AnnotationEvidence> evidences = new ArrayList<>(); evidences.add(buildEvidence("high")); evidences.add(buildEvidence("low")); a.setEvidences(evidences); Assert.assertTrue(a.isExpressionLevelDetected().isPresent()); Assert.assertTrue(a.isExpressionLevelDetected().get()); } @Test public void testHighAndPositive() { Annotation a = new Annotation(); List<AnnotationEvidence> evidences = new ArrayList<>(); evidences.add(buildEvidence("high")); evidences.add(buildEvidence("positive")); a.setEvidences(evidences); Assert.assertTrue(a.isExpressionLevelDetected().isPresent()); Assert.assertTrue(a.isExpressionLevelDetected().get()); } @Test public void testOneNegative() { Annotation a = new Annotation(); List<AnnotationEvidence> evidences = new ArrayList<>(); evidences.add(buildEvidence("negative")); a.setEvidences(evidences); Assert.assertTrue(a.isExpressionLevelDetected().isPresent()); Assert.assertTrue(!a.isExpressionLevelDetected().get()); } @Test public void testTwoNegative() { Annotation a = new Annotation(); List<AnnotationEvidence> evidences = new ArrayList<>(); evidences.add(buildEvidence("negative")); evidences.add(buildEvidence("negative")); a.setEvidences(evidences); Assert.assertTrue(a.isExpressionLevelDetected().isPresent()); Assert.assertTrue(!a.isExpressionLevelDetected().get()); } /* * at least one detected, low, high or medium => detected ! */ @Test public void testNegativeAndPositive() { Annotation a = new Annotation(); List<AnnotationEvidence> evidences = new ArrayList<>(); evidences.add(buildEvidence("negative")); evidences.add(buildEvidence("positive")); a.setEvidences(evidences); Assert.assertTrue(a.isExpressionLevelDetected().isPresent()); Assert.assertTrue(a.isExpressionLevelDetected().get()); } /* * occurs for every annotation not being a :ExpressionProfile */ @Test public void testNoExpressionLevel() { Annotation a = new Annotation(); List<AnnotationEvidence> evidences = new ArrayList<>(); evidences.add(new AnnotationEvidence()); a.setEvidences(evidences); Assert.assertTrue(!a.isExpressionLevelDetected().isPresent()); } /* * this case seems to occur (in dev at least) */ @Test public void testNoEvidence() { Annotation a = new Annotation(); List<AnnotationEvidence> evidences = new ArrayList<>(); a.setEvidences(evidences); Assert.assertTrue(!a.isExpressionLevelDetected().isPresent()); } @Test public void testEmptyExpressionLevel() { Annotation a = new Annotation(); List<AnnotationEvidence> evidences = new ArrayList<>(); evidences.add(buildEvidence("")); a.setEvidences(evidences); Assert.assertTrue(a.isExpressionLevelDetected().isPresent()); Assert.assertTrue(!a.isExpressionLevelDetected().get()); } @Test public void testOneNotDetected() { Annotation a = new Annotation(); List<AnnotationEvidence> evidences = new ArrayList<>(); evidences.add(buildEvidence("not detected")); a.setEvidences(evidences); Assert.assertTrue(a.isExpressionLevelDetected().isPresent()); Assert.assertTrue(!a.isExpressionLevelDetected().get()); } /* * at least one detected, low, high or medium => detected ! */ @Test public void testNotDetectedAndPositive() { Annotation a = new Annotation(); List<AnnotationEvidence> evidences = new ArrayList<>(); evidences.add(buildEvidence("not detected")); evidences.add(buildEvidence("positive")); a.setEvidences(evidences); Assert.assertTrue(a.isExpressionLevelDetected().isPresent()); Assert.assertTrue(a.isExpressionLevelDetected().get()); } private AnnotationEvidence buildEvidence(String level) { AnnotationEvidenceProperty p = new AnnotationEvidenceProperty(); p.setPropertyName("expressionLevel"); p.setPropertyValue(level); List<AnnotationEvidenceProperty> props = new ArrayList<>(); props.add(p); AnnotationEvidence ev = new AnnotationEvidence(); ev.setProperties(props); return ev; } }