public void AddsUserIdToEntity() { // Act. BudgetsController controller = new BudgetsController(this.mockBudgetsRepository.Object); IActionResult result = controller.Put(this.id, this.budget); OkObjectResult okResult = result as OkObjectResult; // Assert. this.mockBudgetsRepository.Verify(m => m.Save(It.Is <Budget>(x => x.UserId == this.userId), It.IsAny <long>()), Times.Once, "The user ID should have been added to the entity."); }
public void AddBills() { var listOfBudgets = new CoreBudgets(); Mock <IBudgetRepository> mockBudgetRepository = new Mock <IBudgetRepository>(); mockBudgetRepository.Setup(x => x.AddBudgetAsync(listOfBudgets)).Verifiable(); var billController = new BudgetsController(mockBudgetRepository.Object); billController.Should().NotBeNull(); }
public void AddTest_should_add_a_budget_record() { var service = Substitute.For <IBudgetService>(); var target = new BudgetsController(service); var model = new BudgetModels(); target.Add(model); service.Received().Save(model); }
public async Task EditValidInputTest() { var optionsBuilder = new DbContextOptionsBuilder <ApplicationDbContext>(); optionsBuilder.UseInMemoryDatabase(databaseName: "db1"); var _dbContext = new ApplicationDbContext(optionsBuilder.Options); var controller = new BudgetsController(_dbContext); var result = await controller.Edit(1); Assert.NotNull(result); }
public async Task IndexReturnTypeTest() { var optionsBuilder = new DbContextOptionsBuilder <ApplicationDbContext>(); optionsBuilder.UseInMemoryDatabase(databaseName: "db1"); var _dbContext = new ApplicationDbContext(optionsBuilder.Options); var controller = new BudgetsController(_dbContext); var result = await controller.Index(); Assert.IsType <ViewResult>(result); }
public async Task DetailsNullInputTest() { var optionsBuilder = new DbContextOptionsBuilder <ApplicationDbContext>(); optionsBuilder.UseInMemoryDatabase(databaseName: "db1"); var _dbContext = new ApplicationDbContext(optionsBuilder.Options); var controller = new BudgetsController(_dbContext); var result = await controller.Details(null); Assert.IsType <NotFoundResult>(result); }
public void Add_a_budget_should_succeedTest() { //Arrange var budgetService = Substitute.For <IBudgetService>(); var budgetsController = new BudgetsController(budgetService); //Act budgetsController.Add("2018-11", 700); //Assert budgetService.Received() .Add(Arg.Is <BudgetViewModel>(budget => budget.YearMonth == "2018-11" && budget.Amount == 700)); }
public void ReturnsRepositoryResult() { // Act. BudgetsController controller = new BudgetsController(this.mockBudgetsRepository.Object); IActionResult result = controller.Get(); OkObjectResult okResult = result as OkObjectResult; // Assert. this.mockBudgetsRepository.Verify(m => m.GetAll(this.userId), Times.Once, "The budgets should have been requested from the repository."); this.mockBudgetsRepository.VerifyNoOtherCalls(); Assert.IsNotNull(okResult, "An OK response should have been returned."); Assert.AreEqual(200, okResult.StatusCode, "The status code from the response should have been 200."); Assert.AreEqual(this.stubBudgets, okResult.Value, "The result from the repository should have been returned."); }
public void HandlesNotFound() { // Arrange. this.mockBudgetsRepository .Setup(m => m.Get(It.IsAny <long>(), It.IsAny <long>())) .Returns <Budget>(null); // Act. BudgetsController controller = new BudgetsController(this.mockBudgetsRepository.Object); IActionResult result = controller.Get(this.id); NotFoundResult notFoundResult = result as NotFoundResult; // Assert. Assert.IsNotNull(notFoundResult, "An object result should have been returned."); Assert.AreEqual(404, notFoundResult.StatusCode, "The status code from the response should have been 404."); }
//Test POST for creating new budget public void BudgetsController_Create_ReturnsObject_WhenNewObject() { controller = createContext(controller); //Arrange new ObjectResult var budget = new Budget(); budget.From = 500; //Act var result = controller.Create(budget); var resultAsObject = result as ObjectResult; var resultObject = resultAsObject.Value as Budget; //Assert Assert.IsType <ObjectResult>(result); Assert.Equal(budget.From, resultObject.From); }
private BudgetsController createContext(BudgetsController con) { con.ControllerContext = new ControllerContext(); //Creates a new HttpContext con.ControllerContext.HttpContext = new DefaultHttpContext(); con.ObjectValidator = new DefaultObjectValidator ( new DefaultModelMetadataProvider ( new DefaultCompositeMetadataDetailsProvider(Enumerable.Empty <IMetadataDetailsProvider>()) ), new List <Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IModelValidatorProvider>() ); //Returns the controller return(con); }
public void HandlesGeneralException() { // Arrange. this.mockBudgetsRepository .Setup(m => m.Save(It.IsAny <Budget>(), It.IsAny <long>())) .Throws(new Exception()); // Act. BudgetsController controller = new BudgetsController(this.mockBudgetsRepository.Object); IActionResult result = controller.Put(this.id, this.budget); ObjectResult objectResult = result as ObjectResult; // Assert. Assert.IsNotNull(objectResult, "An object result should have been returned."); Assert.AreEqual(500, objectResult.StatusCode, "The status code from the response should have been 500."); string expectedMessage = "There was an error saving the budget."; Assert.AreEqual(expectedMessage, objectResult.Value, "The error message should have been the result."); }
public void ReturnsBadRequestErrorWhenBudgetIdsMismatch() { // Arrange. this.id = this.id + 2; // Act. BudgetsController controller = new BudgetsController(this.mockBudgetsRepository.Object); IActionResult result = controller.Put(this.id, this.budget); BadRequestObjectResult badRequestResult = result as BadRequestObjectResult; // Assert. this.mockBudgetsRepository.VerifyNoOtherCalls(); Assert.IsNotNull(badRequestResult, "A bad request response should have been returned."); Assert.AreEqual(400, badRequestResult.StatusCode, "The status code from the response should have been 405."); string expectedMessage = "The budget ID values did not match."; Assert.AreEqual(expectedMessage, badRequestResult.Value, "The error message should have been the result."); }
public void ReturnsBadRequestErrorWhenBudgetNull() { // Arrange. this.budget = null; // Act. BudgetsController controller = new BudgetsController(this.mockBudgetsRepository.Object); IActionResult result = controller.Post(this.budget); BadRequestObjectResult badRequestResult = result as BadRequestObjectResult; // Assert. this.mockBudgetsRepository.VerifyNoOtherCalls(); Assert.IsNotNull(badRequestResult, "A bad request response should have been returned."); Assert.AreEqual(400, badRequestResult.StatusCode, "The status code from the response should have been 405."); string expectedMessage = "A budget must be passed in for it to be saved."; Assert.AreEqual(expectedMessage, badRequestResult.Value, "The error message should have been the result."); }
public void ReturnsNotFoundWhenRepositoryReturnsNull() { // Arrange. this.stubBudget = null; this.mockBudgetsRepository .Setup(m => m.Get(It.IsAny <long>(), It.IsAny <long>())) .Returns(this.stubBudget); // Act. BudgetsController controller = new BudgetsController(this.mockBudgetsRepository.Object); IActionResult result = controller.Get(this.id); NotFoundResult notFoundResult = result as NotFoundResult; // Assert. this.mockBudgetsRepository.Verify(m => m.Get(this.id, this.userId), Times.Once, "The budget should have been requested from the repository."); this.mockBudgetsRepository.VerifyNoOtherCalls(); Assert.IsNotNull(notFoundResult, "A Not Found response should have been returned."); Assert.AreEqual(404, notFoundResult.StatusCode, "The status code from the response should have been 404."); }
public void ReturnsAnEmptyListWhenRepositoryReturnsNull() { // Arrange. this.stubBudgets = null; this.mockBudgetsRepository .Setup(m => m.GetAll(It.IsAny <long>())) .Returns(this.stubBudgets); // Act. BudgetsController controller = new BudgetsController(this.mockBudgetsRepository.Object); IActionResult result = controller.Get(); OkObjectResult okResult = result as OkObjectResult; // Assert. this.mockBudgetsRepository.Verify(m => m.GetAll(this.userId), Times.Once, "The budgets should have been requested from the repository."); this.mockBudgetsRepository.VerifyNoOtherCalls(); Assert.IsNotNull(okResult, "An OK response should have been returned."); Assert.AreEqual(200, okResult.StatusCode, "The status code from the response should have been 200."); Assert.AreEqual(0, (okResult.Value as List <Budget>).Count, "An empty list should be the result."); }
public void TestAddAction() { //Arrange string yearMonth = "2018-05"; int amount = 500; IBudgetsService budgetService = Substitute.For <IBudgetsService>(); BudgetsController controller = new BudgetsController(budgetService); Budget budget = new Budget { YearMonth = yearMonth, Amount = amount }; //Action controller.Add(budget); //Assert budgetService.Received(1) .AddBudget(Arg.Is <Budget>(b => b.YearMonth == yearMonth && b.Amount == amount)); }
public BudgetsControllerUnitTests() { unitOfWork = new FakeUnitOfWork(); controller = new BudgetsController(unitOfWork); }