/** * Generate events from deltas */ private EventMessageBundle generateEventsFromDeltas(TransformedWaveletDelta... deltas) throws OperationException { WaveletAndDeltas waveletAndDeltas = WaveletAndDeltas.create(waveletData, DeltaSequence.of(deltas)); Map<EventType, Capability> capabilities = ALL_CAPABILITIES; // Generate the events EventMessageBundle messages = eventGenerator.generateEvents(waveletAndDeltas, capabilities, CONVERTER); return messages; }
/** * Generate events from deltas */ private EventMessageBundle generateEventsFromDeltas(TransformedWaveletDelta... deltas) throws OperationException { WaveletAndDeltas waveletAndDeltas = WaveletAndDeltas.create(waveletData, DeltaSequence.of(deltas)); Map<EventType, Capability> capabilities = ALL_CAPABILITIES; // Generate the events EventMessageBundle messages = eventGenerator.generateEvents(waveletAndDeltas, capabilities, CONVERTER); return messages; }
@SuppressWarnings("unchecked") public void testProcessSendsBundleAndCallsOperationsApplicator() throws Exception { EventMessageBundle messages = new EventMessageBundle(ROBOT_NAME.toEmailAddress(), ""); messages.addEvent(new DocumentChangedEvent(null, null, ALEX.getAddress(), 0L, "b+1234")); when(eventGenerator.generateEvents( any(), anyMap(), any())).thenReturn(messages); OperationRequest op = new OperationRequest("wavelet.fetch", "op1"); List<OperationRequest> ops = Collections.singletonList(op); when(connector.sendMessageBundle( any(EventMessageBundle.class), eq(robot), any(ProtocolVersion.class))).thenReturn(ops); enqueueEmptyWavelet(); robot.run(); verify(connector).sendMessageBundle( any(EventMessageBundle.class), eq(robot), any(ProtocolVersion.class)); verify(operationApplicator).applyOperations( eq(ops), any(ReadableWaveletData.class), any(HashedVersion.class), eq(INITIALIZED_ACCOUNT)); }
@SuppressWarnings("unchecked") @Override protected void setUp() throws Exception { gateway = mock(RobotsGateway.class); connector = mock(RobotConnector.class); converterManager = mock(EventDataConverterManager.class); waveletProvider = mock(WaveletProvider.class); eventGenerator = mock(EventGenerator.class); operationApplicator = mock(RobotOperationApplicator.class); robot = new Robot(ROBOT_NAME, ACCOUNT, gateway, connector, converterManager, waveletProvider, eventGenerator, operationApplicator); // Set the initialized account when updateRobotAccount is called. doAnswer(new Answer<Object>() { @Override public Object answer(InvocationOnMock invocation) throws Throwable { robot.setAccount(INITIALIZED_ACCOUNT); return null; } }).when(gateway).updateRobotAccount(robot); // Generate no events on default EventMessageBundle emptyMessageBundle = new EventMessageBundle(ROBOT_NAME.toEmailAddress(), ""); when(eventGenerator.generateEvents( any(WaveletAndDeltas.class), anyMap(), any(EventDataConverter.class))).thenReturn( emptyMessageBundle); }
@SuppressWarnings("unchecked") @Override protected void setUp() throws Exception { gateway = mock(RobotsGateway.class); connector = mock(RobotConnector.class); converterManager = mock(EventDataConverterManager.class); waveletProvider = mock(WaveletProvider.class); eventGenerator = mock(EventGenerator.class); operationApplicator = mock(RobotOperationApplicator.class); robot = new Robot(ROBOT_NAME, ACCOUNT, gateway, connector, converterManager, waveletProvider, eventGenerator, operationApplicator); // Set the initialized account when updateRobotAccount is called. doAnswer(new Answer<Object>() { @Override public Object answer(InvocationOnMock invocation) throws Throwable { robot.setAccount(INITIALIZED_ACCOUNT); return null; } }).when(gateway).updateRobotAccount(robot); // Generate no events on default EventMessageBundle emptyMessageBundle = new EventMessageBundle(ROBOT_NAME.toEmailAddress(), ""); when(eventGenerator.generateEvents( any(WaveletAndDeltas.class), anyMap(), any(EventDataConverter.class))).thenReturn( emptyMessageBundle); }
@SuppressWarnings("unchecked") public void testProcessSendsBundleAndCallsOperationsApplicator() throws Exception { EventMessageBundle messages = new EventMessageBundle(ROBOT_NAME.toEmailAddress(), ""); messages.addEvent(new DocumentChangedEvent(null, null, ALEX.getAddress(), 0L, "b+1234")); when(eventGenerator.generateEvents( any(WaveletAndDeltas.class), anyMap(), any(EventDataConverter.class))).thenReturn(messages); OperationRequest op = new OperationRequest("wavelet.fetch", "op1"); List<OperationRequest> ops = Collections.singletonList(op); when(connector.sendMessageBundle( any(EventMessageBundle.class), eq(robot), any(ProtocolVersion.class))).thenReturn(ops); enqueueEmptyWavelet(); robot.run(); verify(connector).sendMessageBundle( any(EventMessageBundle.class), eq(robot), any(ProtocolVersion.class)); verify(operationApplicator).applyOperations( eq(ops), any(ReadableWaveletData.class), any(HashedVersion.class), eq(INITIALIZED_ACCOUNT)); }
eventGenerator.generateEvents(waveletAndDeltas, capabilities, CONVERTER); messages = eventGenerator.generateEvents(waveletAndDeltas, ALL_CAPABILITIES, CONVERTER); checkEventTypeWasGenerated(messages, eventType);
eventGenerator.generateEvents(waveletAndDeltas, capabilities, CONVERTER); messages = eventGenerator.generateEvents(waveletAndDeltas, ALL_CAPABILITIES, CONVERTER); checkEventTypeWasGenerated(messages, eventType);
eventGenerator.generateEvents(wavelet, capabilities.getCapabilitiesMap(), converterManager.getEventDataConverter(capabilities.getProtocolVersion()));