@Test
  @DisplayName("Tests if only one drawer can be displayed at the same time")
  void showDrawerOnlyOne() {
    robot.interact(() -> {
      // given
      VBox drawer1 = spy(VBox.class);
      when(drawer1.getWidth()).thenReturn(100d);
      when(drawer1.getHeight()).thenReturn(100d);
      VBox drawer2 = new VBox();
      VBox drawer3 = new VBox();
      assertTrue(workbench.getBlockingOverlaysShown().isEmpty());
      assertTrue(workbench.getNonBlockingOverlaysShown().isEmpty());
      assertNull(workbench.getDrawerShown());
      assertNull(workbench.getDrawerSideShown());

      // when: showing two different drawers subsequently on the same side
      workbench.showDrawer(drawer1, Side.LEFT);
      workbench.showDrawer(drawer2, Side.LEFT);

      // then: only second one is showing
      assertTrue(workbench.getBlockingOverlaysShown().isEmpty());
      assertSame(1, workbench.getNonBlockingOverlaysShown().size());
      assertNotNull(workbench.getDrawerShown());
      assertSame(drawer2, getShowingOverlay());
      assertSame(drawer2, workbench.getDrawerShown());
      assertEquals(Side.LEFT, workbench.getDrawerSideShown());

      // when: showing drawer on a different side while another drawer is currently showing
      workbench.showDrawer(drawer3, Side.BOTTOM);

      // then: only new drawer is showing
      assertTrue(workbench.getBlockingOverlaysShown().isEmpty());
      assertSame(1, workbench.getNonBlockingOverlaysShown().size());
      assertNotNull(workbench.getDrawerShown());
      assertSame(drawer3, getShowingOverlay());
      assertSame(drawer3, workbench.getDrawerShown());
      assertEquals(Side.BOTTOM, workbench.getDrawerSideShown());
      assertSame(Pos.BOTTOM_LEFT, StackPane.getAlignment(drawer3)); // verify correct position

      // when: show first drawer again
      workbench.showDrawer(drawer1, Side.LEFT);

      // then: only drawer1 is showing
      assertTrue(workbench.getBlockingOverlaysShown().isEmpty());
      assertSame(1, workbench.getNonBlockingOverlaysShown().size());
      assertNotNull(workbench.getDrawerShown());
      assertSame(drawer1, getShowingOverlay());
      assertSame(drawer1, workbench.getDrawerShown());
      assertEquals(Side.LEFT, workbench.getDrawerSideShown());
    });
  }
Internal testing method which returns the currently shown overlay.
workbenchfx-core/src/test/java/com/dlsc/workbenchfx/WorkbenchTest.java