/** * Verifica il comportamento del metodo doAction nel momento in cui il gruppo da cui si richiede * la cancellazione di un contatto non corrisponde ad alcuno dei gruppo che sono presenti nel * database del sistema. Il test verifica che in questo caso il testo stampato sulla risposta HTTP * sia, come desiderato, la stringa 'null' e che non siano MAI effettuate operazioni di * aggiornamento dei dati dell'utente che ha richiesto la cancellazione e che non sia cancellata * alcuna voce dalla rubrica. * * @author Diego Beraldin * @version 2.0 */ @Test public void testDeleteNotExistGroup() throws Exception { // impedisce di recuperare l'utente when(dao.getGroup(groupId)).thenReturn(null); // invoca il metodo da testare tester.doAction(request, response); // verifica l'output ottenuto writer.flush(); String responseText = writer.toString(); assertEquals("null", responseText); // verifica il corretto utilizzo dei mock verify(response).getWriter(); verify(request).getParameter("contactId"); verify(request).getParameter("groupId"); verify(dao).getUserData(username); verify(dao).getUserData(contactId); verify(dao).getGroup(groupId); verifyZeroInteractions(user); verifyZeroInteractions(entry); verify(dao, never()).delete(any(IAddressBookEntry.class)); verify(dao, never()).update(any(IUserData.class)); }
/** * Verifica il comportamento del metodo doAction nel momento in cui viene invocato con una * richiesta contenente tutti i parametri necessari per portare a termine con successo * l'operazione. In particolare il test verifica che il testo stampato sulla risposta HTTP sia, * come desiderato, la stringa 'true'. Si verifica inoltre che il sistema di persistenza sia * utilizzato per estrarre i dati corrispondenti all'utente, al contatto e al gruppo contenuti * nella richiesta, che sia effettuata un'operazione di rimozione della entry e che venga * effettuato l'aggiornamento dell'utente la cui rubrica è soggetta a modifica. * * @author Diego Beraldin * @version 2.0 */ @Test public void testDeleteCorrectContact() throws Exception { // invoca il metodo da testare tester.doAction(request, response); // verifica l'output ottenuto writer.flush(); String responseText = writer.toString(); assertEquals("true", responseText); // verifica il corretto utilizzo dei mock verify(response).getWriter(); verify(request).getParameter("contactId"); verify(request).getParameter("groupId"); verify(dao).getUserData(username); verify(dao).getUserData(contactId); verify(dao).getGroup(groupId); verify(user).getAddressBook(); verify(entry).getContact(); verify(entry).getGroup(); verify(entry).getOwner(); // verify(user).removeAddressBookEntry(entry); verify(dao).delete(entry); verify(dao).update(user); }
/** * Verifica il comportamento del metodo doAction nel momento in cui esso è invocato con una * richiesta HTTP che non contiene tutti i parametri necessari per portare a termine con successo * l'operazione. In tal caso il test verifica che il testo stampato sulla risposta sia * effettivamente 'null', come desiderato in questo caso e che non sia effettuata ALCUNA * operazione sul gestore di persistenza dei dati. * * @author Diego Beraldin * @version 2.0 */ @Test public void testWrongData() throws Exception { // impedisce di recuperare l'utente when(request.getParameter("contactId")).thenReturn(null); // invoca il metodo da testare tester.doAction(request, response); // verifica l'output ottenuto writer.flush(); String responseText = writer.toString(); assertEquals("null", responseText); // verifica il corretto utilizzo dei mock verify(response).getWriter(); verify(request).getParameter("contactId"); verify(request, never()).getParameter("groupId"); verifyZeroInteractions(dao); verifyZeroInteractions(user); verifyZeroInteractions(entry); }