@Override protected void doInTransactionWithoutResult(TransactionStatus status) { User user = userDao.load(userId); user.addNotificationFilter(filter); synchronized (enableUserMutex) { userDao.saveOrUpdate(user); } } });
@Test public void shouldThrowExceptionIfFilterWithAllEventAlreadyExist() { User user = new User("foo"); user.addNotificationFilter(new NotificationFilter("cruise", "dev", StageEvent.All, false)); try { user.addNotificationFilter(new NotificationFilter("cruise", "dev", StageEvent.Fixed, false)); fail("shouldThrowExceptionIfFilterWithAllEventAlreadyExist"); } catch (Exception e) { assertThat(e.getMessage(), containsString("Duplicate notification filter")); } }
@Test public void shouldThrowExceptionIfFilterWithSameEventAlreadyExist() { User user = new User("foo"); user.addNotificationFilter(new NotificationFilter("cruise", "dev", StageEvent.Fixed, false)); try { user.addNotificationFilter(new NotificationFilter("cruise", "dev", StageEvent.Fixed, false)); fail("shouldThrowExceptionIfFilterWithSameEventAlreadyExist"); } catch (Exception e) { assertThat(e.getMessage(), containsString("Duplicate notification filter")); } }
@Test public void shouldRemoveNotificationFilter(){ User user = new User("u"); NotificationFilter filter1 = new NotificationFilter("p1","s1", StageEvent.Fails, true); filter1.setId(1); NotificationFilter filter2 = new NotificationFilter("p1","s2", StageEvent.Fails, true); filter2.setId(2); user.addNotificationFilter(filter1); user.addNotificationFilter(filter2); user.removeNotificationFilter(filter1.getId()); assertThat(user.getNotificationFilters().size(), is(1)); assertThat(user.getNotificationFilters().contains(filter2), is(true)); } private String chars(int numbersOf) {
@Test public void shouldCopyUser(){ User user = new User("user", "User", new String[]{"match"}, "email", false); user.setId(100); user.addNotificationFilter(new NotificationFilter("p1","S1", StageEvent.Fixed, true)); User clonedUser = new User(user); assertThat(clonedUser, is(user)); assertThat(clonedUser.getId(), is(user.getId())); assertThat(clonedUser, not(sameInstance(user))); assertThat(clonedUser.getNotificationFilters(), is(user.getNotificationFilters())); assertThat(clonedUser.getNotificationFilters(), not(sameInstance(user.getNotificationFilters()))); assertThat(clonedUser.getNotificationFilters().get(0), not(sameInstance(user.getNotificationFilters().get(0)))); }