+ @Test(groups = {"Functional"})
+ public void testUpdateFromOrAddAnnotation()
+ {
+ SequenceI seq = new Sequence("seq1", "FRMLPSRT-A--L-");
+ AlignmentI alignment = new Alignment(new SequenceI[] { seq });
+
+ AlignmentAnnotation ala = alignment.findOrCreateAnnotation(
+ "Temperature Factor", null, false, seq, null);
+
+ assertNotNull(ala);
+ assertEquals(seq, ala.sequenceRef);
+ assertEquals("", ala.getCalcId());
+
+ // Assuming findOrCreateForNullCalcId passed then this should work
+
+ assertTrue(ala == alignment.updateFromOrCopyAnnotation(ala));
+ AlignmentAnnotation updatedAla = new AlignmentAnnotation(ala);
+ updatedAla.description = "updated Description";
+ Assert.assertTrue(
+ ala == alignment.updateFromOrCopyAnnotation(updatedAla));
+ Assert.assertEquals(ala.toString(), updatedAla.toString());
+ updatedAla.calcId = "newCalcId";
+ AlignmentAnnotation newUpdatedAla = alignment
+ .updateFromOrCopyAnnotation(updatedAla);
+ Assert.assertTrue(updatedAla != newUpdatedAla);
+ Assert.assertEquals(updatedAla.toString(), newUpdatedAla.toString());
+ }
+