简易停车场-版本1
代码
car
package com.ebaotech.demo;
public class Car {
public Car() {
}
}
Voucher
package com.ebaotech.demo;
public class Voucher {
public Voucher() {
}
}
ParkingLot
package com.ebaotech.demo;
import org.junit.jupiter.api.Test;
import java.util.HashMap;
public class ParkingLot {
private final int CAPACITY = 1;
HashMap<Voucher,Car> hashMap=new HashMap<>(CAPACITY);
public Voucher saveCar(Car car) throws MyException {
Voucher voucher=new Voucher();
if(hashMap.size()<CAPACITY) {
hashMap.put(voucher, car);
}else {
throw new MyException("存取车位失败");
}
return voucher;
}
public Car pickUpCar(Voucher voucher) throws MyException {
Car car=hashMap.get(voucher);
if(car!=null) {
hashMap.remove(voucher);
}else {
throw new MyException("凭证失效");
}
return car;
}
}
MyException
package com.ebaotech.demo;
public class MyException extends Exception{
public MyException() {
super();
}
public MyException(String str) {
super(str);
}
}
Mytest
package com.ebaotech.demo;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.jupiter.api.function.Executable;
import static org.junit.jupiter.api.Assertions.assertThrows;
public class Mytest {
private ParkingLot parkingLot;
private Car car;
private Car car1;
private Voucher voucher;
private Voucher voucher1;
@Before
public void init() throws MyException {
parkingLot = new ParkingLot();
car = new Car();
car1 =new Car();
voucher =new Voucher();
voucher1 = parkingLot.saveCar(car);
}
@Test
public void showCanSave() {
assertThrows(MyException.class, new Executable() {
@Override
public void execute() throws Throwable {
parkingLot.saveCar(car);
parkingLot.saveCar(car1);
}
});
}
@Test
public void showCanNotSave() throws MyException {
Assert.assertEquals(car,parkingLot.pickUpCar(voucher1));
}
@Test
public void ShowCanPickUp() throws MyException {
Assert.assertEquals(car,parkingLot.pickUpCar(voucher));
}
}