package practice;
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
Park park = new Park();
park.setCapacity(10);
Car car1 = carCreate("张一", "沪A70730");
Car car2 = carCreate("张二", "沪A70731");
Car car3 = carCreate("张三", "沪A70732");
Car car4 = carCreate("张四", "沪A70733");
Car car5 = carCreate("张五", "沪A70734");
Car car6 = carCreate("张六", "沪A70735");
Car car7 = carCreate("张七", "沪A70736");
Car car8 = carCreate("张八", "沪A70737");
Car car9 = carCreate("张九", "沪A70738");
Car car10 = carCreate("张十", "沪A70739");
Car car11 = carCreate("张十一", "沪A70740");
park.parking(car1.getVehicleNo());
park.parking(car2.getVehicleNo());
park.parking(car3.getVehicleNo());
park.parking(car4.getVehicleNo());
park.parking(car5.getVehicleNo());
park.parking(car6.getVehicleNo());
park.parking(car7.getVehicleNo());
park.parking(car8.getVehicleNo());
park.parking(car9.getVehicleNo());
park.parking(car10.getVehicleNo());
park.parking(car11.getVehicleNo());
}
private static Car carCreate(String owner, String vehicleNo) {
Car car1 = new Car();
car1.setOwner(owner );
car1.setVehicleNo(vehicleNo );
return car1;
}
}
package test;
import practice.Car;
import practice.Park;
import org.junit.Assert;
import org.junit.Test;
public class ParkTest {
@Test
public void testParking_allow_park () {
Park park = new Park();
park.setCapacity(10);
Car car1 = carCreate("张一", "沪A70730");
park.parking(car1.getVehicleNo());
Assert.assertEquals(1, park.getParkingList().size());
}
@Test
public void testParking_not_allow_park () {
Park park = new Park();
park.setCapacity(10);
Car car1 = carCreate("张一", "沪A70730");
Car car2 = carCreate("张二", "沪A70731");
Car car3 = carCreate("张三", "沪A70732");
Car car4 = carCreate("张四", "沪A70733");
Car car5 = carCreate("张五", "沪A70734");
Car car6 = carCreate("张六", "沪A70735");
Car car7 = carCreate("张七", "沪A70736");
Car car8 = carCreate("张八", "沪A70737");
Car car9 = carCreate("张九", "沪A70738");
Car car10 = carCreate("张十", "沪A70739");
Car car11 = carCreate("张十一", "沪A70740");
park.parking(car1.getVehicleNo());
park.parking(car2.getVehicleNo());
park.parking(car3.getVehicleNo());
park.parking(car4.getVehicleNo());
park.parking(car5.getVehicleNo());
park.parking(car6.getVehicleNo());
park.parking(car7.getVehicleNo());
park.parking(car8.getVehicleNo());
park.parking(car9.getVehicleNo());
park.parking(car10.getVehicleNo());
park.parking(car11.getVehicleNo());
Assert.assertFalse(park.getParkingList().contains(car11.getVehicleNo()));
}
@Test
public void testParking_allow_park_after_take () {
Park park = new Park();
park.setCapacity(10);
Car car1 = carCreate("张一", "沪A70730");
Car car2 = carCreate("张二", "沪A70731");
Car car3 = carCreate("张三", "沪A70732");
Car car4 = carCreate("张四", "沪A70733");
Car car5 = carCreate("张五", "沪A70734");
Car car6 = carCreate("张六", "沪A70735");
Car car7 = carCreate("张七", "沪A70736");
Car car8 = carCreate("张八", "沪A70737");
Car car9 = carCreate("张九", "沪A70738");
Car car10 = carCreate("张十", "沪A70739");
Car car11 = carCreate("张十一", "沪A70740");
park.parking(car1.getVehicleNo());
park.parking(car2.getVehicleNo());
park.parking(car3.getVehicleNo());
park.parking(car4.getVehicleNo());
park.parking(car5.getVehicleNo());
park.parking(car6.getVehicleNo());
park.parking(car7.getVehicleNo());
park.parking(car8.getVehicleNo());
park.parking(car9.getVehicleNo());
park.parking(car10.getVehicleNo());
park.parking(car11.getVehicleNo());
Assert.assertFalse(park.getParkingList().contains(car11.getVehicleNo()));
park.takeTheCar(car7.getVehicleNo());
park.parking(car11.getVehicleNo());
Assert.assertTrue(park.getParkingList().contains(car11.getVehicleNo()));
}
@Test
public void testTakeTheCar_simple () {
Park park = new Park();
park.setCapacity(10);
Car car1 = carCreate("张一", "沪A70730");
Car car2 = carCreate("张二", "沪A70731");
Car car3 = carCreate("张三", "沪A70732");
Car car4 = carCreate("张四", "沪A70733");
Car car5 = carCreate("张五", "沪A70734");
Car car6 = carCreate("张六", "沪A70735");
Car car7 = carCreate("张七", "沪A70736");
Car car8 = carCreate("张八", "沪A70737");
park.parking(car1.getVehicleNo());
park.parking(car2.getVehicleNo());
park.parking(car3.getVehicleNo());
park.parking(car4.getVehicleNo());
park.parking(car5.getVehicleNo());
park.parking(car6.getVehicleNo());
park.parking(car7.getVehicleNo());
park.parking(car8.getVehicleNo());
park.takeTheCar(car5.getVehicleNo());
Assert.assertEquals(7, park.getParkingList().size());
Assert.assertFalse(park.getParkingList().contains(car5.getVehicleNo()));
}
@Test
public void testTakeTheCar_complicate () {
Park park = new Park();
park.setCapacity(10);
Car car1 = carCreate("张一", "沪A70730");
Car car2 = carCreate("张二", "沪A70731");
Car car3 = carCreate("张三", "沪A70732");
Car car4 = carCreate("张四", "沪A70733");
Car car5 = carCreate("张五", "沪A70734");
Car car6 = carCreate("张六", "沪A70735");
Car car7 = carCreate("张七", "沪A70736");
Car car8 = carCreate("张八", "沪A70737");
Car car9 = carCreate("张九", "沪A70738");
Car car10 = carCreate("张十", "沪A70739");
Car car11 = carCreate("张十一", "沪A70740");
park.parking(car1.getVehicleNo());
park.parking(car2.getVehicleNo());
park.parking(car3.getVehicleNo());
park.parking(car4.getVehicleNo());
park.parking(car5.getVehicleNo());
park.parking(car6.getVehicleNo());
park.parking(car7.getVehicleNo());
park.parking(car8.getVehicleNo());
park.takeTheCar(car5.getVehicleNo());
park.parking(car5.getVehicleNo());
park.parking(car9.getVehicleNo());
park.parking(car10.getVehicleNo());
park.parking(car11.getVehicleNo());
Assert.assertFalse(park.getParkingList().contains(car11.getVehicleNo()));
park.takeTheCar(car7.getVehicleNo());
park.parking(car11.getVehicleNo());
park.takeTheCar(car6.getVehicleNo());
park.takeTheCar(car5.getVehicleNo());
Assert.assertTrue(park.getParkingList().contains(car11.getVehicleNo()));
Assert.assertEquals(8, park.getParkingList().size());
Assert.assertFalse(park.getParkingList().contains(car5.getVehicleNo()));
Assert.assertFalse(park.getParkingList().contains(car6.getVehicleNo()));
Assert.assertFalse(park.getParkingList().contains(car7.getVehicleNo()));
}
private Car carCreate(String owner, String vehicleNo) {
Car car1 = new Car();
car1.setOwner(owner );
car1.setVehicleNo(vehicleNo );
return car1;
}
}
package practice;
import java.util.ArrayList;
import java.util.List;
public class Park {
private int capacity;
private List<String> parkingList = new ArrayList();
public List<String> getParkingList() {
return parkingList;
}
public void parking(String vehicleNo){
if (parkingList.size() >= this.capacity) {
System.out.println("停车场已满,请稍等或者到别处停车");
return;
}
this.parkingList.add(vehicleNo);
}
// 取车
public void takeTheCar(String vehicleNo) {
this.parkingList.remove(vehicleNo);
}
public void setCapacity(int capacity) {
this.capacity = capacity;
}
public int getCapacity() {
return capacity;
}
}