A ground-breaking broadcaster has decided to reward its most loyal customers. A software engineering team, developing the customer account website, is working on the story below.
As a customer, if I am eligible for rewards, then I want to see which rewards are available based on my channel subscriptions.
The Account Management team has partnered with the Customer Status team that provides a service that checks the customer eligibility based on loyalty and billing status.
It is required to provide an implementation of a RewardsService. The service accepts as input a customer account number and a portfolio containing channels subscriptions. If the customer is eligible for rewards the RewardsService should return a list of all the rewards available according to the subscriptions on the portfolio. Acceptance Criteria The following table describes the codes for the channel subscriptions and the associated rewards.
The Customer Status team is currently developing the EligibilityService which accepts the account number as an input. You are required to provide a mock or stub of the EligibilityService interface. This is a simple diagram of the interaction between the services:
The following table describes the EligibiityService output and the expected result: