X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fdatamodel%2FSequenceTest.java;h=2b44261cd4d7b0155fbf68ffc37cd904ebfecfae;hb=27aed96d1aeae689818bd0a0028553186e3c3839;hp=6d071130c23182cb703dcbad0734ee6ed6b3074b;hpb=0bf5983f8a17fdfecb2cac649e3650763a8973ce;p=jalview.git diff --git a/test/jalview/datamodel/SequenceTest.java b/test/jalview/datamodel/SequenceTest.java index 6d07113..2b44261 100644 --- a/test/jalview/datamodel/SequenceTest.java +++ b/test/jalview/datamodel/SequenceTest.java @@ -20,6 +20,8 @@ */ package jalview.datamodel; +import java.util.Locale; + import static org.testng.AssertJUnit.assertEquals; import static org.testng.AssertJUnit.assertFalse; import static org.testng.AssertJUnit.assertNotNull; @@ -192,6 +194,35 @@ public class SequenceTest assertTrue(seq.getAlignmentAnnotations(null, null).isEmpty()); } + + @Test(groups = { "Functional" }) + public void testGetAlignmentAnnotations_forCalcIdLabelAndDescription() + { + addAnnotation("label1", "desc1", "calcId1", 1f); + AlignmentAnnotation ann2 = addAnnotation("label2", "desc2", "calcId2", + 1f); + addAnnotation("label2", "desc3", "calcId3", 1f); + AlignmentAnnotation ann4 = addAnnotation("label2", "desc3", "calcId2", + 1f); + addAnnotation("label5", "desc3", null, 1f); + addAnnotation(null, "desc3", "calcId3", 1f); + + List anns = seq.getAlignmentAnnotations("calcId2", + "label2", "desc3"); + assertEquals(1, anns.size()); + assertSame(ann4, anns.get(0)); + /** + * null matching should fail + */ + assertTrue(seq.getAlignmentAnnotations("calcId3", "label2",null).isEmpty()); + + assertTrue(seq.getAlignmentAnnotations("calcId2", "label3",null).isEmpty()); + assertTrue(seq.getAlignmentAnnotations("calcId3", "label5",null).isEmpty()); + assertTrue(seq.getAlignmentAnnotations("calcId2", null,null).isEmpty()); + assertTrue(seq.getAlignmentAnnotations(null, "label3",null).isEmpty()); + assertTrue(seq.getAlignmentAnnotations(null, null,null).isEmpty()); + } + /** * Tests for addAlignmentAnnotation. Note this method has the side-effect of * setting the sequenceRef on the annotation. Adding the same annotation twice @@ -783,7 +814,7 @@ public class SequenceTest } catch (IllegalArgumentException e) { // TODO Jalview error/exception class for raising implementation errors - assertTrue(e.getMessage().toLowerCase() + assertTrue(e.getMessage().toLowerCase(Locale.ROOT) .contains("implementation error")); } assertTrue(sq.getSequenceFeatures().isEmpty()); @@ -1431,6 +1462,21 @@ public class SequenceTest seq.addPDBId(pdbe5); assertEquals(4, seq.getAllPDBEntries().size()); assertSame(pdbe5, seq.getAllPDBEntries().get(3)); + + // add with a fake pdbid + // (models don't have an embedded ID) + String realId = "RealIDQ"; + PDBEntry pdbe6 = new PDBEntry(realId,null,Type.PDB,"real/localpath"); + PDBEntry pdbe7 = new PDBEntry("RealID/real/localpath","C",Type.MMCIF,"real/localpath"); + pdbe7.setFakedPDBId(true); + seq.addPDBId(pdbe6); + assertEquals(5,seq.getAllPDBEntries().size()); + seq.addPDBId(pdbe7); + assertEquals(5,seq.getAllPDBEntries().size()); + assertFalse(pdbe6.fakedPDBId()); + assertSame(pdbe6,seq.getAllPDBEntries().get(4)); + assertEquals("C",pdbe6.getChainCode()); + assertEquals(realId, pdbe6.getId()); } @Test(