use of org.activityinfo.shared.command.GetSchema in project activityinfo by bedatadriven.
the class RemoteDispatcherTest method commandExceptionsShouldBeCalledBackWithFailure.
@Test
public void commandExceptionsShouldBeCalledBackWithFailure() {
expectRemoteCall(new GetSchema());
// remote call succeeded,
andCallbackWihSuccess(new CommandException());
// command failed
replay(service);
AsyncCallback callback = makeCallbackThatExpectsFailure();
dispatcher.execute(new GetSchema(), callback);
processPendingCommands();
verify(service, callback);
}
use of org.activityinfo.shared.command.GetSchema in project activityinfo by bedatadriven.
the class RemoteDispatcherTest method successiveCommandsServedByProxyAreCorrectlyHandleded.
@Test
public void successiveCommandsServedByProxyAreCorrectlyHandleded() {
GetSchema command = new GetSchema();
expect(proxy.maybeExecute(eq(command))).andReturn(new CacheResult(new SchemaDTO())).anyTimes();
replay(proxy);
// no calls should be made to the remote service
replay(service);
final AsyncCallback callback2 = makeCallbackThatExpectsNonNullSuccess();
proxyManager.registerProxy(GetSchema.class, proxy);
dispatcher.execute(new GetSchema(), new AsyncCallback<SchemaDTO>() {
@Override
public void onFailure(Throwable arg0) {
throw new AssertionError();
}
@Override
public void onSuccess(SchemaDTO arg0) {
dispatcher.execute(new GetSchema(), callback2);
}
});
processPendingCommands();
processPendingCommands();
verify(proxy, service, callback2);
}
use of org.activityinfo.shared.command.GetSchema in project activityinfo by bedatadriven.
the class RemoteDispatcherTest method mergedCommandsShouldEachReceiveACallback.
@Test
public void mergedCommandsShouldEachReceiveACallback() {
expectRemoteCall(new GetSchema());
andCallbackWihSuccess(new SchemaDTO());
replay(service);
AsyncCallback callback1 = makeCallbackThatExpectsNonNullSuccess();
AsyncCallback callback2 = makeCallbackThatExpectsNonNullSuccess();
// simulate successive dispatches of the same command from different
// components of the application
dispatcher.execute(new GetSchema(), callback1);
dispatcher.execute(new GetSchema(), callback2);
processPendingCommands();
// verify that only one command was sent
verify(callback1);
verify(callback2);
}
use of org.activityinfo.shared.command.GetSchema in project activityinfo by bedatadriven.
the class RemoteDispatcherTest method duplicateCommandsShouldBeMergedWithPendingRequests.
@Test
public void duplicateCommandsShouldBeMergedWithPendingRequests() {
expectRemoteCall(new GetSchema());
replay(service);
// simulate successive dispatches of the same command from different
// components of the application
dispatcher.execute(new GetSchema(), makeNullCallback());
dispatcher.execute(new GetSchema(), makeNullCallback());
processPendingCommands();
// verify that only one command was sent
verify(service);
}
use of org.activityinfo.shared.command.GetSchema in project activityinfo by bedatadriven.
the class RemoteDispatcherTest method exceptionsThrownByCallbacksDoNotDistubOthers.
/**
* The RemoteDispatcher will group and bundle commands together-- we need to
* make sure that different components remain isolated from failures within
* other components.
*/
@Test
public void exceptionsThrownByCallbacksDoNotDistubOthers() {
expectRemoteCall(new GetSchema());
andCallbackWihSuccess(new SchemaDTO());
replay(service);
// Here we set up one component that will call request a command
// but something will go wrong when the command return (successfully)
// the error is unrelated to the remote command -- it just happens to be
// there.
dispatcher.execute(new GetSchema(), null, new AsyncCallback<SchemaDTO>() {
@Override
public void onFailure(Throwable caught) {
}
@Override
public void onSuccess(SchemaDTO result) {
throw new RuntimeException();
}
});
// the second command independently requests the same command,
// we need to make sure we receive a result
AsyncCallback secondCallback = makeCallbackThatExpectsNonNullSuccess();
dispatcher.execute(new GetSchema(), null, secondCallback);
processPendingCommands();
verify(secondCallback);
}
Aggregations