@Test public void extendedAttributes() { Anchor a = new Anchor(); a.setId("123"); a.setOffset(456.789); a.put("alignmentStatus", 50); assertEquals(new Integer(50), a.get("alignmentStatus")); }
@Test public void copyConstructor() { Anchor a = new Anchor("123", 456.789); // change offset to generate tracked original a.setOffset(123.456); // set copiable attribute a.put("copy", Boolean.TRUE); // set transient attribute a.put("@dontCopy", Boolean.TRUE); Anchor newA = new Anchor(a); assertNull("id not copied", newA.getId()); assertEquals("offset copied", new Double(123.456), newA.getOffset()); assertNull("originalOffset not copied", newA.get("originalOffset")); assertEquals("originalOffset not copied", new Double(123.456), newA.getOriginalOffset()); assertEquals("other attribute copied", Boolean.TRUE, newA.get("copy")); assertNull("transient attribute not copied", newA.get("@dontCopy")); }
@Test public void cloning() { Anchor a = new Anchor("123", 99.0, Constants.CONFIDENCE, Constants.CONFIDENCE_AUTOMATIC); a.put("foo", "foo"); Anchor c = (Anchor) a.clone(); assertEquals("123", c.getId()); assertEquals(Constants.CONFIDENCE_AUTOMATIC, c.get(Constants.CONFIDENCE)); assertEquals(new Double(99.0), c.getOffset()); assertFalse(c.containsKey("foo")); }
@Test public void basicAttributes() { // Default constructor Anchor a = new Anchor(); a.setId("123"); a.setOffset(456.789); assertEquals("123", a.getId()); assertEquals("123", a.get("id")); assertEquals(new Double(456.789), a.getOffset()); assertEquals(new Double(456.789), a.get("offset")); assertEquals("456.789", a.toString()); // Basic constructor a = new Anchor("123", 456.789); assertEquals("123", a.getId()); assertEquals("123", a.get("id")); assertEquals(new Double(456.789), a.getOffset()); assertEquals(new Double(456.789), a.get("offset")); assertEquals("456.789", a.toString()); }
@Test public void changeTracking() { Anchor a = new Anchor(); a.setId("123"); a.setOffset(456.789); a.put("foo", "bar"); assertEquals(new Double(456.789), a.getOffset()); assertEquals("Offset and original are the same", a.getOriginalOffset(), a.getOffset()); assertEquals(Change.Operation.NoChange, a.getChange()); a.put("foo", "foo"); assertEquals("Only offset affects change:", Change.Operation.NoChange, a.getChange()); a.setOffset(123.456); assertEquals(new Double(123.456), a.getOffset()); assertEquals( "Original offset remembers first offset:", new Double(456.789), a.get("originalOffset")); assertEquals( "Original offset remembers first offset:", new Double(456.789), a.getOriginalOffset()); assertEquals(Change.Operation.Update, a.getChange()); a.setOffset(456.123); assertEquals(new Double(456.123), a.getOffset()); assertEquals("Original offset only set once:", new Double(456.789), a.getOriginalOffset()); assertEquals(Change.Operation.Update, a.getChange()); a.rollback(); assertEquals(new Double(456.789), a.getOffset()); assertEquals("Offset and original are the same", a.getOriginalOffset(), a.getOffset()); assertEquals(Change.Operation.NoChange, a.getChange()); a.destroy(); assertEquals(Change.Operation.Destroy, a.getChange()); a.rollback(); assertEquals(Change.Operation.NoChange, a.getChange()); a.create(); assertEquals(Change.Operation.Create, a.getChange()); a.rollback(); assertEquals("Create cannot be rolled back:", Change.Operation.Create, a.getChange()); }