/** * Sets the account for this Robot. The address of the account must match the * address in the {@link RobotName}. * * @param account the account to set. */ void setAccount(RobotAccountData account) { Preconditions.checkArgument(robotName.toEmailAddress().equals(account.getId().getAddress()), String.format("The given RobotAccountData doesn't match the RobotName. %s != %s", account.getId(), robotName.toEmailAddress())); this.account = account; }
public void testToAddress() { assertEquals("robot@appspot.com", RobotName.fromAddress("robot@appspot.com").toParticipantAddress()); assertEquals("robot+id@appspot.com", RobotName.fromAddress("robot+id@appspot.com").toParticipantAddress()); assertEquals("robot+id#1@appspot.com", RobotName.fromAddress("robot+id#1@appspot.com").toParticipantAddress()); assertEquals("robot@appspot.com", RobotName.fromAddress("robot#1@appspot.com").toEmailAddress()); assertEquals("robot#1@appspot.com", RobotName.fromAddress("robot#1@appspot.com").toEmailAddressWithVersion()); assertEquals("robot@appspot.com", RobotName.fromAddress("robot+proxy#1@appspot.com").toEmailAddress()); assertEquals("robot#1@appspot.com", RobotName.fromAddress("robot+proxy#1@appspot.com").toEmailAddressWithVersion()); }
@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); }
public void testToAddress() { assertEquals("robot@appspot.com", RobotName.fromAddress("robot@appspot.com").toParticipantAddress()); assertEquals("robot+id@appspot.com", RobotName.fromAddress("robot+id@appspot.com").toParticipantAddress()); assertEquals("robot+id#1@appspot.com", RobotName.fromAddress("robot+id#1@appspot.com").toParticipantAddress()); assertEquals("robot@appspot.com", RobotName.fromAddress("robot#1@appspot.com").toEmailAddress()); assertEquals("robot#1@appspot.com", RobotName.fromAddress("robot#1@appspot.com").toEmailAddressWithVersion()); assertEquals("robot@appspot.com", RobotName.fromAddress("robot+proxy#1@appspot.com").toEmailAddress()); assertEquals("robot#1@appspot.com", RobotName.fromAddress("robot+proxy#1@appspot.com").toEmailAddressWithVersion()); }
@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)); }
@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)); }
ParticipantId robotId = ParticipantId.ofUnsafe(robotName.toEmailAddress()); AccountData account; try {
ParticipantId robotAccountId = ParticipantId.ofUnsafe(robotName.toEmailAddress()); AccountData account; try {
EventMessageBundle messages = new EventMessageBundle(robotName.toEmailAddress(), ""); ObservableWaveletData snapshot = WaveletDataUtil.copyWavelet(waveletAndDeltas.getSnapshotBeforeDeltas());