private static void adminMenu() throws ParseException, CloneNotSupportedException {
ArrayList<InsurancePolicy> policies1 = new ArrayList<>();
boolean logout = false;
do {
displayAdminMenu();
Scanner scan = new Scanner(System.in);
int userSelection = scan.nextInt();
scan.nextLine();
switch (userSelection) {
case 1:
System.out.println("Test Code");
// Test Case 1: Create Cars and Insurance Policies
Car car1 = new Car("Toyota", CarType.SED, 2020, 25000.0);
Car car2 = new Car("BMW", CarType.LUX, 2019, 45000.0);
InsurancePolicy policy1 = new ComprehensivePolicy("John Doe", 1, car1, 2, new MyDate(2024, 12, 31), 25, 3);
InsurancePolicy policy2 = new ThirdPartyPolicy("Alice Smith", 2, car2, 1, new MyDate(2023, 10, 15), "Third-party policy comments");
// Test Case 2: Calculate Insurance Premiums
double premium1 = policy1.calcPayment(100);
double premium2 = policy2.calcPayment(100);
// Test Case 3: Display User's Policies and Total Payments
ArrayList<InsurancePolicy> userPolicies = new ArrayList<>();
userPolicies.add(policy1);
userPolicies.add(policy2);
User user = new User("Bob Johnson", 1001, new Address(123, "Main St", "Suburbia", "Cityville"), userPolicies);
double totalPayments = user.calTotalPremiums(100);
// Test Case 4: Filter Policies by Expiry Date
MyDate testExpiryDate = new MyDate(2023, 12, 31);
ArrayList<InsurancePolicy> filteredPolicies = user.filterByExpiryDate(testExpiryDate);
// Output Validation
// Test Case 1 Output Validation
System.out.println("Test Case 1: Create Cars and Insurance Policies");
System.out.println("--- Car Details ---");
car1.print();
car2.print();
System.out.println("--- Insurance Policy Details ---");
policy1.print();
policy2.print();
// Test Case 2 Output Validation
System.out.println("\nTest Case 2: Calculate Insurance Premiums");
System.out.println("Expected Premium for Policy 1: $50.0"); // Expected output: $50.0
System.out.println("Expected Premium for Policy 2: $100.0"); // Expected output: $100.0
System.out.println("--- Calculated Premiums ---");
System.out.println("Premium for Policy 1: $" + premium1);
System.out.println("Premium for Policy 2: $" + premium2);
// Test Case 3 Output Validation
System.out.println("\nTest Case 3: User's Policies and Total Payments");
System.out.println("--- User Details ---");
user.print();
System.out.println("Expected Total Payments for User: $150.0"); // Expected output: $150.0
System.out.println("Total Payments for User: $" + totalPayments);
// Test Case 4 Output Validation
System.out.println("\nTest Case 4: Filter Policies by Expiry Date");
System.out.println("Expected Filtered Policies: Policies expiring before 2023-12-31");
System.out.println("--- Filtered Policies ---");
for (InsurancePolicy policy : filteredPolicies) {
policy.print();
}
Address address7 = new Address(15, "King", "Fairfield West", "Sydney");
policies1.clear();
User user6 = new User("James", 6, address7, policies1);
User foundUser3 = insuranceCom.findUser(5);
ArrayList<InsurancePolicy> deepCopy = foundUser3.deepCopyPolicies();
user6.setPolicies(deepCopy);
// ... Rest of your code ...
break;
case 2:
// ... Rest of your cases ...
}
} while (!logout);
}