@Override default void onCycleComplete(com.netflix.hollow.api.producer.Status status, ReadState readState, long version, Duration elapsed) { onCycleComplete(new ProducerStatus(status, readState, version), elapsed.toMillis(), TimeUnit.MILLISECONDS); }
/** * Called after the {@code HollowProducer} has initialized its data model. * @param elapsed the elapsed duration * @param unit the units of duration */ void onProducerInit(long elapsed, TimeUnit unit);
@Override default void onProducerRestoreComplete(com.netflix.hollow.api.producer.Status status, long versionDesired, long versionReached, Duration elapsed) { onProducerRestoreComplete(new RestoreStatus(status, versionDesired, versionReached), elapsed.toMillis(), TimeUnit.MILLISECONDS); }
@Test public void testFireValidationStartDontStopWhenOneFails() { long version = 31337; HollowProducer.ReadState readState = Mockito.mock(HollowProducer.ReadState.class); Mockito.when(readState.getVersion()).thenReturn(version); Mockito.doThrow(RuntimeException.class).when(validationStatusListener).onValidationStatusStart(version); listenerSupport.listeners().fireValidationStart(readState); Mockito.verify(listener).onValidationStart(version); Mockito.verify(validationStatusListener).onValidationStatusStart(version); Mockito.verify(producerAndValidationStatusListener).onValidationStart(version); }
@Test public void testCycleStartEnd() { Mockito.when(singleProducerEnforcer.isPrimary()).thenReturn(true); this.producer.runCycle(Mockito.mock(HollowProducer.Populator.class)); Mockito.verify(listener).onCycleStart(ArgumentMatchers.anyLong()); Mockito.verify(listener).onCycleComplete( Mockito.any(HollowProducerListener.ProducerStatus.class), ArgumentMatchers.anyLong(), Mockito.any(TimeUnit.class)); } }
@Test public void fireProducerRestoreStartDontStopWhenOneFails() { long version = 31337; HollowProducer.ReadState readState = Mockito.mock(HollowProducer.ReadState.class); Mockito.when(readState.getVersion()).thenReturn(version); Mockito.doThrow(RuntimeException.class).when(listener).onProducerRestoreStart(version); Status.RestoreStageBuilder b = new Status.RestoreStageBuilder(); listenerSupport.listeners().fireProducerRestoreComplete(b); ArgumentCaptor<Status> status = ArgumentCaptor.forClass( Status.class); ArgumentCaptor<Long> desired = ArgumentCaptor.forClass( long.class); ArgumentCaptor<Long> reached = ArgumentCaptor.forClass( long.class); ArgumentCaptor<Duration> elapsed = ArgumentCaptor.forClass( Duration.class); Mockito.verify(listener).onProducerRestoreComplete(status.capture(), desired.capture(), reached.capture(), elapsed.capture()); Assert.assertNotNull(status.getValue()); Assert.assertNotNull(elapsed.getValue()); }
@Test public void testCycleSkip() { Mockito.when(singleProducerEnforcer.isPrimary()).thenReturn(false); this.producer.runCycle(null); Mockito.verify(listener).onCycleSkip( HollowProducerListener.CycleSkipReason.NOT_PRIMARY_PRODUCER); Mockito.verify(listener, Mockito.never()).onCycleStart( ArgumentMatchers.anyLong()); }
@Override default void onBlobPublish(com.netflix.hollow.api.producer.Status status, HollowProducer.Blob blob, Duration elapsed) { onArtifactPublish(new PublishStatus(status, blob), elapsed.toMillis(), TimeUnit.MILLISECONDS); }
@Override default void onIntegrityCheckComplete(com.netflix.hollow.api.producer.Status status, ReadState readState, long version, Duration elapsed) { onIntegrityCheckComplete(new ProducerStatus(status, readState, version), elapsed.toMillis(), TimeUnit.MILLISECONDS); }
@Override default void onAnnouncementComplete(com.netflix.hollow.api.producer.Status status, ReadState readState, long version, Duration elapsed) { onAnnouncementComplete(new ProducerStatus(status, readState, version), elapsed.toMillis(), TimeUnit.MILLISECONDS); }
@Test public void fireCycleStartDontStopWhenOneFails() { long version = 31337; HollowProducer.ReadState readState = Mockito.mock(HollowProducer.ReadState.class); Mockito.when(readState.getVersion()).thenReturn(version); Mockito.doThrow(RuntimeException.class).when(listener).onCycleStart(version); listenerSupport.listeners().fireCycleStart(version); Mockito.verify(listener).onCycleStart(version); }
@Test public void fireAnnouncementStartDontStopWhenOneFails() { long version = 31337; HollowProducer.ReadState readState = Mockito.mock(HollowProducer.ReadState.class); Mockito.when(readState.getVersion()).thenReturn(version); Mockito.doThrow(RuntimeException.class).when(listener).onAnnouncementStart(version); listenerSupport.listeners().fireAnnouncementStart(readState); Mockito.verify(listener).onAnnouncementStart(version); } }
@Test public void testFireValidationStartDontStopWhenOneFails2() { long version = 31337; HollowProducer.ReadState readState = Mockito.mock(HollowProducer.ReadState.class); Mockito.when(readState.getVersion()).thenReturn(version); Mockito.doThrow(RuntimeException.class).when(validationStatusListener).onValidationStatusStart(version); listenerSupport.listeners().fireValidationStart(readState); Mockito.verify(listener).onValidationStart(version); Mockito.verify(validationStatusListener).onValidationStatusStart(version); Mockito.verify(producerAndValidationStatusListener).onValidationStart(version); }
@Test public void testFireValidationStart() { long version = 31337; HollowProducer.ReadState readState = Mockito.mock(HollowProducer.ReadState.class); Mockito.when(readState.getVersion()).thenReturn(version); listenerSupport.listeners().fireValidationStart(readState); Mockito.verify(listener).onValidationStart(version); Mockito.verify(validationStatusListener).onValidationStatusStart(version); Mockito.verify(producerAndValidationStatusListener).onValidationStart(version); }
@Test public void fireProducerInitDontStopWhenOneFails() { long version = 31337; HollowProducer.ReadState readState = Mockito.mock(HollowProducer.ReadState.class); Mockito.when(readState.getVersion()).thenReturn(version); Mockito.doThrow(RuntimeException.class).when(listener).onProducerInit(1L, MILLISECONDS); listenerSupport.listeners().fireProducerInit(1L); Mockito.verify(listener).onProducerInit(Duration.ofMillis(1L)); }
Status.StageWithStateBuilder fireValidationStart(HollowProducer.ReadState readState) { long version = readState.getVersion(); fire(HollowProducerListener.class, l -> l.onValidationStart(version)); fire(ValidationStatusListener.class, l -> l.onValidationStatusStart(version)); return new Status.StageWithStateBuilder().readState(readState); }