2025-08-28 21:08:16 -04:00
|
|
|
|
package lodge;
|
|
|
|
|
|
|
2025-09-03 08:56:57 -04:00
|
|
|
|
import java.time.ZoneId;
|
|
|
|
|
|
import java.time.ZonedDateTime;
|
|
|
|
|
|
|
2025-08-28 21:08:16 -04:00
|
|
|
|
import lodge.reservationsystem.AccomodationManager;
|
|
|
|
|
|
import lodge.reservationsystem.Account;
|
|
|
|
|
|
import lodge.reservationsystem.Address;
|
|
|
|
|
|
import lodge.reservationsystem.EmailAddress;
|
2025-08-31 18:59:49 -04:00
|
|
|
|
import lodge.reservationsystem.CabinReservation;
|
|
|
|
|
|
import lodge.reservationsystem.HouseReservation;
|
|
|
|
|
|
import lodge.reservationsystem.HotelReservation;
|
2025-08-29 07:26:53 -04:00
|
|
|
|
import lodge.reservationsystem.Reservation;
|
2025-08-28 21:08:16 -04:00
|
|
|
|
|
|
|
|
|
|
public final class TestReservations {
|
|
|
|
|
|
public static void main(String[] args) throws Exception {
|
|
|
|
|
|
|
|
|
|
|
|
AccomodationManager mgr = new AccomodationManager();
|
2025-09-03 08:56:57 -04:00
|
|
|
|
String home = System.getenv("HOMEDRIVE") + System.getenv("HOMEPATH");
|
|
|
|
|
|
home = home.replace("\\", "/")
|
|
|
|
|
|
+ "/workspace/reservationsystem/src/resources";
|
2025-08-29 10:32:10 -04:00
|
|
|
|
mgr.setDataStoreRoot(home);
|
2025-08-28 21:08:16 -04:00
|
|
|
|
// 1. Get the list of loaded accounts from Manager
|
|
|
|
|
|
|
|
|
|
|
|
mgr.loadAll();
|
|
|
|
|
|
|
|
|
|
|
|
// 2. Retrieve a loaded account object that matches a specific account number
|
|
|
|
|
|
|
|
|
|
|
|
mgr.retrieveAccount("A######");
|
|
|
|
|
|
|
|
|
|
|
|
// 3. Add new account object to the list managed by Manager (if account object
|
|
|
|
|
|
// already exists on add action with the same account number, it is considered
|
|
|
|
|
|
// an error)
|
|
|
|
|
|
|
2025-09-03 08:56:57 -04:00
|
|
|
|
Account acct = mgr.newAccount("701-456-7890",
|
|
|
|
|
|
new Address("10 wilco ave", "wilco", "WY", "82801"),
|
|
|
|
|
|
new EmailAddress("wilco@wyommin.net"));
|
2025-08-29 07:26:53 -04:00
|
|
|
|
mgr.AddAccount(acct);
|
2025-08-28 21:08:16 -04:00
|
|
|
|
|
|
|
|
|
|
// 4. Request that Manager updates specific account’s files with data stored in
|
|
|
|
|
|
// memory
|
2025-08-29 07:26:53 -04:00
|
|
|
|
mgr.UpdateAccount(mgr.retrieveAccount(acct.account_number()));
|
2025-08-28 21:08:16 -04:00
|
|
|
|
// 5. Add draft lodging reservation to an account (if reservation object already
|
|
|
|
|
|
// exists with the same reservation number, it is considered an error)
|
|
|
|
|
|
|
2025-09-03 08:56:57 -04:00
|
|
|
|
HotelReservation hotel = new HotelReservation();
|
|
|
|
|
|
hotel.setPhysical_address(new Address("400 hotel ave", "Maryland City", "CA", "20723"));
|
|
|
|
|
|
hotel.setMailing_address(new Address("400 hotel ave", "Maryland City", "MD", "20723"));
|
|
|
|
|
|
hotel.setNumberOfBeds(3);
|
|
|
|
|
|
hotel.setNumberOfFloors(1);
|
|
|
|
|
|
hotel.setNumberOfBedRooms(2);
|
|
|
|
|
|
hotel.setSquareFeet(450);
|
2025-09-03 10:12:45 -04:00
|
|
|
|
hotel.setReservation_start_date(ZonedDateTime.of(2025, 07, 05, 10, 0, 0, 0, ZoneId.of("UTC")));
|
|
|
|
|
|
hotel.setReservation_end_date(ZonedDateTime.of(2025, 11, 30, 22, 0, 0, 0, ZoneId.of("UTC")));
|
2025-09-03 08:56:57 -04:00
|
|
|
|
boolean success1 = mgr.addReservation(mgr.retrieveAccount(acct.account_number()), hotel);
|
|
|
|
|
|
assert success1;
|
|
|
|
|
|
|
|
|
|
|
|
mgr.UpdateAccount(mgr.retrieveAccount(acct.account_number()));
|
|
|
|
|
|
|
|
|
|
|
|
CabinReservation cabin = new CabinReservation();
|
2025-08-29 07:26:53 -04:00
|
|
|
|
cabin.setPhysical_address(new Address("30 cabin ave", "Carnelian", "CA", "96140"));
|
|
|
|
|
|
cabin.setMailing_address(new Address("40 cabin ave", "Carnelian Bay", "CA", "96140"));
|
|
|
|
|
|
cabin.setNumberOfBeds(4);
|
|
|
|
|
|
cabin.setNumberOfFloors(2);
|
|
|
|
|
|
cabin.setNumberOfBedRooms(3);
|
|
|
|
|
|
cabin.setSquareFeet(806);
|
2025-09-03 10:12:45 -04:00
|
|
|
|
cabin.setReservation_start_date(ZonedDateTime.of(2025, 07, 05, 10, 0, 0, 0, ZoneId.of("UTC")));
|
|
|
|
|
|
cabin.setReservation_end_date(ZonedDateTime.of(2025, 11, 30, 22, 0, 0, 0, ZoneId.of("UTC")));
|
2025-09-03 08:56:57 -04:00
|
|
|
|
boolean success2 = mgr.addReservation(mgr.retrieveAccount(acct.account_number()), cabin);
|
|
|
|
|
|
assert success2;
|
|
|
|
|
|
|
|
|
|
|
|
HouseReservation house = new HouseReservation();
|
|
|
|
|
|
house.setPhysical_address(new Address("3000 Osage ave", "GreenBelt", "MD", "20740"));
|
|
|
|
|
|
house.setMailing_address(new Address("40012 College ave", "College Park", "MD", "20740"));
|
|
|
|
|
|
house.setNumberOfBeds(4);
|
|
|
|
|
|
house.setNumberOfFloors(3);
|
|
|
|
|
|
house.setNumberOfBedRooms(3);
|
|
|
|
|
|
house.setSquareFeet(1400);
|
|
|
|
|
|
house.setReservation_start_date(ZonedDateTime.of(2025, 07, 05, 10, 0, 0, 0, ZoneId.of("UTC")));
|
|
|
|
|
|
house.setReservation_end_date(ZonedDateTime.of(2025, 11, 30, 22, 0, 0, 0, ZoneId.of("UTC")));
|
|
|
|
|
|
boolean success3 = mgr.addReservation(mgr.retrieveAccount(acct.account_number()), house);
|
|
|
|
|
|
assert success3;
|
|
|
|
|
|
|
|
|
|
|
|
Reservation rsrv = (Reservation) cabin;
|
|
|
|
|
|
try {
|
|
|
|
|
|
assert mgr.addReservation(acct, cabin);
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
|
System.out.println("Error: cabin already in list.");
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
mgr.UpdateAccount(mgr.retrieveAccount(acct.account_number()));
|
2025-08-31 18:59:49 -04:00
|
|
|
|
|
2025-08-29 07:26:53 -04:00
|
|
|
|
// 6. Complete reservation that is associated with an account
|
2025-09-03 08:56:57 -04:00
|
|
|
|
rsrv = mgr.retreiveReservation(cabin.getReservation_number());
|
2025-08-29 07:26:53 -04:00
|
|
|
|
rsrv.Complete();
|
|
|
|
|
|
|
2025-09-03 08:56:57 -04:00
|
|
|
|
mgr.UpdateAccount(mgr.retrieveAccount(acct.account_number()));
|
2025-08-29 10:32:10 -04:00
|
|
|
|
|
|
|
|
|
|
// 7. Cancel reservation that is associated with an account
|
2025-09-03 08:56:57 -04:00
|
|
|
|
rsrv = mgr.retreiveReservation(cabin.getReservation_number());
|
2025-08-29 10:32:10 -04:00
|
|
|
|
rsrv.Cancel();
|
|
|
|
|
|
mgr.UpdateAccount(mgr.retrieveAccount(acct.account_number()));
|
|
|
|
|
|
/*
|
2025-08-28 21:08:16 -04:00
|
|
|
|
*
|
|
|
|
|
|
* if (rsrv != null) {
|
|
|
|
|
|
* // 8. Change reservation values that can be changed (if reservation is
|
|
|
|
|
|
* // cancelled, completed, or for past date, it is considered an error)
|
|
|
|
|
|
* rsrv = Reservation.update(rsrv);
|
|
|
|
|
|
*
|
|
|
|
|
|
* // 9. Request for price per night to be calculated and returned for a
|
|
|
|
|
|
* specific
|
|
|
|
|
|
* // reservation
|
|
|
|
|
|
*
|
|
|
|
|
|
* rsrv = Reservation.calculatePricePerNight(rsrv);
|
|
|
|
|
|
* // 10. Request for total reservation price to be calculated and returned for
|
|
|
|
|
|
* a
|
|
|
|
|
|
* // specific reservation
|
|
|
|
|
|
* }
|
|
|
|
|
|
*/
|
|
|
|
|
|
System.out.println("Program Completed.");
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|