This commit is contained in:
JunkJumper
2020-10-14 13:59:30 +02:00
parent 5ad90deb63
commit 5da7508ac7
20 changed files with 1275 additions and 53 deletions

View File

@@ -0,0 +1,104 @@
package TD4.cars;
import static org.junit.Assert.*;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.junit.Before;
import org.junit.Test;
import TD4.util.NotPossibleCarRentalException;
public class CarRentalServiceTest {
CarRentalService service ;
Car myCar0 = new Car("1111 AB 06",50);
Car myCar1 = new Car("1111 AB 75",100);
Car myCar2 = new Car("1111 AB 83",75);
LocalDate currentDate;
@Before
public void setUp() {
myCar0 = new Car("1111 AB 06",50);
myCar1 = new Car("1111 AB 75",100);
myCar2 = new Car("1111 AB 83",75);
service = new CarRentalService( new ArrayList<>(Arrays.asList(myCar0, myCar1, myCar2) ) ) ;
}
@Test
public void testGetAvailableCars() throws NotPossibleCarRentalException {
LocalDate current = LocalDate.of(2020,9,11);
List<Car> possibleCars =
service.getAvailableCars(current, 2);
assertEquals(3, possibleCars.size());
CarRental carRental = service.book(myCar0,current,2);
assertTrue(carRental != null);
possibleCars =
service.getAvailableCars(current, 1);
assertEquals(2, possibleCars.size());
possibleCars =
service.getAvailableCars(current, 2);
assertEquals(2, possibleCars.size());
possibleCars =
service.getAvailableCars(LocalDate.of(2020,9,12), 1);
assertEquals(2, possibleCars.size());
possibleCars =
service.getAvailableCars(LocalDate.of(2020,9,13), 1);
assertEquals(3, possibleCars.size());
}
@Test
public void testBookAnAvalaibleCar() throws NotPossibleCarRentalException {
CarRental carRental = service.book(myCar0,LocalDate.of(2018,9,11), 2);
assertFalse(carRental==null);
List<Car> possibleCars = service.getAvailableCars(LocalDate.of(2018,9,11), 1);
assertEquals(2, possibleCars.size());
possibleCars = service.getAvailableCars(LocalDate.of(2018,9,12), 3);
assertEquals(2, possibleCars.size());
possibleCars = service.getAvailableCars(LocalDate.of(2018,9,13), 3);
assertEquals(3, possibleCars.size());
possibleCars = service.getAvailableCars(LocalDate.of(2018,9,9), 4);
assertEquals(2, possibleCars.size());
possibleCars = service.getAvailableCars(LocalDate.of(2018,9,19), 7);
assertEquals(3, possibleCars.size());
}
@Test
public void testBookANonAvalaibleCar() throws NotPossibleCarRentalException {
CarRental carRental = service.book(myCar0,LocalDate.of(2020,9,11), 2);
assertFalse(carRental==null);
carRental = service.book(myCar0,LocalDate.of(2020,9,12), 2);
assertTrue(carRental==null);
}
@Test
public void testGetNotAvailableCars() throws NotPossibleCarRentalException {
service.book(myCar0,LocalDate.of(2020,9,11), 2);
List<Car> possibleCars = service.getAvailableCars(LocalDate.of(2020,9,11), 2);
assertEquals(2, possibleCars.size());
possibleCars = service.getAvailableCars(LocalDate.of(2020,9,12), 2);
assertEquals(2, possibleCars.size());
possibleCars = service.getAvailableCars(LocalDate.of(2020,9,13), 2);
assertEquals(3, possibleCars.size());
}
}

View File

@@ -0,0 +1,61 @@
package TD4.cars;
import static org.junit.jupiter.api.Assertions.*;
import java.time.LocalDate;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import TD4.util.DateTools;
class CarRentalTest {
Car myCar ;
CarRental carRental;
@BeforeEach
public void setUp() {
myCar = new Car("1111 AB 06",50);
}
@Test
public void testCarRentalCreation() {
carRental = new CarRental(myCar, LocalDate.of(2018, 8, 30), 3);
assertEquals( myCar.getDayPrice()*3, carRental.getPrice());
}
@Test
public void testCarRentalAvailability() {
carRental = new CarRental(myCar, LocalDate.of(2018, 8, 30), 3);
LocalDate[] dates = DateTools.getDays(LocalDate.of(2018, 8, 30), 3);
assertEquals(3, dates.length );
dates = DateTools.getDays(LocalDate.of(2018, 8, 30), 1);
assertTrue(carRental.includeADate(dates),"date de début OK");
dates = DateTools.getDays(LocalDate.of(2018, 8, 29), 1);
assertFalse(carRental.includeADate(dates),"date à un jour avant");
dates = DateTools.getDays(LocalDate.of(2018, 9, 2), 1);
assertFalse(carRental.includeADate(dates),"date à un jour après");
dates = DateTools.getDays(LocalDate.of(2018, 8, 25), 10);
assertTrue(carRental.includeADate(dates),"date incluse après");
dates = DateTools.getDays(LocalDate.of(2018, 9, 1), 1);
assertTrue(carRental.includeADate(dates),"date incluse sur la fin");
dates = DateTools.getDays(LocalDate.of(2018, 8, 31), 10);
assertTrue(carRental.includeADate(dates),"date incluse sur la fin");
}
@Test
public void testGetPrice() {
carRental = new CarRental(myCar, LocalDate.of(2017, 8, 31), 3);
assertEquals(50,myCar.getDayPrice());
assertEquals(50.0*3,carRental.getPrice());
}
}