public void testInsertNotification() { ISession session = null; try { // Se intenta insertar una notificacion con una sesion invalida Server.getInstance().createNotification(-15, not); fail("se esperaba NotLoggedException"); } catch (NotLoggedException e) { } catch (Exception e) { fail("se esperaba NotLoggedException"); } try { // Se intenta insertar una notificacion session = Server.getInstance().login("emp2", "emp2"); chiefClient.activate(IDatosPruebas.IP_ESCUCHA_CLIENTES); Server.getInstance().register(session.getId(), chiefClient); Server.getInstance().setCurrentProject(session.getId(), project.getId()); not.getUsers().add(chief); Server.getInstance().createNotification(session.getId(), not); List<Notification> nots = Server.getInstance().getNotificationsProject(session.getId()); assertTrue(nots.size() == 1); assertEquals(nots.get(0), not); // Comprobamos que se ha avisado a los clientes del cambio del beneficiario Thread.sleep(100); assertEquals(chiefClient.getUltimoDato(), not); } catch (Exception e) { fail(e.toString()); } }
public void testGetNotificationsUser() { ISession session = null; try { // Se intentan obtener las notificaciones de un usuario con una sesion invalida Server.getInstance().getNotificationsUser(-15); fail("se esperaba NotLoggedException"); } catch (NotLoggedException e) { } catch (Exception e) { fail("se esperaba NotLoggedException"); } try { // Se intentan obtener las notificaciones de un usuario sin haber establecido el proyecto // actual session = Server.getInstance().login("emp2", "emp2"); List<Notification> nots = Server.getInstance().getNotificationsUser(session.getId()); assertTrue(nots.size() == 0); } catch (Exception e) { fail(e.toString()); } try { // Se intentan obtener las notificaciones de un usuario not.getUsers().add(chief); Server.getInstance().setCurrentProject(session.getId(), project.getId()); List<Notification> nots = Server.getInstance().getNotificationsUser(session.getId()); assertTrue(nots.size() == 0); Server.getInstance().createNotification(session.getId(), not); nots = Server.getInstance().getNotificationsProject(session.getId()); assertTrue(nots.size() == 1); assertEquals(nots.get(0), not); } catch (Exception e) { fail(e.toString()); } }
public void testDeleteNotification() { ISession session = null; try { // Se intenta eliminar una notificacion con una sesion invalida Server.getInstance().deleteNotification(-15, not); fail("se esperaba NotLoggedException"); } catch (NotLoggedException e) { } catch (Exception e) { fail("se esperaba NotLoggedException"); } try { // Se intenta eliminar una notificacion con una sesion invalida Server.getInstance().deleteNotificationFromUser(-15, not); fail("se esperaba NotLoggedException"); } catch (NotLoggedException e) { } catch (Exception e) { fail("se esperaba NotLoggedException"); } try { session = Server.getInstance().login("emp2", "emp2"); Server.getInstance().setCurrentProject(session.getId(), project.getId()); List<Notification> nots = Server.getInstance().getNotificationsProject(session.getId()); assertTrue(nots.size() == 0); Server.getInstance().createNotification(session.getId(), not); nots = Server.getInstance().getNotificationsProject(session.getId()); assertTrue(nots.size() == 1); assertEquals(nots.get(0), not); // Se elimina una notificación Server.getInstance().deleteNotification(session.getId(), not); nots = Server.getInstance().getNotificationsProject(session.getId()); assertTrue(nots.size() == 0); } catch (Exception e) { fail(e.toString()); } try { Server.getInstance().createNotification(session.getId(), not); not.getUsers().add(chief); Server.getInstance().modifyNotification(session.getId(), not); List<Notification> nots = Server.getInstance().getNotificationsProject(session.getId()); assertTrue(nots.size() == 1); assertEquals(nots.get(0), not); // Se elimina una notificación Server.getInstance().deleteNotificationFromUser(session.getId(), not); // Se ha lanzado el trigger de la base de datos, por lo que ya no existe esta notificacion nots = Server.getInstance().getNotificationsProject(session.getId()); assertTrue(nots.size() == 0); } catch (Exception e) { fail(e.toString()); } }
public void testUpdateNotification() { ISession session = null; try { // Se intenta modificar una notificacion con una sesion invalida Server.getInstance().modifyNotification(-15, not); fail("se esperaba NotLoggedException"); } catch (NotLoggedException e) { } catch (Exception e) { fail("se esperaba NotLoggedException"); } try { // Se intenta modificar una notificacion inexistente session = Server.getInstance().login("emp2", "emp2"); Server.getInstance().modifyNotification(session.getId(), not); fail("se esperaba NonExistentNotificationException"); } catch (NonExistentNotificationException e) { } catch (Exception e) { fail("se esperaba NonExistentNotificationException"); } try { // Se intenta cambiar el estado de la notificación sin estar logueado Server.getInstance().modifyNotificationState(-15, not); Server.getInstance().getNotificationsUser(session.getId()); fail("se esperaba NotLoggedException"); } catch (NotLoggedException e) { } catch (Exception e) { fail("se esperaba NotLoggedException"); } try { // Se intenta insertar una notificacion Server.getInstance().setCurrentProject(session.getId(), project.getId()); Server.getInstance().createNotification(session.getId(), not); List<Notification> nots = Server.getInstance().getNotificationsProject(session.getId()); assertTrue(nots.size() == 1); assertEquals(nots.get(0), not); // Se añade un usuario a la notificacion y se actualiza not.getUsers().add(chief); not.getUsers().add(employee); Server.getInstance().modifyNotification(session.getId(), not); nots = Server.getInstance().getNotificationsUser(session.getId()); assertTrue(nots.size() == 1); assertEquals(nots.get(0), not); // Se modifica el estado de la notificacion para este usuario not.setState("Read"); Server.getInstance().modifyNotificationState(session.getId(), not); nots = Server.getInstance().getNotificationsUser(session.getId()); assertTrue(nots.size() == 1); assertEquals(nots.get(0), not); // Se comprueba que no ha afectado al otro usuario el cambio de estado session = Server.getInstance().login("emp1", "emp1"); Server.getInstance().setCurrentProject(session.getId(), project.getId()); nots = Server.getInstance().getNotificationsUser(session.getId()); assertTrue(nots.size() == 1); assertFalse(nots.get(0).getState().startsWith("R")); } catch (Exception e) { fail(e.toString()); } }