@SuppressWarnings({"resource", "unchecked", "rawtypes"}) @Test public void updateStreamWithListeners() { Repository decoratedRepository = mock(Repository.class); EntityListenerRepositoryDecorator entityListenerRepositoryDecorator = new EntityListenerRepositoryDecorator(decoratedRepository); EntityListener entityListener0 = when(mock(EntityListener.class).getEntityId()).thenReturn(Integer.valueOf(1)).getMock(); EntityListener entityListener1 = when(mock(EntityListener.class).getEntityId()).thenReturn(Integer.valueOf(2)).getMock(); entityListenerRepositoryDecorator.addEntityListener(entityListener0); entityListenerRepositoryDecorator.addEntityListener(entityListener1); Entity entity0 = when(mock(Entity.class).getIdValue()).thenReturn(Integer.valueOf(1)).getMock(); Entity entity1 = when(mock(Entity.class).getIdValue()).thenReturn(Integer.valueOf(2)).getMock(); Stream<Entity> entities = Stream.of(entity0, entity1); entityListenerRepositoryDecorator.update(entities); ArgumentCaptor<Stream<Entity>> captor = ArgumentCaptor.forClass((Class) Stream.class); verify(decoratedRepository).update(captor.capture()); assertEquals(captor.getValue().collect(Collectors.toList()), Arrays.asList(entity0, entity1)); verify(entityListener0, times(1)).postUpdate(entity0); verify(entityListener1, times(1)).postUpdate(entity1); }
@SuppressWarnings("resource") @Test public void updateEntityWithoutListener() { Repository decoratedRepository = mock(Repository.class); EntityListenerRepositoryDecorator entityListenerRepositoryDecorator = new EntityListenerRepositoryDecorator(decoratedRepository); EntityListener entityListener0 = when(mock(EntityListener.class).getEntityId()).thenReturn(Integer.valueOf(-1)).getMock(); entityListenerRepositoryDecorator.addEntityListener(entityListener0); Entity entity = when(mock(Entity.class).getIdValue()).thenReturn(Integer.valueOf(1)).getMock(); entityListenerRepositoryDecorator.update(entity); verify(decoratedRepository).update(entity); verify(entityListener0, times(0)).postUpdate(entity); }