1
0
mirror of https://github.com/Rogiel/l2jserver2 synced 2025-12-08 08:23:11 +00:00

Change-Id: I375a10c9d7ce56df457a998e5cb9d02465865973

This commit is contained in:
rogiel
2011-04-29 20:17:57 -03:00
parent 0662150229
commit f1d8e6588f
16 changed files with 825 additions and 0 deletions

View File

@@ -0,0 +1,121 @@
package com.l2jserver.service.world;
import java.util.concurrent.atomic.AtomicBoolean;
import junit.framework.Assert;
import org.junit.Before;
import org.junit.Test;
import com.google.inject.AbstractModule;
import com.google.inject.Guice;
import com.google.inject.Injector;
import com.google.inject.Scopes;
import com.l2jserver.model.world.L2Character;
import com.l2jserver.model.world.Item;
import com.l2jserver.model.world.item.ItemDropEvent;
import com.l2jserver.model.world.item.ItemEvent;
import com.l2jserver.model.world.item.ItemListener;
import com.l2jserver.model.world.player.PlayerEvent;
import com.l2jserver.model.world.player.PlayerListener;
import com.l2jserver.model.world.player.PlayerSpawnEvent;
import com.l2jserver.service.BasicServiceModule;
import com.l2jserver.service.ServiceStartException;
import com.l2jserver.service.game.world.WorldEventDispatcher;
import com.l2jserver.service.game.world.WorldEventDispatcherImpl;
import com.l2jserver.service.game.world.WorldService;
import com.l2jserver.service.game.world.WorldServiceImpl;
public class WorldEventDispatcherImplTest {
private WorldService world;
private WorldEventDispatcher dispatcher;
@Before
public void tearUp() throws ServiceStartException {
Injector injector = Guice.createInjector(new BasicServiceModule(),
new AbstractModule() {
@Override
protected void configure() {
bind(WorldService.class).to(WorldServiceImpl.class).in(
Scopes.SINGLETON);
bind(WorldEventDispatcher.class).to(
WorldEventDispatcherImpl.class).in(
Scopes.SINGLETON);
}
});
world = injector.getInstance(WorldService.class);
dispatcher = injector.getInstance(WorldEventDispatcher.class);
Assert.assertNotNull(world);
Assert.assertNotNull(dispatcher);
world.start();
}
@Test
public void testListeners1() {
final L2Character character1 = new L2Character();
final L2Character character2 = new L2Character();
final Item item1 = new Item();
world.add(character1);
world.add(character2);
world.add(item1);
final AtomicBoolean bool = new AtomicBoolean();
Assert.assertFalse(bool.get());
character1.addListener(new PlayerListener() {
@Override
protected void dispatch(PlayerEvent e) {
bool.set(true);
e.getPlayer().removeListener(this);
}
});
character1.addListener(new PlayerListener() {
@Override
protected void dispatch(PlayerEvent e) {
// bool.set(true);
}
});
dispatcher.dispatch(new PlayerSpawnEvent(character1, null));
Assert.assertTrue(bool.get());
bool.set(false);
dispatcher.dispatch(new PlayerSpawnEvent(character1, null));
Assert.assertFalse(bool.get());
}
@Test
public void testListeners2() {
final L2Character character1 = new L2Character();
final L2Character character2 = new L2Character();
final Item item1 = new Item();
final Item item2 = new Item();
world.add(character1);
world.add(character2);
world.add(item1);
world.add(item2);
final AtomicBoolean bool1 = new AtomicBoolean();
final AtomicBoolean bool2 = new AtomicBoolean();
Assert.assertFalse(bool1.get());
Assert.assertFalse(bool2.get());
character1.addListener(new PlayerListener() {
@Override
public void dispatch(PlayerEvent e) {
bool1.set(true);
}
});
item1.addListener(new ItemListener() {
@Override
public void dispatch(ItemEvent e) {
bool2.set(true);
}
});
dispatcher.dispatch(new ItemDropEvent(character1, item1));
Assert.assertTrue(bool1.get());
Assert.assertTrue(bool2.get());
}
}