/**
  * This method will be invoked by test methods for each single subclass of {@link
  * DisplayableWrapper}.
  *
  * @param wrapper The instance under test
  */
 protected void tryListenerHandling(DisplayableWrapper wrapper) {
   int size = 10;
   for (int i = 0; i < size; i++) {
     wrapper.setCommandListener(
         new CommandListener() {
           public void commandAction(Command cmd, Displayable dsp) {}
         });
     assertEquals("Number of listeners", i + 1, wrapper.getAllCommandListeners().length);
   }
 }
  /**
   * This method will be invoked by test methods for each subclass of {@link DisplayableWrapper}.
   *
   * @param wrapper The instance under test
   */
  protected void tryCommandHandling(DisplayableWrapper wrapper) {
    int size = 10;
    for (int i = 0; i < size; i++) {
      addCommandToWrapper(wrapper, "Command" + i);
      assertEquals("Number of commands", i + 1, wrapper.getAllCommands().length);
    }

    for (int i = size - 1; i >= 0; i--) {
      wrapper.removeCommand(wrapper.getAllCommands()[i]);
      assertEquals("Number of commands", i, wrapper.getAllCommands().length);
    }
  }
  /** Verifies the addCommand method in the Wrapper classes. */
  protected void tryAddCommands(DisplayableWrapper wrapperUnderTest) {
    Command cmd = null;
    Command[] registeredCommands = null;

    registeredCommands = wrapperUnderTest.getAllCommands();
    assertEquals("The initial list of command must be empty.", 0, registeredCommands.length);

    cmd = addCommandToWrapper(wrapperUnderTest, "Action1");
    registeredCommands = wrapperUnderTest.getAllCommands();
    assertEquals("Command add failed.", 1, registeredCommands.length);
    assertEquals("Wrong reference in added command.", cmd, registeredCommands[0]);
  }
 /**
  * Create a new command and adds it to the specified wrapper.
  *
  * @param wrapper
  * @param action
  * @return Newly created command
  */
 private Command addCommandToWrapper(DisplayableWrapper wrapper, String action) {
   Command cmd = new Command(action, Command.ITEM, 1);
   wrapper.addCommand(cmd);
   return cmd;
 }