/** Test list sync */
  @Test
  public void testSyncWhenViewIsRemoved() {

    // Create variables
    NotationAndUmlModelsFactory factory = new NotationAndUmlModelsFactory();
    Diagram diagram1 = factory.newDiagram();

    int expectedSize = 3;
    List<View> list = new ArrayList<View>();
    DiagramViewToListSynchronizer listSynchronizer =
        new DiagramViewToListSynchronizer(diagram1, list);

    Class C1 = factory.newClass(diagram1, "C1");
    View shape1 = factory.lookupViewFor(diagram1, C1);
    Class C2 = factory.newClass(diagram1, "C2");
    View shape2 = factory.lookupViewFor(diagram1, C2);
    Class C3 = factory.newClass(diagram1, "C3");
    View shape3 = factory.lookupViewFor(diagram1, C3);

    // assert before
    assertEquals("listSize", expectedSize, list.size());
    assertTrue("list contain expected view", list.contains(shape2));

    // Action
    factory.remove(diagram1, C2);
    // assert
    assertEquals("listSize", expectedSize - 1, list.size());
    assertFalse("list contain expected view", list.contains(shape2));
  }
  /**
   * Test method for {@link
   * org.eclipse.papyrus.layers.stackmodel.util.NotationAndUmlModelsFactory#remove(org.eclipse.gmf.runtime.notation.Diagram,
   * java.lang.String)}.
   */
  @Test
  public void testRemove() {
    NotationAndUmlModelsFactory factory = new NotationAndUmlModelsFactory();

    Diagram diagram1 = factory.newDiagram();
    Class c1 = factory.newClass(diagram1, "C1");
    Class c2 = factory.newClass(diagram1, "C2");

    // Lookup Shape
    View shape1 = factory.lookupViewFor(diagram1, c1);
    View shape2 = factory.lookupViewFor(diagram1, c2);

    // Action
    View removedShape = factory.remove(diagram1, c1);
    View lookupResult = factory.lookupViewFor(diagram1, c1);

    // Assert
    assertNotNull("object removed found", removedShape);
    assertSame("Right object removed", shape1, removedShape);

    assertNull("lookupResult null after remove", lookupResult);
  }