public async Task UpgradePlan_InvalidPlan_ThrowsException()
        {
            var request = new UpgradePlanRequest()
            {
                Plan = (Plan)100
            };

            await Assert.ThrowsAsync <InvalidPlanException>(
                async() => await Orchestrator.UpgradePlan(Account.Id, request));
        }
        public async Task UpgradePlan_WhenAccountDoesntExist_ThrowsException()
        {
            Repository   = new Mock <IAccountRepository>();
            Orchestrator = new AccountOrchestrator(Repository.Object);

            await Assert.ThrowsAsync <AccountNotFoundException>(
                async() => await Orchestrator.UpgradePlan(Account.Id, null));
        }
        public async Task <IActionResult> UpgradePlan(Guid accountId, [FromBody] UpgradePlanRequest request)
        {
            await Orchestrator.UpgradePlan(accountId, request);

            return(Ok());
        }