@Test
public void testMoveBRLActionBlockTo() throws VetoException {

    final BRLActionColumn column1 = new BRLActionColumn();
    final BRLActionVariableColumn column1v0 = new BRLActionVariableColumn("$age",
                                                                          DataType.TYPE_NUMERIC_INTEGER,
                                                                          "Applicant",
                                                                          "age");
    column1v0.setHeader("age");
    final BRLActionVariableColumn column1v1 = new BRLActionVariableColumn("$name",
                                                                          DataType.TYPE_STRING,
                                                                          "Applicant",
                                                                          "name");
    column1v1.setHeader("name");
    final ActionInsertFactCol52 column2 = new ActionInsertFactCol52();
    column2.setHeader("country");
    column2.setBoundName("$a");
    column2.setFactType("Address");
    column2.setFactField("country");
    column1.getChildColumns().add(column1v0);
    column1.getChildColumns().add(column1v1);
    modelSynchronizer.appendColumn(column1);
    modelSynchronizer.appendColumn(column2);
    modelSynchronizer.appendRow();
    uiModel.setCellValue(0,
                         3,
                         new BaseGridCellValue<>(55));
    uiModel.setCellValue(0,
                         4,
                         new BaseGridCellValue<>("Smurf"));
    uiModel.setCellValue(0,
                         5,
                         new BaseGridCellValue<>("Canada"));
    assertEquals(2,
                 model.getActionCols().size());
    assertEquals(column1,
                 model.getActionCols().get(0));
    assertEquals(column2,
                 model.getActionCols().get(1));
    assertEquals(55,
                 model.getData().get(0).get(3).getNumericValue());
    assertEquals("Smurf",
                 model.getData().get(0).get(4).getStringValue());
    assertEquals("Canada",
                 model.getData().get(0).get(5).getStringValue());
    assertEquals(6,
                 uiModel.getColumns().size());
    final GridColumn<?> uiModelColumn1_1 = uiModel.getColumns().get(3);
    final GridColumn<?> uiModelColumn2_1 = uiModel.getColumns().get(4);
    final GridColumn<?> uiModelColumn3_1 = uiModel.getColumns().get(5);
    assertEquals("age",
                 uiModelColumn1_1.getHeaderMetaData().get(0).getTitle());
    assertEquals("name",
                 uiModelColumn2_1.getHeaderMetaData().get(0).getTitle());
    assertTrue(uiModelColumn1_1 instanceof IntegerUiColumn);
    assertTrue(uiModelColumn2_1 instanceof StringUiColumn);
    assertTrue(uiModelColumn3_1 instanceof StringUiColumn);
    assertEquals(3,
                 uiModelColumn1_1.getIndex());
    assertEquals(4,
                 uiModelColumn2_1.getIndex());
    assertEquals(5,
                 uiModelColumn3_1.getIndex());
    assertEquals(55,
                 uiModel.getRow(0).getCells().get(uiModelColumn1_1.getIndex()).getValue().getValue());
    assertEquals("Smurf",
                 uiModel.getRow(0).getCells().get(uiModelColumn2_1.getIndex()).getValue().getValue());
    assertEquals("Canada",
                 uiModel.getRow(0).getCells().get(uiModelColumn3_1.getIndex()).getValue().getValue());
    uiModel.moveColumnsTo(5,
                          new ArrayList<GridColumn<?>>() {{
                              add(uiModelColumn1_1);
                              add(uiModelColumn2_1);
                          }});
    assertEquals(2,
                 model.getActionCols().size());
    assertEquals(column2,
                 model.getActionCols().get(0));
    assertEquals(column1,
                 model.getActionCols().get(1));
    assertEquals("Canada",
                 model.getData().get(0).get(3).getStringValue());
    assertEquals(55,
                 model.getData().get(0).get(4).getNumericValue());
    assertEquals("Smurf",
                 model.getData().get(0).get(5).getStringValue());
    assertEquals(6,
                 uiModel.getColumns().size());
    final GridColumn<?> uiModelColumn1_2 = uiModel.getColumns().get(3);
    final GridColumn<?> uiModelColumn2_2 = uiModel.getColumns().get(4);
    final GridColumn<?> uiModelColumn3_2 = uiModel.getColumns().get(5);
    assertEquals("$a : Address",
                 uiModelColumn1_2.getHeaderMetaData().get(0).getTitle());
    assertEquals("age",
                 uiModelColumn2_2.getHeaderMetaData().get(0).getTitle());
    assertEquals("name",
                 uiModelColumn3_2.getHeaderMetaData().get(0).getTitle());
    assertTrue(uiModelColumn1_2 instanceof StringUiColumn);
    assertTrue(uiModelColumn2_2 instanceof IntegerUiColumn);
    assertTrue(uiModelColumn3_2 instanceof StringUiColumn);
    assertEquals(5,
                 uiModelColumn1_2.getIndex());
    assertEquals(3,
                 uiModelColumn2_2.getIndex());
    assertEquals(4,
                 uiModelColumn3_2.getIndex());
    assertEquals("Canada",
                 uiModel.getRow(0).getCells().get(uiModelColumn1_2.getIndex()).getValue().getValue());
    assertEquals(55,
                 uiModel.getRow(0).getCells().get(uiModelColumn2_2.getIndex()).getValue().getValue());
    assertEquals("Smurf",
                 uiModel.getRow(0).getCells().get(uiModelColumn3_2.getIndex()).getValue().getValue());
}