This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
ABC sales team sells different products and each product has different margins. As an example refer the following table
Sl. No Product Margin 1 Mutual Fund 2% of Revenue 2 Insurance 15% of Revenue
In addition to the direct margins, there are volume overrides. For example if the total mutual fund sale is greater than 1 crore then the margin becomes 2.25%. Similarly for other products as well.
Define a class structure and write a program to calculate the total revenue using the same. Make the design flexible to incorporate easy addition of new products and criteria for incentive calculation. Assume inputs are available as data objects. Identify all unit test cases and write a few of those.