/*
* Copyright (C) 2011 Red Hat, Inc. and/or its affiliates.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jboss.errai.ioc.support.bus.tests.client;
import org.jboss.errai.bus.client.ErraiBus;
import org.jboss.errai.bus.client.api.Local;
import org.jboss.errai.bus.client.api.base.MessageBuilder;
import org.jboss.errai.bus.client.api.messaging.Message;
import org.jboss.errai.bus.client.api.messaging.MessageCallback;
import org.jboss.errai.bus.server.annotations.Service;
import org.jboss.errai.ioc.client.api.EntryPoint;
import com.google.gwt.user.client.Timer;
/**
* Tests to ensure that local service can only receive local messages.
*
* @author Christian Sadilek <csadilek@redhat.com>
*/
public class LocalServiceIntegrationTest extends AbstractErraiIOCBusTest {
@EntryPoint
@Service
@Local
public static class LocalTestCompleteService implements MessageCallback {
static boolean received = false;
@Override
public void callback(final Message message) {
received = true;
}
}
@EntryPoint
@Service
public static class LocalTestCompleteServiceConfirmation implements MessageCallback {
static boolean worked = false;
@Override
public void callback(final Message message) {
worked = true;
}
}
@Override
protected void gwtSetUp() throws Exception {
super.gwtSetUp();
LocalTestCompleteService.received = false;
LocalTestCompleteServiceConfirmation.worked = false;
}
public void testLocalSemanticsOnSubject() {
runAfterInit(new Runnable() {
@Override
public void run() {
MessageBuilder.createMessage()
.toSubject("LocalTestTesterService")
.done().sendNowWith(ErraiBus.getDispatcher());
new Timer() {
@Override
public void run() {
if (LocalTestCompleteService.received) {
fail("received message from server!");
}
else if (LocalTestCompleteServiceConfirmation.worked) {
finishTest();
}
else {
schedule(100);
}
}
}.schedule(100);
}
});
}
public void testLocalSubjectCallable() {
runAfterInit(new Runnable() {
@Override
public void run() {
MessageBuilder.createMessage()
.toSubject("LocalTestCompleteService")
.done().sendNowWith(ErraiBus.getDispatcher());
new Timer() {
@Override
public void run() {
if (LocalTestCompleteService.received) {
finishTest();
}
else {
schedule(100);
}
}
}.schedule(100);
}
});
}
}