Retail Discount Problem Solution
Problem statement: On a retail website, the following discounts apply:
-
If the user is an employee of the store, he gets a 30% discount
-
If the user is an affiliate of the store, he gets a 10% discount
-
If the user has been a customer for over 2 years, he gets a 5% discount.
-
For every $100 on the bill, there would be a $5 discount (e.g. for $ 990, you get $ 45 as a discount).
-
The percentage based discounts do not apply on groceries.
-
A user can get only one of the percentage based discounts on a bill.
Design a system along with code and test cases such that given a bill, it finds the net payable amount. Please note the stress is on object oriented approach and test coverage.
Assumptions :
- All Percentage type discount are optional.
- Point no 4 is fixed and is mandatory on whole bill amount before applying any percentage discount. This would be addon after percentage discount is applied.
Steps to Run:
- Download project as Zip
- Extract and open project
- Right click on solution and Restore Nuget Packges
- Build solution
- You can see test cases in Test Explorer now.