diff --git a/model-command/src/main/java/lcsb/mapviewer/commands/CopyCommand.java b/model-command/src/main/java/lcsb/mapviewer/commands/CopyCommand.java index 40f8d5d388804009b9500f1cbc1a979b75472c5a..5534be103fc088db2a762530ed2bd2738deead60 100644 --- a/model-command/src/main/java/lcsb/mapviewer/commands/CopyCommand.java +++ b/model-command/src/main/java/lcsb/mapviewer/commands/CopyCommand.java @@ -1,5 +1,6 @@ package lcsb.mapviewer.commands; +import java.util.Calendar; import java.util.Collection; import java.util.HashMap; import java.util.HashSet; @@ -256,6 +257,14 @@ public class CopyCommand extends NewModelCommand { for (MiriamData md : model.getMiriamData()) { result.addMiriamData(new MiriamData(md)); } + + if (model.getCreationDate()!=null) { + result.setCreationDate((Calendar)(model.getCreationDate().clone())); + } + + for (Calendar calendar: model.getModificationDates()) { + result.addModificationDate((Calendar) calendar.clone()); + } return result; } diff --git a/model-command/src/test/java/lcsb/mapviewer/commands/CopyCommandTest.java b/model-command/src/test/java/lcsb/mapviewer/commands/CopyCommandTest.java index 7b7cf8a4b313ade6fa2d55444278b2fde06b24c0..42b20d1a127910b9652c366514902685fc26935c 100644 --- a/model-command/src/test/java/lcsb/mapviewer/commands/CopyCommandTest.java +++ b/model-command/src/test/java/lcsb/mapviewer/commands/CopyCommandTest.java @@ -10,6 +10,7 @@ import java.awt.geom.Point2D; import java.io.ByteArrayInputStream; import java.io.InputStream; import java.nio.charset.StandardCharsets; +import java.util.Calendar; import org.junit.After; import org.junit.Before; @@ -431,5 +432,42 @@ public class CopyCommandTest extends CommandTestFunctions { } } + @Test + public void testCopyModelWithCreationDate() throws Exception { + try { + Model model = getModel(); + model.setCreationDate(Calendar.getInstance()); + + Model copy = new CopyCommand(model).execute(); + + ModelComparator comparator = new ModelComparator(); + + assertEquals(0, comparator.compare(copy, model)); + + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testCopyModelWithModificationDate() throws Exception { + try { + Model model = getModel(); + model.addModificationDate(Calendar.getInstance()); + + Model copy = new CopyCommand(model).execute(); + + ModelComparator comparator = new ModelComparator(); + + assertEquals(0, comparator.compare(copy, model)); + + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + }