/** * Riconfigura il comportamento dei mock e inizializza l'oggetto da testare prima di ognuna delle * verifica contenuta in questo caso di test. * * @author Diego Beraldin * @version 2.0 */ @Before public void setUp() throws Exception { // configura il comportamento della richiesta when(request.getParameter("contactId")).thenReturn(contactId.toString()); when(request.getParameter("groupId")).thenReturn(groupId.toString()); // configura il comportamento della risposta writer = new StringWriter(); when(response.getWriter()).thenReturn(new PrintWriter(writer)); // configura il comportamento del gestore di persistenza when(dao.getUserData(username)).thenReturn(user); when(dao.getUserData(contactId)).thenReturn(contact); when(dao.getGroup(groupId)).thenReturn(group); // configura il comportamento della voce when(entry.getContact()).thenReturn(contact); when(entry.getGroup()).thenReturn(group); when(entry.getOwner()).thenReturn(user); // configura il comportamento dell'utente e della sua rubrica entrySet = new HashSet<IAddressBookEntry>(); entrySet.add(entry); when(user.getAddressBook()).thenReturn(entrySet); // inizializza l'oggetto da testare tester = new DeleteFromGroupController() { @Override protected DataPersistanceManager getDAOFactory() { return dao; } @Override protected String getUserMail() { return username; } }; }
/** * Verifica il comportamento del metodo doAction nel momento in cui il contatto di cui si richiede * la cancellazione non corrisponde ad alcuno degli utenti che sono registrati al 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 testDeleteNotExistUser() throws Exception { // impedisce di recuperare l'utente when(dao.getUserData(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).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)); }