package org.pageley.games.fleetcommand.domain.building;
import org.pageley.games.fleetcommand.domain.Resource;
import junit.framework.TestCase;
public class ProductionBehaviorTest extends TestCase {
public void testExecute() {
Behavior behavior = new ProductionBehavior(Resource.FOOD, 10);
final boolean[] produced = new boolean[] {false};
behavior.addListener(new BehaviorListener() {
@Override
public void produced(Resource resource, int amount) {
assertEquals(Resource.FOOD, resource);
assertEquals(10, amount);
produced[0] = true;
}
@Override
public void consumed(Resource resource, int amount) {
}
});
behavior.execute(3600);
assertTrue(produced[0]);
}
public void testCumulativeExecute() {
Behavior behavior = new ProductionBehavior(Resource.FOOD, 10);
final int[] produced = new int[] {0};
behavior.addListener(new BehaviorListener() {
@Override
public void produced(Resource resource, int amount) {
assertEquals(Resource.FOOD, resource);
if(produced[0] == 0) {
assertEquals(9, amount);
} else {
assertEquals(1, amount);
}
produced[0]++;
}
@Override
public void consumed(Resource resource, int amount) {
}
});
behavior.execute(3599);
assertEquals(1, produced[0]);
behavior.execute(2);
assertEquals(2, produced[0]);
}
}
|