79 lines
2.6 KiB
Java
79 lines
2.6 KiB
Java
import org.junit.jupiter.api.BeforeEach;
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
import java.util.ArrayList;
|
|
|
|
import static org.junit.jupiter.api.Assertions.*;
|
|
|
|
public class CampaignTest {
|
|
|
|
private Campaign campaign;
|
|
|
|
@BeforeEach
|
|
void setUp() {
|
|
int numberOfBusses = 50;
|
|
campaign = new Campaign(District.ALAZIZIYA,
|
|
numberOfBusses);
|
|
}
|
|
|
|
@Test
|
|
void VehicleSettersGettersWorkCorrcectly() {
|
|
ArrayList<Vehicle> oldVehicles = campaign.getVehicles();
|
|
assertSame(oldVehicles, campaign.getVehicles());
|
|
ArrayList<Vehicle> newVehicles = new ArrayList<>();
|
|
for (int i = 0; i < 150; i++) {
|
|
newVehicles.add(new Bus());
|
|
}
|
|
campaign.setVehicles(newVehicles);
|
|
assertNotSame(oldVehicles, newVehicles);
|
|
assertSame(campaign.getVehicles(), newVehicles);
|
|
}
|
|
|
|
@Test
|
|
void ConstructorWithNumberOfBusses() {
|
|
campaign = new Campaign(District.ALAZIZIYA, 60);
|
|
assertNotNull(campaign.getVehicles());
|
|
|
|
ArrayList<Vehicle> list = new ArrayList<>();
|
|
list.add(new Bus());
|
|
list.add(new Bus());
|
|
campaign = new Campaign(District.ALAZIZIYA, list);
|
|
assertNotNull(campaign.getVehicles());
|
|
assertEquals(campaign.getVehicles().size(), 2);
|
|
}
|
|
|
|
@Test
|
|
void setRouteSetsSameForAllVehicles() {
|
|
Route r = new Route(new Street[]{new Street(200, 3, StreetNames.FOURTH_HIGHWAY1),
|
|
new Street(500,2,StreetNames.FOURTH_HIGHWAY3)},District.ALMANSOOR, Mashier.ARAFAT);
|
|
campaign.setRoute(r);
|
|
assertSame(campaign.getVehicles().get(5).getRoute(), r);
|
|
assertSame(campaign.getVehicles().get(0).getRoute(), r);
|
|
assertSame(campaign.getVehicles().get(22).getRoute(), r);
|
|
}
|
|
|
|
@Test
|
|
void arrivalFunctionsWorkFine() {
|
|
ArrayList<Vehicle> buses = new ArrayList<>();
|
|
buses.add(new Bus());
|
|
buses.add(new Bus());
|
|
buses.add(new Bus());
|
|
buses.add(new Bus());
|
|
Street s = new Street(500, 3, StreetNames.FOURTH_HIGHWAY3);
|
|
Route r = new Route(s);
|
|
for (Vehicle v : buses) {
|
|
((Bus)v).setCampaign(campaign);
|
|
v.setCurrentStreet(s);
|
|
v.setRoute(r);
|
|
}
|
|
campaign = new Campaign(District.ALAZIZIYA, buses);
|
|
assertFalse(campaign.isDone());
|
|
assertEquals(campaign.getNumberOfArrivedBuses(), 0);
|
|
assertEquals(campaign.getArrivedVehicles().size(), 0);
|
|
|
|
campaign.getVehicles().get(0).arrive();//Vehicle notifies camp
|
|
assertEquals(campaign.getNumberOfArrivedBuses(), 1);
|
|
assertEquals(campaign.getArrivedVehicles().size(), 1);
|
|
}
|
|
}
|