Create a new project, LastNameFirst05, for this assignment. You will need to define the classes depicted in the class diagram below. All of the classes should contain complete javadoc documentation. All classes should be placed in the edu.washington.ext package.
Each of the classes must minimally comply with the class diagram and the general descriptions below:
Employee
A simple interface defining all operations that must be availabe for all employees.
StoreEmployee
Store employees have a rate of pay, their current number of hours worked and their current sales. A store employees pay is their hourly rate multiplied by the current hours worked.
SalesAssociate
Sales associates are store employees who also recieve a commission on their sales. The commission is a pecentage of their current sales, individual sales associates may receive different percentages of their sales in commission.
Manager
Manager's receive their base pay plus a bonus equal to a percentage of the stores total sales. All managers receive the same percentage of their store's sales. Manager's don't receive separate commission/bonus for their individual sales.
Store
Each store has one manager and a number of employees. A store's payroll is processed by calculating the pay for, and creating a payroll record for, each employee.
PayrollRecord
A payroll record simply maintains the employee's name and their pay.
StoreTest
A JUnit test that tests the store class directly and the employee classes indirectly. Only the getCurrentSales and processPayrollmethods need to be tested. The test shall instantiate a store and add the following manager and employess to the store.
- Manager: base pay = 4000.00, current sales = 10000.00, manager bonus rate 0.5%
- Office employee: hourly rate = 10.50, current hours = 160, current sales = 500.00
- Sales associate: hourly rate = 12.50, current hours = 138, commission rate = 2%, current sales = 15000
- Sales associate: hourly rate = 14.50, current hours = 160, commission rate = 2%, current sales = 30000
- Sales associate: hourly rate = 15.00, current hours = 160, commission rate = 3%, current sales = 45000
Using this data the tests should verify the following values:
- Manager pay = 4502.50
- Office employee pay = 1680.00
- Sales associate #1 pay = 2025.00
- Sales associate #2 pay = 2920.00
- Sales associate #2 pay = 3750.00
- Store current sales = 100500.00