Hajj-simulation/tests/CampaignTest.java
HeshamTB 6ffb71154c
new tests for camp and street:
One test still fails in camp
2020-12-11 17:35:41 +03:00

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);
}
}