Question: Question: Test Plan See Sample(Sample is not for this code) import java.util.ArrayList; import java.util.Scanner; abstract class Appointment{ // abstract class declaration private String description; //
Question: Test Plan
See Sample(Sample is not for this code)

import java.util.ArrayList;
import java.util.Scanner;
abstract class Appointment{ // abstract class declaration
private String description; // variable declaration
private String lastName; // variable declaration
private int hours=0; // variable declaration and assign hours as 0
private int minutes=0; // variable declaration and assign minutes as 0
public void setDescription(String description){ // called method
this.description = description; // since parameter and member same use this to assign parameter
}
public void setLastName(String lastName){ // called method
this.lastName = lastName; // since parameter and member same use this to assign parameter
}
public void setHours(int hours){ // called method
this.hours = hours; // since parameter and member same use this to assign parameter
}
public void setMinutes(int minutes){ // called method
this.minutes = minutes; // since parameter and member same use this to assign parameter
}
public String getDescription(){ // called method
return this.description; // return descripton what we assign from parameter
}
public String getLastName(){ // called method
return this.lastName; // return lastName what we assign from parameter
}
public int getHours(){ // called method
return this.hours; // retuen hours what we assign from parameter
}
public int getMinutes(){ // called method
return this.minutes; // retuen minutes what we assign from parameter
}
abstract public boolean occursOn(int year,int month,int day); // calling method
}
class Onetime extends Appointment{ // derived class
/* members declaration*/
private int year;
private int month;
private int day;
public void setYear(int year) { // called method
this.year=year; // since parameter and member same use this to assign parameter
}
public void setMonth(int month) { // called method
this.month=month; // since parameter and member same use this to assign parameter
}
public void setDay(int day) { // called method
this.day=day; // since parameter and member same use this to assign parameter
}
public int getYear() { // called method
return this.year; // since parameter and member same use this to assign parameter
}
public int getMonth() { // called method
return this.month; // since parameter and member same use this to assign parameter
}
public int getDay() { // called method
return this.day; // since parameter and member same use this to assign parameter
}
@Override
public boolean occursOn(int year, int month, int day) {
// method to check overide or same data
if(this.year==year && this.month==month && this.day==day) // check overide or same data
return true; // if exist return true
return false; // if not return false
}
}
class Daily extends Appointment{ // DERIVED CLASS
@Override
public boolean occursOn(int year, int month, int day) {
// TODO Auto-generated method stub
return true;
}
}
class Monthly extends Appointment{ // DERIVED CLASS
private int day; // member declaration
public void setDay(int day) { // called method
this.day=day;
}
public int getDay() { // called method
return this.day; // since parameter and member same use this to assign parameter
}
@Override
public boolean occursOn(int year, int month, int day) {
// called method
if(this.day==day) // check same day or not
return true; // same day return true
return false; // not same day return false
}
}
public class TestAppointment { // class declaration
static Scanner sc= new Scanner(System.in); // scanner to accept data
public static void main(String[] args) { // main function
ArrayList
System.out.println("How many appointments do you with to make?");
int num = sc.nextInt(); // Accept number of appointments
for(int i = 1;i
System.out.println("Please make a selection:");
System.out.println("1. One Time Appointment");
System.out.println("2. Daily Appointment");
System.out.println("3. Monthly Appointment");
int selection = sc.nextInt(); // Accept the selection
al.add(makeAppointment(selection)); // add the appointments to array llist
}
System.out.println("*******Thank you for making all your appointments*********");
char choice='y'; // variable declaration
while(choice=='y') {
System.out.println("What is the date you wish to look up in your Appointment's Calendar");
System.out.print("Enter the month: ");
int month=sc.nextInt(); // Acceept the month
System.out.print("Enter the day: ");
int day=sc.nextInt(); // Acceept the day
System.out.print("Enter the year: ");
int year=sc.nextInt(); // Acceept the year
System.out.println("On "+month+"/"+day+"/"+year+" you have the following appointments:"); // print the appointments
for(Appointment a:al) { // Loop to run for all appointments
boolean isPresent=checkAppointment(a,year,month,day); // calling method
if(isPresent) { // check appointment exist
System.out.println(a.getDescription()+" with "+a.getLastName()+" at "+a.getHours()+":"+a.getMinutes()); // print appointment details
}
}
System.out.println("Do you wish to look up another date?");
choice=sc.next().charAt(0); // accept choice
}
System.out.println("Thank you for using Appointment Calendar.");
}
public static Appointment makeAppointment(int selection) { // called method
/* variable declaration*/
Appointment app=null;
String description="";
String lastName="";
int hours=0;
int minutes = 0;
int day=0;
int year=0;
int month=0;
sc.nextLine();
switch (selection) { // switch statement to selection
case 1:
Onetime onetime=new Onetime();
System.out.println("What is the description of your appointment?");
description = sc.nextLine(); // Accept description for appointment
System.out.println("What is your person's name?");
lastName = sc.nextLine(); // Accept person's name
System.out.println("What is the year of your appointment?(2017-2018)");
year = sc.nextInt(); // Accept year
System.out.println("What is the month of your appointment?(1-12)");
month = sc.nextInt(); // Accept month
System.out.println("What is the day of your appointment?(1-31)");
day = sc.nextInt(); // Accept day
System.out.println("What is the hour of your appointment?(1-31)");
hours = sc.nextInt(); // Accept hours
System.out.println("What is the minutes of your appointment?(1-31)");
minutes = sc.nextInt(); // Accept minutes
/*calling methods*/
onetime.setDescription(description);
onetime.setHours(hours);
onetime.setLastName(lastName);
onetime.setMonth(month);
onetime.setMinutes(minutes);
onetime.setYear(year);
onetime.setDay(day);
System.out.println("Appointment added with "+lastName+" on "+month+"/"+day+"/"+year+" at "+hours+":"+minutes); // print appointment holder details
System.out.println();
return onetime;
case 2:
Daily daily = new Daily();
System.out.println("What is the description of your appointment?");
description = sc.nextLine(); // Accept description
System.out.println("What is your person's name?");
lastName = sc.nextLine(); // Accept lastName
System.out.println("What is the hour of your appointment?(1-31)");
hours = sc.nextInt(); // Accept hours
System.out.println("What is the minutes of your appointment?(1-31)");
minutes = sc.nextInt(); // Accept minutes
/* calling methods*/
daily.setDescription(description);
daily.setHours(hours);
daily.setLastName(lastName);
daily.setMinutes(minutes);
System.out.println("Appointment added with "+lastName+" Daily at "+hours+":"+minutes); // print appointment holder details
System.out.println();
return daily;
case 3:
Monthly monthly = new Monthly();
System.out.println("What is the description of your appointment?");
description = sc.nextLine(); // Accept description
System.out.println("What is your person's name?");
lastName = sc.nextLine(); // Accept lastName
System.out.println("What day of the month is your appointment?(1-12)");
day = sc.nextInt(); // Accept day
System.out.println("What is the hour of your appointment?(1-31)");
hours = sc.nextInt(); // Accept hours
System.out.println("What is the minutes of your appointment?(1-31)");
minutes = sc.nextInt(); // Accept minutes
/* calling methods*/
monthly.setDescription(description);
monthly.setHours(hours);
monthly.setLastName(lastName);
monthly.setMinutes(minutes);
monthly.setDay(day);
System.out.println("Appointment added with "+lastName+" Monthly on day "+day+" at "+hours+":"+minutes);
// print appointment holder details
System.out.println();
return monthly;
default:
System.out.println("Invalid Choice..!!");
return app;
}
}
public static boolean checkAppointment(Appointment a, int year, int month, int day) { // calling method to check appointments
return a.occursOn(year, month, day); // pass details
}
}
Test Test Case DescriptionPredicted Output Case No. Actual Output Menu is Displayed in a Loop, until the A menu consisting of 4 main options is Please make a selection: "exit" option is selected. 1. Add a Friend's Contact Info displayed to the user (add, change, remove, display) Change a Friend's Contact Info Remove a Friend's Contact Info 2. 3. 4. Display a Friend's Contact Info All friends? Specific Friend's First Name: Specific Friend's Last Name: a. b. Request friend's contact information, create friend object, add it to the array, Enter your friend's last name: and give feedback that add was successful. Increment the currentSize by Enter your friend's cell phone number: 1. r friend's first name Menu option 1 (Add) is selected, and there is space left in array Please enter your Enter your friend's nick name Note: Test extreme cases like empty array, & only 1 space left in array Your friend was added successfully to the address book. Use Debugger to check that object is actually in the correct space in array, at the next available empty slot. Also, verify that currentSize has been incremented by 1 Test Test Case DescriptionPredicted Output Case No. Actual Output Menu is Displayed in a Loop, until the A menu consisting of 4 main options is Please make a selection: "exit" option is selected. 1. Add a Friend's Contact Info displayed to the user (add, change, remove, display) Change a Friend's Contact Info Remove a Friend's Contact Info 2. 3. 4. Display a Friend's Contact Info All friends? Specific Friend's First Name: Specific Friend's Last Name: a. b. Request friend's contact information, create friend object, add it to the array, Enter your friend's last name: and give feedback that add was successful. Increment the currentSize by Enter your friend's cell phone number: 1. r friend's first name Menu option 1 (Add) is selected, and there is space left in array Please enter your Enter your friend's nick name Note: Test extreme cases like empty array, & only 1 space left in array Your friend was added successfully to the address book. Use Debugger to check that object is actually in the correct space in array, at the next available empty slot. Also, verify that currentSize has been incremented by 1
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
