/**
   * Verifica il comportamento della classe nel momento in cui è richiesto di recuperare il prossimo
   * id disponibile per un inserimento nella tabella Messages del database ma avviene un errore nel
   * sistema di persistenza dei dati e il sottotipo di {@GetUtil} che effettua l'operazione di
   * SELECT, invece di una collezione di transfer object, restituisce un riferimento nullo. Il test
   * verifica che in questo caso anche la chiamata di metodo getGroup restituisca un riferimento
   * nullo.
   *
   * @author Diego Beraldin
   * @version 2.0
   */
  @Test
  public void testGetMessageNewKeyWithNoMessages() {
    // query da eseguire
    String query = "select max(message.id) from Message message";
    // impedisce l'esecuzione di uniqueResult
    when(getter.uniqueResult(query)).thenReturn(null);

    // invoca il metodo da testare
    Long result = tester.getMessageNewKey();
    assertEquals(result, (Object) 1L);

    // verifica il corretto utilizzo dei mock
    verify(getter).uniqueResult(query);
  }
  /**
   * Verifica la possibilità di recuperare il più piccolo id libero per il prossimo inserimento
   * nella tabella dei messaggi in segreteria del database. In particolare, il test controlla che il
   * risultato sia conforme alle aspettative e che cioè il valore sia superiore di un'unità rispetto
   * a quanto restituito dal metodo getUniqueResult dal {@link GetUtil} e che questo metodo sia
   * invocato correttamente.
   *
   * @author Diego Beraldin
   * @version 2.0
   */
  @Test
  public void testGetMessageNewKey() {
    // id dell'ultimo inserimento in Messages
    Long lastId = 1L;
    // query da eseguire
    String query = "select max(message.id) from Message message";
    // ignoriamo il metodo-portoghese
    when(getter.uniqueResult(query)).thenReturn(lastId);

    // invoca il metodo da testare
    Long result = tester.getMessageNewKey();
    assertNotNull(result);
    assertTrue(result == lastId + 1);

    // verifica il corretto utilizzo dei mock
    verify(getter).uniqueResult(query);
  }