/** * Creates a new {@link Robot}. * * @param robotName the name of the robot. * @param account the {@link RobotAccountData} belonging to the given * {@link RobotName}. */ private Robot createNewRobot(RobotName robotName, RobotAccountData account) { EventGenerator eventGenerator = new EventGenerator(robotName, conversationUtil); RobotOperationApplicator operationApplicator = new RobotOperationApplicator(converterManager, waveletProvider, new OperationServiceRegistryImpl(notifyOpService), conversationUtil); return new Robot(robotName, account, this, connector, converterManager, waveletProvider, eventGenerator, operationApplicator); }
public EventGeneratingDocumentHandler(ObservableDocument doc, ConversationBlip blip, Map<EventType, Capability> capabilities, EventMessageBundle messages, ParticipantId deltaAuthor, Long deltaTimestamp, Wavelet wavelet, EventDataConverter converter) { this.doc = doc; this.blip = blip; this.capabilities = capabilities; this.messages = messages; this.converter = converter; this.wavelet = wavelet; setAuthorAndTimeStamp(deltaAuthor, deltaTimestamp); }
public void testDequeueWavelet() throws Exception { assertNull("No wavelet to dequeue should return null", robot.dequeueWavelet()); enqueueEmptyWavelet(); assertNotNull("Wavelet should have been enqueued", robot.dequeueWavelet()); }
public void testRunRequeuesRobotIfDoneWork() throws Exception { enqueueEmptyWavelet(); robot.run(); verify(gateway).doneRunning(robot); verify(gateway).ensureScheduled(robot); }
public void testProcessSendsNoBundleWhenNoEvents() throws Exception { enqueueEmptyWavelet(); robot.run(); // Verify that the robot was not called or any operations where processed verify(connector, never()).sendMessageBundle( any(EventMessageBundle.class), eq(robot), any(ProtocolVersion.class)); verify(operationApplicator, never()).applyOperations(anyListOf(OperationRequest.class), any(ReadableWaveletData.class), any(HashedVersion.class), eq(ACCOUNT)); }
public void testProcessUpdatesAccountIfNoCapabilities() throws Exception { // Enqueue a wavelet so that the robot actually runs. enqueueEmptyWavelet(); robot.run(); assertEquals("The robot should be initialized", INITIALIZED_ACCOUNT, robot.getAccount()); }
public void testRunNotRequeingIfNoWork() { robot.run(); verify(gateway).doneRunning(robot); verify(gateway, never()).ensureScheduled(robot); }
/** * 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; }
public void testGetVersionAfterDeltas() throws Exception { assertEquals(V1, wavelet.getVersionAfterDeltas()); }
public void testDequeueWaveletReturnsNullIfEmpty() throws Exception { assertNull("On empty queue should return null", robot.dequeueWavelet()); }
@Override public Object answer(InvocationOnMock invocation) throws Throwable { robot.setAccount(INITIALIZED_ACCOUNT); return null; } }).when(gateway).updateRobotAccount(robot);
public void testRunRequeuesRobotIfDoneWork() throws Exception { enqueueEmptyWavelet(); robot.run(); verify(gateway).doneRunning(robot); verify(gateway).ensureScheduled(robot); }
public void testProcessSendsNoBundleWhenNoEvents() throws Exception { enqueueEmptyWavelet(); robot.run(); // Verify that the robot was not called or any operations where processed verify(connector, never()).sendMessageBundle( any(EventMessageBundle.class), eq(robot), any(ProtocolVersion.class)); verify(operationApplicator, never()).applyOperations(anyListOf(OperationRequest.class), any(ReadableWaveletData.class), any(HashedVersion.class), eq(ACCOUNT)); }
public void testDequeueWavelet() throws Exception { assertNull("No wavelet to dequeue should return null", robot.dequeueWavelet()); enqueueEmptyWavelet(); assertNotNull("Wavelet should have been enqueued", robot.dequeueWavelet()); }
public void testProcessUpdatesAccountIfNoCapabilities() throws Exception { // Enqueue a wavelet so that the robot actually runs. enqueueEmptyWavelet(); robot.run(); assertEquals("The robot should be initialized", INITIALIZED_ACCOUNT, robot.getAccount()); }
public void testRunNotRequeingIfNoWork() { robot.run(); verify(gateway).doneRunning(robot); verify(gateway, never()).ensureScheduled(robot); }
/** * 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; }
public void testGetVersionAfterDeltas() throws Exception { assertEquals(V1, wavelet.getVersionAfterDeltas()); }
public void testDequeueWaveletReturnsNullIfEmpty() throws Exception { assertNull("On empty queue should return null", robot.dequeueWavelet()); }
@Override public Object answer(InvocationOnMock invocation) throws Throwable { robot.setAccount(INITIALIZED_ACCOUNT); return null; } }).when(gateway).updateRobotAccount(robot);