From d1af413534960b98ccbcb07cef46b4e51f38ea0f Mon Sep 17 00:00:00 2001 From: cramakri <cramakri> Date: Mon, 18 Jul 2011 08:35:35 +0000 Subject: [PATCH] LMS-2382 Added new test. SVN: 22169 --- .../api/v1/impl/RollbackStackTest.java | 72 ++++++++++++++++++- 1 file changed, 71 insertions(+), 1 deletion(-) diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/RollbackStackTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/RollbackStackTest.java index 1e30e837830..003d4370632 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/RollbackStackTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/RollbackStackTest.java @@ -200,6 +200,32 @@ public class RollbackStackTest extends AbstractTestWithRollbackStack assertEquals(TrackingCommandStatus.ROLLEDBACK, cmdN.status); } + @Test + public void testIncreasingSerializedCommandSize() + { + // Create some commands + // Add them to the stack + for (int i = 0; i < 129; ++i) + { + StringTrackingCommand cmd = new StringTrackingCommand(createStringOfLength(i)); + rollbackStack.pushAndExecuteCommand(cmd); + assertEquals(TrackingCommandStatus.EXECUTED, cmd.status); + } + + // Rollback and check that the rollback occurred correctly + rollbackStack.rollbackAll(); + } + + private String createStringOfLength(int length) + { + String item = ""; + for (int j = 0; j < length; ++j) + { + item += "1"; + } + return item; + } + private static enum TrackingCommandStatus { PENDING_EXECUTE, EXECUTED, ROLLEDBACK @@ -209,7 +235,7 @@ public class RollbackStackTest extends AbstractTestWithRollbackStack { private static final long serialVersionUID = 1L; - private TrackingCommandStatus status = TrackingCommandStatus.PENDING_EXECUTE; + protected TrackingCommandStatus status = TrackingCommandStatus.PENDING_EXECUTE; private final TrackingCommand predecessor; @@ -291,5 +317,49 @@ public class RollbackStackTest extends AbstractTestWithRollbackStack return true; } + @Override + public String toString() + { + return "EqualityTrackingCommand [id=" + id + ",status=" + status + "]"; + } + + } + + private static class StringTrackingCommand extends TrackingCommand + { + private static final long serialVersionUID = 1L; + + private final String text; + + private StringTrackingCommand(String text) + { + super(); + this.text = text; + } + + @Override + public int hashCode() + { + return text.hashCode(); + } + + @Override + public boolean equals(Object obj) + { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + StringTrackingCommand other = (StringTrackingCommand) obj; + return text.equals(other.text); + } + + @Override + public String toString() + { + return "StringTrackingCommand [text=" + text + ", status=" + status + "]"; + } } } -- GitLab