コード例 #1
0
        public void Handle_EditExpense_ShouldUpdateTheRecord()
        {
            var token = new CancellationTokenSource().Token;

            _id = new Guid("fc0d6a3f-1a7e-4c5a-aa2f-2d952c4c8712");

            using (var context = new ExpenseTrackerDbContext(_options))
            {
                // Setup
                context.Database.EnsureDeleted();
                context.Database.EnsureCreated();
                Seed.SeedData(context);

                var currentExpense = context.Expenses.FindAsync(_id);
                _editCommand = new Edit.Command
                {
                    Id      = _id,
                    Expense = _expenseDTO
                };
                _editHandler = new Edit.Handler(context, _mapper);

                // Attempt
                _editHandler.Handle(_editCommand, token).Wait();

                var actual   = JsonConvert.SerializeObject(currentExpense.Result);
                var expected = JsonConvert.SerializeObject(_expenseDTO);

                Assert.Equal(expected, actual);
            }
        }
コード例 #2
0
 public BankAccountController(ExpenseTrackerDbContext context, UserManager <AppUser> userManager,
                              IBankAccountService bankAccountService)
 {
     _context            = context;
     _userManager        = userManager;
     _bankAccountService = bankAccountService;
 }
コード例 #3
0
        public void Handle_IdIsNull_ThrowsNullReferenceException()
        {
            var token = new CancellationTokenSource().Token;

            _id = Guid.Empty;

            using (var context = new ExpenseTrackerDbContext(_options))
            {
                // Setup
                context.Database.EnsureDeleted();
                context.Database.EnsureCreated();
                Seed.SeedData(context);

                _editCommand = new Edit.Command
                {
                    Id      = _id,
                    Expense = _expenseDTO
                };
                _editHandler = new Edit.Handler(context, _mapper);

                // Attempt
                var action = _editHandler.Handle(_editCommand, token);

                Assert.ThrowsAsync <NullReferenceException>(() => action);
                Assert.Equal("Can't find the expense record.",
                             action.Exception.InnerException.Message);
            }
        }
コード例 #4
0
        public void CreateHandler_CreateExpense_VerifyAddExpense()
        {
            var token = new CancellationTokenSource().Token;

            _mockCreateHandler
            .Setup(c => c.Handle(_createCommand, token))
            .Returns(It.IsAny <Task <Unit> >());

            _mockMapper
            .Setup(m => m.Map <ExpenseDTO, Expense>(_createCommand.Expense))
            .Returns(_expense);


            using (var context = new ExpenseTrackerDbContext(_options))
            {
                context.Database.EnsureDeleted();
                context.Database.EnsureCreated();

                _createHandler = new Create.Handler(context, _mockMapper.Object);

                _createHandler.Handle(_createCommand, token).Wait();
                var actual = context.Expenses.CountAsync().Result;

                Assert.Equal(1, actual);
            }
        }
コード例 #5
0
        public void Handle_UpdateFailed_ThrowsDbUpdateException()
        {
            var token = new CancellationTokenSource().Token;

            _id = new Guid("fc0d6a3f-1a7e-4c5a-aa2f-2d952c4c8712");

            using (var context = new ExpenseTrackerDbContext(_options))
            {
                // Setup
                context.Database.EnsureDeleted();
                context.Database.EnsureCreated();
                Seed.SeedData(context);

                _editCommand = new Edit.Command {
                    Id = _id, Expense = _expenseDTO
                };
                _editHandler = new Edit.Handler(context, _mapper);

                // Attempt
                var action = _editHandler.Handle(_editCommand, token);

                // Assert
                Assert.ThrowsAsync <DbUpdateException>(() => action);
                Assert.Equal("Problem saving changes.",
                             action.Exception.InnerException.Message);
            }
        }
コード例 #6
0
 public BankTransactionController(ExpenseTrackerDbContext context, UserManager <AppUser> userManager,
                                  IExpenseCategoryService expenseCategoryService,
                                  IExpenseService expenseService, IEmailService emailService)
 {
     _context                = context;
     _userManager            = userManager;
     _expenseCategoryService = expenseCategoryService;
     _expenseService         = expenseService;
     _emailService           = emailService;
 }
コード例 #7
0
 public EmailController(ExpenseTrackerDbContext context, OAuthConfig oAuthConfig,
                        UserManager <AppUser> userManager, IBankAccountService bankAccountService,
                        IGoogleOAuthService googleOAuthService, ILogger <EmailController> logger)
 {
     _userManager        = userManager;
     _bankAccountService = bankAccountService;
     _googleOAuthService = googleOAuthService;
     _logger             = logger;
     _context            = context;
     _oAuthConfig        = oAuthConfig;
 }
コード例 #8
0
 public ExpensesCategoryController(
     IExpenseCategoryService expenseCategoryService,
     ExpenseTrackerDbContext context,
     ILogger <ExpensesCategoryController> logger,
     UserManager <AppUser> userManager,
     IBudgetService budgetService)
 {
     _expenseCategoryService = expenseCategoryService;
     _context       = context;
     _logger        = logger;
     _userManager   = userManager;
     _budgetService = budgetService;
 }
コード例 #9
0
        public void GetExpenses_WhenCalled_ShouldReturnFiveResults()
        {
            using (var context = new ExpenseTrackerDbContext(_options))
            {
                context.Database.EnsureDeleted();
                context.Database.EnsureCreated();
                Seed.SeedData(context);

                _expensesRepository = new ExpensesRepository(context);
                var actual = _expensesRepository.GetExpenses();

                Assert.Equal(_expected.Count(), actual.Result.Count());
            }
        }
コード例 #10
0
        public void ValidateModelAttribute_WithError_ShouldThrowsException()
        {
            //Arrange
            var db = new ExpenseTrackerDbContext(
                new DbContextOptionsBuilder().UseInMemoryDatabase("test").Options);

            var service = new ExpensesService(db);

            //Act
            var result = service.AddAsync(AMOUNT, DESCRITION, CATEGORY_ID, USER_ID).Result;

            //Assert
            Assert.IsNotNull(result);
            Assert.IsTrue(result.Id != 0);
        }
コード例 #11
0
        public AddExpensePageViewModel(
            ExpenseTrackerDbContext db,
            ICategoriesService categoriesService,
            INavigationService navigationService,
            IDateTimeService dateTimeService,
            IEventAggregator eventAggregator)
        {
            this.db = db;
            this.categoriesService = categoriesService;
            this.navigationService = navigationService;
            this.dateTimeService   = dateTimeService;
            this.eventAggregator   = eventAggregator;

            this.Initialize();
        }
コード例 #12
0
        public void Get()
        {
            // Arrange
            var options = Helper.CreateOptions <ExpenseTrackerDbContext>();

            using (var context = new ExpenseTrackerDbContext(options))
            {
                // Act
                context.Database.EnsureCreated();
                Seed.SeedData(context);
                var expected = context.Expenses.Count();
                //var actual = 5;

                // Assert
                //Assert.Equal(expected, actual);
            }
        }
コード例 #13
0
        public void ListHandler_NullQuery_ShouldThrowArgumentNullException()
        {
            var token = new CancellationTokenSource().Token;

            _query.Id = new Guid("d9d10414-f86a-4bba-929e-237e1f890e26");
            using (var context = new ExpenseTrackerDbContext(_options))
            {
                context.Database.EnsureDeleted();
                context.Database.EnsureCreated();

                _detailsHandler = new Details.Handler(context, _mapper);

                var action = _detailsHandler.Handle(_query, token);

                Assert.ThrowsAsync <ArgumentNullException>(() => action);
            }
        }
コード例 #14
0
        public void DeleteHandle_IdIsNull_ThrowsNullReferenceException()
        {
            var token = new CancellationTokenSource().Token;

            using (var context = new ExpenseTrackerDbContext(_options))
            {
                context.Database.EnsureDeleted();
                context.Database.EnsureCreated();
                Seed.SeedData(context);

                _deleteHandler = new Delete.Handler(context);

                var action   = _deleteHandler.Handle(_deleteCommand, token);
                var expected = "Cannot find expense to the database.";

                Assert.ThrowsAsync <NullReferenceException>(() => action);
                Assert.Equal(expected, action.Exception.InnerException.Message);
            }
        }
コード例 #15
0
        public void DeleteHandle_DeleteExpense_ShouldDeleteTheRecord()
        {
            var token = new CancellationTokenSource().Token;

            using (var context = new ExpenseTrackerDbContext(_options))
            {
                context.Database.EnsureDeleted();
                context.Database.EnsureCreated();
                Seed.SeedData(context);

                _deleteCommand.Id = new Guid("359c4f66-22f3-45ff-baf4-a33c3fa11a82");

                _deleteHandler = new Delete.Handler(context);
                _deleteHandler.Handle(_deleteCommand, token);

                var actual   = context.Expenses.Count();
                var expected = 5;

                Assert.Equal(expected, actual);
            }
        }
コード例 #16
0
        public void DeleteHandle_UpdateFailed_ThrowsDbUpdateException()
        {
            var token = new CancellationTokenSource().Token;

            using (var context = new ExpenseTrackerDbContext(_options))
            {
                context.Database.EnsureDeleted();
                context.Database.EnsureCreated();
                Seed.SeedData(context);

                _deleteCommand.Id = new Guid("359c4f66-22f3-45ff-baf4-a33c3fa11a82");
                _deleteHandler    = new Delete.Handler(context);

                var action = _deleteHandler.Handle(_deleteCommand, token);
                _moq
                .Setup(x => x.Handle(_deleteCommand, token))
                .Throws(It.IsAny <DbUpdateException>());

                Assert.ThrowsAsync <DbUpdateException>(() => action);
            }
        }
コード例 #17
0
        public void DetailsHandler_GetRecord_GetExpenseDetails()
        {
            var token = new CancellationTokenSource().Token;

            _query.Id = new Guid("d9d10414-f86a-4bba-929e-237e1f890e26");

            using (var context = new ExpenseTrackerDbContext(_options))
            {
                context.Database.EnsureDeleted();
                context.Database.EnsureCreated();
                SeedTest.SeedData(context);

                _detailsHandler = new Details.Handler(context, _mapper);

                var query    = _detailsHandler.Handle(_query, token).Result;
                var actual   = query;
                var expected = _expenseDto;

                Assert.Equal(expected.Id, actual.Id);
            }
        }
コード例 #18
0
        public void CreateHandler_CreateExpenseArgsNull_ThrowsArgumentNullException()
        {
            var command = new Create.Command {
                Expense = null
            };
            var token = new CancellationTokenSource().Token;

            using (var context = new ExpenseTrackerDbContext(_options))
            {
                context.Database.EnsureDeleted();
                context.Database.EnsureCreated();

                _createHandler = new Create.Handler(context, _mockMapper.Object);

                _mockCreateHandler
                .Setup(c => c.Handle(command, token))
                .Throws <ArgumentNullException>();

                Assert.ThrowsAsync <ArgumentNullException>(() =>
                                                           _createHandler.Handle(command, token));
            }
        }
コード例 #19
0
 public ReminderRepository(ExpenseTrackerDbContext context)
 {
     _context = context;
 }
コード例 #20
0
 public AdminCategoryRepository(ExpenseTrackerDbContext context)
 {
     _context = context;
 }
コード例 #21
0
 public ExpenseCategoryRepository(ExpenseTrackerDbContext context, UserManager <AppUser> userManager)
 {
     _context     = context;
     _userManager = userManager;
 }
コード例 #22
0
ファイル: ETData.cs プロジェクト: RuzmanovDev/ExpenseTracker
 public ETData(ExpenseTrackerDbContext dbContext)
 {
     this.dbContext = dbContext ?? throw new ArgumentException("dbContext");
 }
コード例 #23
0
 public Handler(ExpenseTrackerDbContext context, IMapper mapper)
 {
     _context = context;
     _mapper  = mapper;
 }
コード例 #24
0
 public BankAccountRepository(ExpenseTrackerDbContext context)
 {
     _context = context;
 }
コード例 #25
0
 public Repository(ExpenseTrackerDbContext context, IMapper mapper)
 {
     _context = context;
     _mapper  = mapper;
 }
コード例 #26
0
 public ExpenseRepository(ExpenseTrackerDbContext context, IMapper mapper) : base(context, mapper)
 {
 }
コード例 #27
0
 public Handler(ExpenseTrackerDbContext context)
 {
     _context = context;
 }
コード例 #28
0
 public ExpenseRepository(ExpenseTrackerDbContext context)
 {
     _context = context;
 }
コード例 #29
0
 public ExpensesController(ExpenseTrackerDbContext dbContext, IMediator mediator)
 {
     _mediator  = mediator;
     _dbContext = dbContext;
 }
コード例 #30
0
 public IncomeController(ExpenseTrackerDbContext context, UserManager <AppUser> userManager)
 {
     _userManager = userManager;
     _context     = context;
 }