コード例 #1
0
        public async Task Test_UpsertIncomes_Fail_BadArgument()
        {
            _incomeServices.Setup(i => i.UpsertIncomes(It.IsAny <List <BudgetIncomeModel> >()))
            .ThrowsAsync(new ArgumentException("This is a service argument exception"));

            var controller = new BudgetIncomeController(_incomeServices.Object);
            var response   = await controller.UpsertIncomes(new UpsertIncomesRequest()
            {
                Incomes = new List <Income>()
                {
                    new Income()
                    {
                        Id         = 5,
                        UserId     = 4,
                        Amount     = 500,
                        IncomeType = "random string"
                    },
                    new Income()
                    {
                        Id         = 5,
                        UserId     = 4,
                        Amount     = 500,
                        IncomeType = "random string"
                    }
                }
            });

            Assert.NotNull(response);
            Assert.AreEqual(400, ((ObjectResult)response).StatusCode);
        }
コード例 #2
0
        public async Task Test_UpsertIncomes_Success()
        {
            _incomeServices.Setup(i => i.UpsertIncomes(It.IsAny <List <BudgetIncomeModel> >()))
            .Returns(Task.CompletedTask);

            var controller = new BudgetIncomeController(_incomeServices.Object);
            var response   = await controller.UpsertIncomes(new UpsertIncomesRequest()
            {
                Incomes = new List <Income>()
                {
                    new Income()
                    {
                        Id         = 5,
                        UserId     = 4,
                        Amount     = 500,
                        IncomeType = "random string"
                    },
                    new Income()
                    {
                        Id         = 5,
                        UserId     = 4,
                        Amount     = 500,
                        IncomeType = "random string"
                    }
                }
            });

            Assert.NotNull(response);
            Assert.AreEqual(200, ((OkResult)response).StatusCode);
        }
コード例 #3
0
        public async Task Test_AddNewIncome_Fail_IncomeNotPassedToController()
        {
            var controller = new BudgetIncomeController(_incomeServices.Object);
            var response   = await controller.AddNewIncome(null);

            Assert.NotNull(response);
            Assert.AreEqual(400, ((ObjectResult)response).StatusCode);
        }
コード例 #4
0
        public async Task Test_UpdateIncome_Fail_BadArgument()
        {
            var controller = new BudgetIncomeController(_incomeServices.Object);
            var response   = await controller.UpdateIncome(null);

            Assert.NotNull(response);
            Assert.AreEqual(400, ((ObjectResult)response).StatusCode);
        }
コード例 #5
0
        public async Task Test_GetAllIncomeByUserID_Fail_BadArgument()
        {
            var controller = new BudgetIncomeController(_incomeServices.Object);
            var response   = await controller.GetAllIncomeByUserId(0);

            Assert.NotNull(response);
            Assert.AreEqual(400, ((ObjectResult)response).StatusCode);
        }
コード例 #6
0
        public async Task Test_GetAllIncomeByUserId_Fail_BadRequest()
        {
            _incomeServices.Setup(i => i.GetAllIncomeByUserId(It.IsAny <long>()))
            .ThrowsAsync(new ArgumentException("Bad Request"));

            var controller = new BudgetIncomeController(_incomeServices.Object);
            var response   = await controller.GetAllIncomeByUserId(1);

            Assert.NotNull(response);
            Assert.AreEqual(400, ((ObjectResult)response).StatusCode);
        }
コード例 #7
0
        public async Task Test_GetAllIncomeByUserId_Success()
        {
            _incomeServices.Setup(i => i.GetAllIncomeByUserId(It.IsAny <long>()))
            .ReturnsAsync(new List <BudgetIncomeModel>());

            var controller = new BudgetIncomeController(_incomeServices.Object);
            var response   = await controller.GetAllIncomeByUserId(1);

            Assert.NotNull(response);
            Assert.AreEqual(200, ((OkObjectResult)response).StatusCode);
        }
コード例 #8
0
        public async Task Test_AddNewIncome_Fail_InternalServerError()
        {
            _incomeServices.Setup(i => i.AddNewIncome(It.IsAny <BudgetIncomeModel>()))
            .ThrowsAsync(new Exception("Internal Error"));

            var controller = new BudgetIncomeController(_incomeServices.Object);
            var response   = await controller.AddNewIncome(new AddNewIncomeRequest());

            Assert.NotNull(response);
            Assert.AreEqual(500, ((ObjectResult)response).StatusCode);
        }
コード例 #9
0
        public async Task Test_RemoveIncome_Success()
        {
            _incomeServices.Setup(i => i.RemoveIncome(It.IsAny <long>()))
            .Returns(Task.CompletedTask);

            var controller = new BudgetIncomeController(_incomeServices.Object);
            var response   = await controller.RemoveIncome(new RemoveIncomeRequest()
            {
                IncomeId = 1
            });

            Assert.NotNull(response);
            Assert.AreEqual(200, ((OkResult)response).StatusCode);
        }
コード例 #10
0
        public async Task Test_UpdateIncome_Fail_InternalServerError()
        {
            _incomeServices.Setup(i => i.UpdateIncome(It.IsAny <long>(), It.IsAny <decimal>()))
            .ThrowsAsync(new Exception("Internal Error"));

            var controller = new BudgetIncomeController(_incomeServices.Object);
            var response   = await controller.UpdateIncome(new UpdateIncomeRequest()
            {
                IncomeAmount = 5,
                IncomeId     = 5
            });

            Assert.NotNull(response);
            Assert.AreEqual(500, ((ObjectResult)response).StatusCode);
        }
コード例 #11
0
        public async Task Test_AddNewIncome_Fail_IncomeNotPassedToService()
        {
            _incomeServices.Setup(i => i.AddNewIncome(It.IsAny <BudgetIncomeModel>()))
            .ThrowsAsync(new ArgumentException("Income details not provided"));

            var controller = new BudgetIncomeController(_incomeServices.Object);
            var response   = await controller.AddNewIncome(new AddNewIncomeRequest()
            {
                UserId       = 1,
                IncomeAmount = 34.5m,
                IncomeType   = "Paycheck"
            });

            Assert.NotNull(response);
            Assert.AreEqual(400, ((ObjectResult)response).StatusCode);
        }
コード例 #12
0
        public async Task Test_AddNewIncome_Success()
        {
            _incomeServices.Setup(i => i.AddNewIncome(It.IsAny <BudgetIncomeModel>()))
            .Returns(Task.CompletedTask);

            var controller = new BudgetIncomeController(_incomeServices.Object);
            var response   = await controller.AddNewIncome(new AddNewIncomeRequest()
            {
                UserId       = 1,
                IncomeAmount = 50,
                IncomeType   = "Paycheck"
            });

            Assert.NotNull(response);
            Assert.AreEqual(201, ((StatusCodeResult)response).StatusCode);
        }
コード例 #13
0
        public async Task Test_UpsertIncomes_Fail_EmptyIncomeObjects()
        {
            _incomeServices.Setup(i => i.UpsertIncomes(It.IsAny <List <BudgetIncomeModel> >()))
            .Returns(Task.CompletedTask);

            var controller = new BudgetIncomeController(_incomeServices.Object);
            var response   = await controller.UpsertIncomes(new UpsertIncomesRequest()
            {
                Incomes = new List <Income>()
                {
                    new Income()
                    {
                    },
                    new Income()
                    {
                    }
                }
            });

            Assert.NotNull(response);
            Assert.AreEqual(400, ((ObjectResult)response).StatusCode);
        }