@Test
  public void testAddAndRemoveChildrenEmitsEvent() {
    entity = app.createAndManageChild(EntitySpec.create(TestEntity.class));
    assertCollectionEquals(app.getChildren(), ImmutableList.of(entity));
    assertEqualsEventually(added, ImmutableList.of(entity));

    entity2 = app.createAndManageChild(EntitySpec.create(TestEntity.class));
    assertCollectionEquals(app.getChildren(), ImmutableList.of(entity, entity2));
    assertEqualsEventually(added, ImmutableList.of(entity, entity2));

    entity.removeChild(entity);
    assertCollectionEquals(app.getChildren(), ImmutableList.of(entity2));
    assertEqualsEventually(removed, ImmutableList.of(entity));

    Entities.unmanage(entity2);
    assertCollectionEquals(app.getChildren(), ImmutableList.of());
    assertEqualsEventually(removed, ImmutableList.of(entity, entity2));
  }