@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 updateEntityWithListeners() { @SuppressWarnings("unchecked") Repository<Entity> decoratedRepository = Mockito.mock(Repository.class); Mockito.when(decoratedRepository.getName()).thenReturn("entityFullName"); EntityListenerRepositoryDecorator entityListenerRepositoryDecorator = new EntityListenerRepositoryDecorator(decoratedRepository, entityListenersService); EntityListener entityListener0 = Mockito.when(Mockito.mock(EntityListener.class).getEntityId()) .thenReturn(Integer.valueOf(1)) .getMock(); EntityListener entityListener1 = Mockito.when(Mockito.mock(EntityListener.class).getEntityId()) .thenReturn(Integer.valueOf(1)) .getMock(); entityListenersService.addEntityListener("entityFullName", entityListener0); entityListenersService.addEntityListener("entityFullName", entityListener1); Entity entity = Mockito.when(Mockito.mock(Entity.class).getIdValue()) .thenReturn(Integer.valueOf(1)) .getMock(); entityListenerRepositoryDecorator.update(entity); Mockito.verify(decoratedRepository).update(entity); Mockito.verify(entityListener0, Mockito.times(1)).postUpdate(entity); Mockito.verify(entityListener1, Mockito.times(1)).postUpdate(entity); }
@SuppressWarnings({"resource", "unchecked", "rawtypes"}) @Test public void updateStreamWithSomeListeners() { Repository<Entity> decoratedRepository = Mockito.mock(Repository.class); Mockito.when(decoratedRepository.getName()).thenReturn("entityFullName"); EntityListenerRepositoryDecorator entityListenerRepositoryDecorator = new EntityListenerRepositoryDecorator(decoratedRepository, entityListenersService); EntityListener entityListener1 = Mockito.when(Mockito.mock(EntityListener.class).getEntityId()) .thenReturn(Integer.valueOf(2)) .getMock(); entityListenersService.addEntityListener("entityFullName", entityListener1); Entity entity0 = Mockito.when(Mockito.mock(Entity.class).getIdValue()) .thenReturn(Integer.valueOf(1)) .getMock(); Entity entity1 = Mockito.when(Mockito.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); Mockito.verify(decoratedRepository).update(captor.capture()); Assert.assertEquals( captor.getValue().collect(Collectors.toList()), Arrays.asList(entity0, entity1)); Mockito.verify(entityListener1, Mockito.times(1)).postUpdate(entity1); }
@SuppressWarnings("resource") @Test public void updateEntityNoListeners() { Repository decoratedRepository = mock(Repository.class); EntityListenerRepositoryDecorator entityListenerRepositoryDecorator = new EntityListenerRepositoryDecorator(decoratedRepository); Entity entity = when(mock(Entity.class).getIdValue()).thenReturn(Integer.valueOf(1)).getMock(); entityListenerRepositoryDecorator.update(entity); verify(decoratedRepository).update(entity); }
@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); }
@Test public void findAllAsStream() { Entity entity0 = mock(Entity.class); Query query = mock(Query.class); when(decoratedRepository.findAll(query)).thenReturn(Stream.of(entity0)); Stream<Entity> entities = entityListenerRepositoryDecorator.findAll(query); assertEquals(entities.collect(Collectors.toList()), Arrays.asList(entity0)); }
@Test public void streamFetch() { Fetch fetch = new Fetch(); @SuppressWarnings("unchecked") Consumer<List<Entity>> consumer = Mockito.mock(Consumer.class); entityListenerRepositoryDecorator.forEachBatched(fetch, consumer, 543); Mockito.verify(decoratedRepository, Mockito.times(1)).forEachBatched(fetch, consumer, 543); }
@Test public void findAllAsStream() { Entity entity0 = Mockito.mock(Entity.class); @SuppressWarnings("unchecked") Query<Entity> query = Mockito.mock(Query.class); Mockito.when(decoratedRepository.findAll(query)).thenReturn(Stream.of(entity0)); Stream<Entity> entities = entityListenerRepositoryDecorator.findAll(query); Assert.assertEquals(entities.collect(Collectors.toList()), Arrays.asList(entity0)); }
@SuppressWarnings("unchecked") @BeforeMethod public void setUpBeforeMethod() { decoratedRepository = Mockito.mock(Repository.class); Mockito.when(decoratedRepository.getName()).thenReturn("entityFullName"); entityListenerRepositoryDecorator = new EntityListenerRepositoryDecorator(decoratedRepository, entityListenersService); Mockito.when(entityListenerRepositoryDecorator.getName()).thenReturn("entityFullName"); }
@Test public void findAllStream() { Object id0 = "id0"; Object id1 = "id1"; Entity entity0 = mock(Entity.class); Entity entity1 = mock(Entity.class); Stream<Object> entityIds = Stream.of(id0, id1); when(decoratedRepository.findAll(entityIds)).thenReturn(Stream.of(entity0, entity1)); Stream<Entity> expectedEntities = entityListenerRepositoryDecorator.findAll(entityIds); assertEquals(expectedEntities.collect(Collectors.toList()), Arrays.asList(entity0, entity1)); }
@Test public void findAllStreamFetch() { Fetch fetch = new Fetch(); Object id0 = "id0"; Object id1 = "id1"; Entity entity0 = Mockito.mock(Entity.class); Entity entity1 = Mockito.mock(Entity.class); Stream<Object> entityIds = Stream.of(id0, id1); Mockito.when(decoratedRepository.findAll(entityIds, fetch)) .thenReturn(Stream.of(entity0, entity1)); Stream<Entity> expectedEntities = entityListenerRepositoryDecorator.findAll(entityIds, fetch); Assert.assertEquals( expectedEntities.collect(Collectors.toList()), Arrays.asList(entity0, entity1)); }
@Test public void deleteStream() { Stream<Entity> entities = Stream.empty(); entityListenerRepositoryDecorator.delete(entities); verify(decoratedRepository, times(1)).delete(entities); }
@Test public void addStream() { Stream<Entity> entities = Stream.empty(); when(decoratedRepository.add(entities)).thenReturn(Integer.valueOf(123)); assertEquals(entityListenerRepositoryDecorator.add(entities), Integer.valueOf(123)); }
@Test public void streamFetch() { Fetch fetch = new Fetch(); entityListenerRepositoryDecorator.stream(fetch); verify(decoratedRepository, times(1)).stream(fetch); }
@Test public void testQuery() throws Exception { assertEquals( entityListenerRepositoryDecorator.query().getRepository(), entityListenerRepositoryDecorator); }
@Test public void delegate() throws Exception { assertEquals(entityListenerRepositoryDecorator.delegate(), decoratedRepository); }