public async Task TestValidPostExpenseAsync() { var dbContext = DbContextMocker.GetExpenseManagerDbContext(nameof(TestValidPostExpenseAsync)); var controller = new ExpensesController(dbContext); var expense = new Expense { UserID = 1, Amount = 10, Comment = "This is a test comment", CreationDate = DateTime.Now, Type = Expense.ExpenseType.Hotel, Currency = "USD" }; //check expense model is valid var validationResults = new List <ValidationResult>(); var actual = Validator.TryValidateObject(expense, new ValidationContext(expense), validationResults, true); Assert.True(actual); var response = await controller.PostExpense(expense); Assert.IsType <CreatedAtActionResult>(response.Result); dbContext.Dispose(); }
public void GetExpenses() { var client = new HttpClient(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Token", "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1bmlxdWVfbmFtZSI6IjQ4MDZhYWVmLTJmNjctNGY3Yy0yYjdiLTA4ZDdiNTE3MGEzMyIsIm5iZiI6MTU4MjEwMTQ4NywiZXhwIjoxNTgyMTA0MTg3LCJpYXQiOjE1ODIxMDE0ODd9.m-zrNriR1RqSF6pchSBbQ_noiIaNeVSfmixUgyrFqik"); var expense = new ExpensesViewModel { Title = "mock Expenses", Price = 20 }; var expenseDTO = new ExpensesDTO { Title = "mock Expenses", Price = 20 }; int userId = 1; var mockMapper = new Mock <IMapper>(); mockMapper.Setup(repo => repo.Map(expense, expenseDTO)) .Returns(expenseDTO); mockMapper.Setup(repo => repo.Map(expenseDTO, expense)) .Returns(expense); List <ExpensesDTO> expensesList = new List <ExpensesDTO>(); var mockRepo = new Mock <IExpensesService>(); mockRepo.Setup(repo => repo.GetExpensesAsync(userId)) .ReturnsAsync(expensesList); var mockExceptionREpo = new Mock <IExceptionHandler>(); var controller = new ExpensesController(mockRepo.Object, mockExceptionREpo.Object, mockMapper.Object); // Act var okResult = controller.GetExpenses(userId).Result; // Assert Assert.IsType <OkObjectResult>(okResult); }
public void TestDataContextGetter() { var controller = new ExpensesController(); SetupControllerForTests(controller); Assert.AreSame(_context, controller.Context); }
public async Task TestWrongCurrencyPostExpenseAsync() { var dbContext = DbContextMocker.GetExpenseManagerDbContext(nameof(TestWrongCurrencyPostExpenseAsync)); var controller = new ExpensesController(dbContext); //try to post the wrong currency var expense = new Expense { UserID = 1, Amount = 10, Comment = "This is a test comment", CreationDate = DateTime.Now, Type = Expense.ExpenseType.Hotel, Currency = "rouble américain" }; var response = await controller.PostExpense(expense); var badRequestResult = Assert.IsType <BadRequestObjectResult>(response.Result); Assert.IsType <SerializableError>(badRequestResult.Value); var resultValue = badRequestResult.Value as SerializableError; Assert.True(resultValue.ContainsKey(ExpenseManager.Constants.ErrorTitle.IncorrectCurrency)); dbContext.Dispose(); }
public void TestUserManagerGetter() { var controller = new ExpensesController(); SetupControllerForTests(controller); Assert.AreSame(UserManager, controller.UserManager); }
public new void Init() { base.Init(); _user = UserManager.FindByEmailAsync(TestConfig.TestUserEmail).Result; _data = new List <Expense> { new Expense { Amount = 1, ApplicationUserID = _user.Id, Comment = "AAA", Date = DateTime.Now, Description = "DescAAA" }, new Expense { Amount = 2, ApplicationUserID = _user.Id, Comment = "BBB", Date = DateTime.Now, Description = "DescBBB" }, new Expense { Amount = 3, ApplicationUserID = _user.Id, Comment = "CCC", Date = DateTime.Now, Description = "DescCCC" }, new Expense { Amount = 4, ApplicationUserID = "Some other ID", Comment = "DDD", Date = DateTime.Now, Description = "DescDDD" }, }; _user.Expenses = _data.Where(d => d.ApplicationUserID == _user.Id).ToList(); var mockSet = CreateMockDbSet(_data); _mockContext = new Mock <ApplicationDbContext>(); _mockContext.Setup(c => c.Expenses).Returns(mockSet); _context = _mockContext.Object; _controller = new ExpensesController(); SetupControllerForTests(_controller); }
public void DeleteExpenseById() { int userId = 1; int expenseId = 2; var expense = new ExpensesViewModel { Title = "mock Expenses", Price = 20 }; var expenseDTO = new ExpensesDTO { Title = "mock Expenses", Price = 20 }; var mockRepo = new Mock <IExpensesService>(); mockRepo.Setup(repo => repo.DeleteExpenseByIdAsync(expenseId, userId)) .ReturnsAsync(true); var mockMapper = new Mock <IMapper>(); var mockExceptionREpo = new Mock <IExceptionHandler>(); var controller = new ExpensesController(mockRepo.Object, mockExceptionREpo.Object, mockMapper.Object); // Act var okResult = controller.DeleteExpenseById(expenseId, userId).Result; // Assert Assert.IsType <OkObjectResult>(okResult); }
public async Task ExpensesController_UpdateStatus_Test() { bool called = false; var expenseRepository = new Data.Repositories.Fakes.StubIExpenseRepository(); var notificationChannelRepository = new Data.Repositories.Fakes.StubINotificationChannelRepository(); var notificationService = new Services.Fakes.StubINotificationService(); expenseRepository.GetAsyncInt32 = (id) => { return(Task.FromResult(new Expense())); }; expenseRepository.UpdateAsyncExpense = (expense) => { Assert.AreEqual(expense.Status, ExpenseStatus.Pending); called = true; return(Task.FromResult(string.Empty)); }; var target = new ExpensesController(expenseRepository, new SecurityHelper(), notificationChannelRepository, notificationService); await target.UpdateStatus(1, ExpenseStatus.Pending); Assert.IsTrue(called); }
public void GetExpenses_oneValidExpense_Ok() { var repoExpense1 = new Domain.Expense { Amount = 100, Category = "grocery", ExpneseDate = new DateTime(2016, 11, 15), ID = 1, Merchant = "pns" }; var repoExpenses = new List <Domain.Expense>() { repoExpense1 }; var repo = new Moq.Mock <IExpenseRepository>(); repo.Setup <List <Expense> >(t => t.GetAllExpenses()) .Returns(repoExpenses); var fac = new Moq.Mock <ITransactionFactory>(); fac.Setup <DisplayExpensesTransaction>(m => m.CreateDisplayExpensesTransaction()) .Returns(new DisplayExpensesTransaction(repo.Object)); var sut = new ExpensesController(fac.Object, _logger.Object); //act var actualResponse = sut.Get(); var contentResult = actualResponse as OkNegotiatedContentResult <IEnumerable <ViewModels.Expense> >; //assert Assert.IsNotNull(contentResult, "Ok-200 status was not returned"); Assert.IsNotNull(contentResult.Content, "No content was returned"); }
//[TestMethod] public void GetById() { ExpensesController expensesController = new ExpensesController(); string actualResponse = expensesController.Get(5); string expectedResponse = "expense"; Assert.AreEqual(expectedResponse, actualResponse); }
public async Task ExpensesController_Add_Exception_Test() { var expenseTravelRepository = new Data.Repositories.Fakes.StubIExpenseRepository(); var notificationChannelRepository = new Data.Repositories.Fakes.StubINotificationChannelRepository(); var notificationService = new Services.Fakes.StubINotificationService(); var target = new ExpensesController(expenseTravelRepository, new SecurityHelper(), notificationChannelRepository, notificationService); await target.Add(null); }
public async Task GetExpenses_WhenCalled_GivesListOfExpeses() { var repo = new Mock <IExpenseRepository>(); var mapper = new Mock <IMapper>(); var controller = new ExpensesController(mapper.Object, repo.Object); var list = await controller.GetExpenses(1); repo.Verify(r => r.GetExpenses(1)); }
public async Task GetExpense_WhenCalled_ReturnExpense() { var repo = new Mock <IExpenseRepository>(); var mapper = new Mock <IMapper>(); var controller = new ExpensesController(mapper.Object, repo.Object); var expense = await controller.GetExpense(42); repo.Verify(r => r.GetExpense(42)); }
public void GetsLongTermExpensesFromBusinessLogic() { var logic = new Mock <Logic>(); var sut = new ExpensesController(logic.Object); sut.Index(); logic.Verify(it => it.GetLongTermExpenses()); }
public void ExpenseController_SholdReturnDefaultView_WhenIndexIsCalled() { // Arrange var expensesController = new ExpensesController(expenseServiceMock.Object, mappingServiceMock.Object, webHelperMock.Object); // Act // Assert expensesController.WithCallTo(c => c.Index("_", "_", 1)).ShouldRenderDefaultView(); }
//[TestMethod] public void Get() { ExpensesController expensesController = new ExpensesController(); IEnumerable <string> actualResponse = expensesController.Get(); List <string> expectedResponse = new List <string>(); expectedResponse.Add("expense1"); expectedResponse.Add("expense2"); CollectionAssert.AreEqual(expectedResponse, actualResponse.ToList <string>()); }
public void WebHelper_SholdCallGetHouseholdIdFromCookieOnce_WhenIndexIsCalled() { // Arrange var expensesController = new ExpensesController(expenseServiceMock.Object, mappingServiceMock.Object, webHelperMock.Object); // Act expensesController.Index("_", "_", 1); // Assert webHelperMock.Verify(x => x.GetHouseholdIdFromCookie(), Times.Once); }
public void ExpenseService_SholdCallGetExpensesCountOnce_WhenIndexIsCalled() { // Arrange var expensesController = new ExpensesController(expenseServiceMock.Object, mappingServiceMock.Object, webHelperMock.Object); // Act expensesController.Index("_", "_", 1); // Assert expenseServiceMock.Verify(x => x.GetExpensesCount(It.IsAny <Guid>(), It.IsAny <bool>(), It.IsAny <string>()), Times.Once); }
public void ExpensesController_ShouldHaveOneAuthorizeAttribute() { // Arrange var expensesController = new ExpensesController(expenseServiceMock.Object, mappingServiceMock.Object, webHelperMock.Object); // Act var result = expensesController.GetType().GetCustomAttributes(typeof(AuthorizeAttribute), false).Length; // Assert Assert.That(result == 1); }
public void GetsRecurringExpensesFromBusinessLogic() { var logic = new Mock <Logic>(); GlobalSettings.SystemTime = () => new DateTime(2000, 1, 2, 3, 4, 5); var sut = new ExpensesController(logic.Object); sut.Index(); logic.Verify(it => it.GetRecurringExpensesFor(2000, 1)); }
public void Pay_ShouldHaveValidateAntiForgeryTokenAttribute() { // Arrange var expensesController = new ExpensesController(expenseServiceMock.Object, mappingServiceMock.Object, webHelperMock.Object); // Act var result = expensesController.GetType().GetMethod("Pay", new Type[] { typeof(ExpenseViewModel) }) .GetCustomAttributes(typeof(ValidateAntiForgeryTokenAttribute), false).Length; // Assert Assert.That(result == 1); }
public void TotalMonthlyExpences_ShouldReturnDefaultView_WhenCalled() { // Arrange var expensesController = new ExpensesController(expenseServiceMock.Object, mappingServiceMock.Object, webHelperMock.Object); this.expenseServiceMock.Setup(x => x.GetTotalExpenses(It.IsAny <Guid>(), It.IsAny <int>(), It.IsAny <int>())).Returns(new TotalMonthlyExpenses()); // Act // Assert expensesController.WithCallTo(c => c.TotalMonthlyExpences(1234, 12)) .ShouldRenderDefaultView(); }
public void SourceDetail_OnExecute_ReturnSourceDetailType() { //Arrange ExpensesController controller = new ExpensesController(_repo, _logger); //Act var inputDataSource = controller.SourceDetail(); var requestResult = inputDataSource as OkObjectResult; //Assert Assert.IsInstanceOfType(requestResult, typeof(OkObjectResult)); }
public void WebHelper_SholdCallGetHouseholdIdFromCookieOnce_WhenTotalMonthlyExpencesIsCalled() { // Arrange var expensesController = new ExpensesController(expenseServiceMock.Object, mappingServiceMock.Object, webHelperMock.Object); this.expenseServiceMock.Setup(x => x.GetTotalExpenses(It.IsAny <Guid>(), It.IsAny <int>(), It.IsAny <int>())).Returns(new TotalMonthlyExpenses()); // Act expensesController.TotalMonthlyExpences(1234, 12); // Assert this.webHelperMock.Verify(x => x.GetHouseholdIdFromCookie(), Times.Once); }
public async Task PutExpenseNotFoundIdTest() { var mockRepo = new Mock <IExpenseRepository>(MockBehavior.Strict); mockRepo.Setup(repo => repo.DetailAsync(It.IsAny <long>())) .ReturnsAsync((Expense)null); var controller = new ExpensesController(mockRepo.Object, _loggerManager, _mapper); var result = await controller.PutExpense(3, GetTestExpenseForUpdateDto()); var actionResult = Assert.IsType <NotFoundResult>(result); }
public void ExpenseController_SholdRedirectToRoutNamed_HouseholdExpenses_WhenPayIsCalled() { // Arrange var expensesController = new ExpensesController(expenseServiceMock.Object, mappingServiceMock.Object, webHelperMock.Object); var model = new ExpenseViewModel() { Cost = 1M }; // Act // Assert expensesController.WithCallTo(c => c.Pay(model)).ShouldRedirectToRoute("Household_expenses"); }
public async Task TestGetExpensesAsync() { var dbContext = DbContextMocker.GetExpenseManagerDbContext(nameof(TestGetExpensesAsync)); var controller = new ExpensesController(dbContext); var response = await controller.GetExpense(); var value = response.Value as List <Expense>; dbContext.Dispose(); Assert.IsType <ActionResult <IEnumerable <Expense> > >(response); Assert.Equal(3, value.Count); }
public async Task GetExpenseFromNotFoundIdTest() { var mockRepo = new Mock <IExpenseRepository>(MockBehavior.Strict); mockRepo.Setup(repo => repo.DetailAsync(It.IsAny <long>())) .ReturnsAsync((Expense)null); var controller = new ExpensesController(mockRepo.Object, _loggerManager, _mapper); var result = await controller.GetExpense(1); Assert.IsType <NotFoundResult>(result.Result); Assert.Null(result.Value); }
public void SourceDetail_OnExecute_ReturnSourceDetail() { //Arrange ExpensesController controller = new ExpensesController(_repo, _logger); //Act var inputDataSource = controller.SourceDetail(); var requestResult = inputDataSource as OkObjectResult; InputDataSource result = (InputDataSource)requestResult.Value; //Assert Assert.AreEqual(_repo.GetSourceDetails().InputDataSourceName, result.InputDataSourceName); Assert.AreEqual(_repo.GetSourceDetails().InputDataSourceType, result.InputDataSourceType); }
public void Expenses_OnExecute_ReturnExpenses() { //Arrange ExpensesController controller = new ExpensesController(_repo, _logger); //Act var inputDataSource = controller.Expenses(); var requestResult = inputDataSource as OkObjectResult; List <Expense> txnList = (List <Expense>)requestResult.Value; //Assert Assert.AreEqual(2, txnList.Count); CollectionAssert.AreEqual(_repo.GetExpenses().ToList(), txnList, new ExpenseComparer()); }