Files
reservationsystem/src/java/lodge/TestReservations.java

123 lines
6.1 KiB
Java
Raw Normal View History

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 accounts 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.");
}
}