@Test
  public void testCanDuplicateSelection() {
    // Empty
    assertFalse(DuplicateCommandHandler.canDuplicate(new StructuredSelection()));

    List<Object> list = new ArrayList<Object>();

    list.add(IArchimateFactory.eINSTANCE.createAssignmentRelationship());
    assertFalse(DuplicateCommandHandler.canDuplicate(new StructuredSelection(list)));

    list.add(IArchimateFactory.eINSTANCE.createFolder());
    assertFalse(DuplicateCommandHandler.canDuplicate(new StructuredSelection(list)));

    list.add(IArchimateFactory.eINSTANCE.createBusinessActor());
    assertTrue(DuplicateCommandHandler.canDuplicate(new StructuredSelection(list)));

    list.add(IArchimateFactory.eINSTANCE.createDevice());
    assertTrue(DuplicateCommandHandler.canDuplicate(new StructuredSelection(list)));

    list.add(IArchimateFactory.eINSTANCE.createArchimateDiagramModel());
    assertTrue(DuplicateCommandHandler.canDuplicate(new StructuredSelection(list)));

    list.add(IArchimateFactory.eINSTANCE.createSketchModel());
    assertTrue(DuplicateCommandHandler.canDuplicate(new StructuredSelection(list)));
  }
  @Test
  public void testCanDuplicateObject() {
    // Null
    assertFalse(DuplicateCommandHandler.canDuplicate((Object) null));

    // Archimate Element
    assertTrue(
        DuplicateCommandHandler.canDuplicate(IArchimateFactory.eINSTANCE.createBusinessActor()));

    // Diagrams
    assertTrue(
        DuplicateCommandHandler.canDuplicate(
            IArchimateFactory.eINSTANCE.createArchimateDiagramModel()));
    assertTrue(
        DuplicateCommandHandler.canDuplicate(IArchimateFactory.eINSTANCE.createSketchModel()));

    // Relation
    assertFalse(
        DuplicateCommandHandler.canDuplicate(
            IArchimateFactory.eINSTANCE.createAssignmentRelationship()));

    // Folder
    assertFalse(DuplicateCommandHandler.canDuplicate(IArchimateFactory.eINSTANCE.createFolder()));
  }