/**
   * Test moving a folder around another folder
   *
   * @throws QueryException
   */
  @Test
  public void testMoveFolderAroundFolder() throws QueryException {

    // Create a folder with several page
    IQueryExp query =
        hSash(
            folder("f1", page("p1"), page("p2"), page("p3")), folder("f2", page("p4"), page("p5")));
    createModel(query);
    // Check creation
    modelQuery.assertConform(query);

    // get models (from diModels, and factory for sashModel)
    Map<String, Object> modelElements = modelQuery.queryModel(query);
    SashContainerModels sashModels = new SashContainerModels(diContentProvider, modelElements);

    // do action : move a folder
    // -1 mean all pages
    contentProvider.createFolder(
        sashModels.getFolder("f2"), -1, sashModels.getFolder("f1"), SWT.UP);

    // check result
    IQueryExp expectedModel =
        vSash(folder(page("p4"), page("p5")), folder("f1", page("p1"), page("p2"), page("p3")));
    modelQuery.assertConform(expectedModel);
  }
  /**
   * Test moving a page inside the same folder
   *
   * @throws QueryException
   */
  @Test
  public void testMovePageInsideFolder() throws QueryException {

    // Create a folder with several page
    IQueryExp query = folder("f1", page("p1"), page("p2"), page("p3"));
    createModel(query);
    // Check creation
    modelQuery.assertConform(query);

    // get models (from diModels, and factory for sashModel)
    Map<String, Object> modelElements = modelQuery.queryModel(query);
    SashContainerModels sashModels = new SashContainerModels(diContentProvider, modelElements);

    // do action : move a page
    contentProvider.movePage(sashModels.getFolder("f1"), 1, 0);

    // check result
    IQueryExp expectedModel = folder("f1", page("p2"), page("p1"), page("p3"));
    modelQuery.assertConform(expectedModel);

    // do action : move a page
    contentProvider.movePage(sashModels.getFolder("f1"), 0, 2);

    // check result
    expectedModel = folder("f1", page("p1"), page("p3"), page("p2"));
    modelQuery.assertConform(expectedModel);

    // do action : move a page
    contentProvider.movePage(sashModels.getFolder("f1"), 2, 0);

    // check result
    expectedModel = folder("f1", page("p2"), page("p1"), page("p3"));
    modelQuery.assertConform(expectedModel);
  }