public async Task Test_UpdateExpense_Fail_BadArgument()
        {
            var controller = new BudgetExpensesController(_expensesServices.Object);
            var response   = await controller.UpdateExpense(null);

            Assert.NotNull(response);
            Assert.AreEqual(400, ((ObjectResult)response).StatusCode);
        }
        public async Task Test_UpdateExpense_Fail_BadRequest()
        {
            _expensesServices.Setup(e => e.UpdateExpense(It.IsAny <long>(), It.IsAny <decimal>()))
            .ThrowsAsync(new ArgumentException("Bad Request"));

            var controller = new BudgetExpensesController(_expensesServices.Object);
            var response   = await controller.UpdateExpense(new UpdateExpenseRequest()
            {
                ExpenseId     = 1,
                ExpenseAmount = 30
            });

            Assert.NotNull(response);
            Assert.AreEqual(400, ((ObjectResult)response).StatusCode);
        }
        public async Task Test_UpdateExpense_Success()
        {
            _expensesServices.Setup(e => e.UpdateExpense(It.IsAny <long>(), It.IsAny <decimal>()))
            .Returns(Task.CompletedTask);

            var controller = new BudgetExpensesController(_expensesServices.Object);
            var response   = await controller.UpdateExpense(new UpdateExpenseRequest()
            {
                ExpenseId     = 1,
                ExpenseAmount = 30
            });

            Assert.NotNull(response);
            Assert.AreEqual(200, ((OkResult)response).StatusCode);
        }