@Test
  public void testSetTaskTitle() {
    Assertions.assertThat(task1.getTitle()).isEqualTo("Task1");
    Assertions.assertThat(task2.getTitle()).isEqualTo("Task2");

    GuiActionRunner.execute(
        new GuiTask() {
          @Override
          protected void executeInEDT() throws Throwable {
            task1.setTitle("NewTask1");
          }
        });
    robot().waitForIdle();
    Assertions.assertThat(task1.getTitle()).isEqualTo("NewTask1");
    Assertions.assertThat(task2.getTitle()).isEqualTo("Task2");

    GuiActionRunner.execute(
        new GuiTask() {
          @Override
          protected void executeInEDT() throws Throwable {
            task1.setTitle("NewTask11");
          }
        });
    robot().waitForIdle();

    Assertions.assertThat(task1.getTitle()).isEqualTo("NewTask11");
    Assertions.assertThat(task2.getTitle()).isEqualTo("Task2");

    GuiActionRunner.execute(
        new GuiTask() {
          @Override
          protected void executeInEDT() throws Throwable {
            task2.setTitle("NewTask2");
          }
        });
    robot().waitForIdle();

    Assertions.assertThat(task1.getTitle()).isEqualTo("NewTask11");
    Assertions.assertThat(task2.getTitle()).isEqualTo("NewTask2");

    Assertions.assertThat(task1.getTitle()).isEqualTo("NewTask11");
    Assertions.assertThat(task2.getTitle()).isEqualTo("NewTask2");
    Assertions.assertThat(taskCont1_1.getTitle()).isEqualTo("Context task 1 1");
    Assertions.assertThat(taskCont1_2.getTitle()).isEqualTo("Context task 1 2");
    Assertions.assertThat(taskCont1_3.getTitle()).isEqualTo("Context task 1 3");

    GuiActionRunner.execute(
        new GuiTask() {
          @Override
          protected void executeInEDT() throws Throwable {
            taskCont1_1.setTitle("New Context task 1 1");
          }
        });
    robot().waitForIdle();

    Assertions.assertThat(task1.getTitle()).isEqualTo("NewTask11");
    Assertions.assertThat(task2.getTitle()).isEqualTo("NewTask2");
    Assertions.assertThat(taskCont1_1.getTitle()).isEqualTo("New Context task 1 1");
    Assertions.assertThat(taskCont1_2.getTitle()).isEqualTo("Context task 1 2");
    Assertions.assertThat(taskCont1_3.getTitle()).isEqualTo("Context task 1 3");

    GuiActionRunner.execute(
        new GuiTask() {
          @Override
          protected void executeInEDT() throws Throwable {
            taskCont1_2.setTitle("New Context task 1 2");
          }
        });
    robot().waitForIdle();
    Assertions.assertThat(task1.getTitle()).isEqualTo("NewTask11");
    Assertions.assertThat(task2.getTitle()).isEqualTo("NewTask2");
    Assertions.assertThat(taskCont1_1.getTitle()).isEqualTo("New Context task 1 1");
    Assertions.assertThat(taskCont1_2.getTitle()).isEqualTo("New Context task 1 2");
    Assertions.assertThat(taskCont1_3.getTitle()).isEqualTo("Context task 1 3");

    GuiActionRunner.execute(
        new GuiTask() {
          @Override
          protected void executeInEDT() throws Throwable {
            taskCont1_3.setTitle("New Context task 1 3");
          }
        });
    robot().waitForIdle();
    Assertions.assertThat(task1.getTitle()).isEqualTo("NewTask11");
    Assertions.assertThat(task2.getTitle()).isEqualTo("NewTask2");
    Assertions.assertThat(taskCont1_1.getTitle()).isEqualTo("New Context task 1 1");
    Assertions.assertThat(taskCont1_2.getTitle()).isEqualTo("New Context task 1 2");
    Assertions.assertThat(taskCont1_3.getTitle()).isEqualTo("New Context task 1 3");
  }