public async void Store_Should_Return_Status_201() { var user = await Factory.User(); await _context.Users.AddAsync(user); await _context.SaveChangesAsync(); var nubank = await Factory.Account(userId : user.Id); await _context.Accounts.AddAsync(nubank); await _context.SaveChangesAsync(); var itau = await Factory.Account(userId : user.Id); await _context.Accounts.AddAsync(itau); await _context.SaveChangesAsync(); _accessor.HttpContext.User = await Factory.ClaimsPrincipal(userId : user.Id); var viewModel = new StoreTransferViewModel { Description = "Save money", Date = new DateTime(year: 2019, month: 12, day: 25), Value = 25000, ToId = nubank.Id, FromId = itau.Id }; var result = await _controller.Store(viewModel); Assert.IsAssignableFrom <CreatedResult>(result); }
public async void Show_Shoud_Monthly_Revenue_Equal_To_280000_When_The_Month_Has_One_A_Revenue_With_The_Value_Equal_To_280000() { var user = await Factory.User(); await _context.Users.AddAsync(user); await _context.SaveChangesAsync(); var account = await Factory.Account(userId : user.Id); await _context.Accounts.AddAsync(account); await _context.SaveChangesAsync(); var pay = await Factory.Revenue(accountId : account.Id, value : 280000, date : new DateTime(year: 2019, month: 12, day: 15)); await _context.Revenues.AddAsync(pay); await _context.SaveChangesAsync(); _accessor.HttpContext.User = await Factory.ClaimsPrincipal(userId : user.Id); var start = new DateTime(year: 2019, month: 12, day: 1); var end = new DateTime(year: 2019, month: 12, day: 31); var result = await _controller.Show(start, end); var response = Assert.IsAssignableFrom <OkObjectResult>(result); Assert.Equal(280000, ((ResponseViewModel <int>)response.Value).Data); }
public async void Destroy_Should_Not_Exist_Revenue_Into_Database() { var user = await Factory.User(); await _context.Users.AddAsync(user); var account = await Factory.Account(userId : user.Id); await _context.Accounts.AddAsync(account); var revenue = await Factory.Revenue(accountId : account.Id); await _context.Revenues.AddAsync(revenue); await _context.SaveChangesAsync(); _accessor.HttpContext.User = new ClaimsPrincipal ( new ClaimsIdentity ( new Claim[] { new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()) } ) ); await _controller.Destroy(account.Id, revenue.Id); Assert.Empty(_context.Revenues); }
public async void Show_Should_Current_Balance_Equal_To_280000_When_There_Is_A_Account_With_A_Revenue_With_The_Value_Equal_To_280000() { var user = await Factory.User(); await _context.Users.AddAsync(user); await _context.SaveChangesAsync(); var account = await Factory.Account(userId : user.Id); await _context.Accounts.AddAsync(account); await _context.SaveChangesAsync(); var pay = await Factory.Revenue(accountId : account.Id, value : 280000); await _context.Revenues.AddAsync(pay); await _context.SaveChangesAsync(); _accessor.HttpContext.User = await Factory.ClaimsPrincipal(userId : user.Id); var result = await _controller.Show(); var response = Assert.IsAssignableFrom <OkObjectResult>(result); Assert.Equal(280000, ((ResponseViewModel <int>)response.Value).Data); }
public async void Show_Should_Return_Revenue() { var user = await Factory.User(); await _context.Users.AddAsync(user); var account = await Factory.Account(userId : user.Id); await _context.Accounts.AddAsync(account); var revenue = await Factory.Revenue(accountId : account.Id); await _context.Revenues.AddAsync(revenue); await _context.SaveChangesAsync(); _accessor.HttpContext.User = new ClaimsPrincipal ( new ClaimsIdentity ( new Claim[] { new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()) } ) ); var result = await _controller.Show(account.Id, revenue.Id); var response = Assert.IsAssignableFrom <OkObjectResult>(result); Assert.Equal(((ResponseViewModel <Revenue>)response.Value).Data.Id, revenue.Id); }
public async void Show_Should_Return_Status_200() { var user = await Factory.User(); await _context.Users.AddAsync(user); await _context.SaveChangesAsync(); var account = await Factory.Account(userId : user.Id); await _context.Accounts.AddAsync(account); await _context.SaveChangesAsync(); var pay = await Factory.Revenue(accountId : account.Id, value : 280000); await _context.Revenues.AddAsync(pay); await _context.SaveChangesAsync(); _accessor.HttpContext.User = await Factory.ClaimsPrincipal(userId : user.Id); var start = new DateTime(year: 2019, month: 12, day: 1); var end = new DateTime(year: 2019, month: 12, day: 31); var result = await _controller.Show(start, end); Assert.IsAssignableFrom <OkObjectResult>(result); }
public async void Update_Should_Return_Status_200() { var user = await Factory.User(); await _context.Users.AddAsync(user); await _context.SaveChangesAsync(); var account = await Factory.Account(userId : user.Id); await _context.Accounts.AddAsync(account); await _context.SaveChangesAsync(); _accessor.HttpContext.User = new ClaimsPrincipal ( new ClaimsIdentity ( new Claim[] { new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()) } ) ); var viewModel = new UpdateAccountViewModel { Name = "Itaú", Type = "Poupança" }; var result = await _controller.Update(account.Id, viewModel); Assert.IsAssignableFrom <OkObjectResult>(result); }
public async void Store_Should_Return_Status_201() { var user = await Factory.User(); await _context.Users.AddAsync(user); var account = await Factory.Account(userId : user.Id); await _context.Accounts.AddAsync(account); await _context.SaveChangesAsync(); _accessor.HttpContext.User = new ClaimsPrincipal ( new ClaimsIdentity ( new Claim[] { new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()) } ) ); var viewModel = new StoreRevenueViewModel { Description = "Supermarket", Value = 500, Date = DateTime.Now.AddDays(-2) }; var result = await _controller.Store(account.Id, viewModel); Assert.IsAssignableFrom <OkObjectResult>(result); }
public async void Destroy_Should_Return_Status_200() { var user = await Factory.User(); await _context.Users.AddAsync(user); var account = await Factory.Account(userId : user.Id); await _context.Accounts.AddAsync(account); var revenue = await Factory.Revenue(accountId : account.Id); await _context.Revenues.AddAsync(revenue); await _context.SaveChangesAsync(); _accessor.HttpContext.User = new ClaimsPrincipal ( new ClaimsIdentity ( new Claim[] { new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()) } ) ); var result = await _controller.Destroy(account.Id, revenue.Id); Assert.IsAssignableFrom <OkObjectResult>(result); }
public async void Index_Should_Return_A_List_Of_Account() { var user = await Factory.User(); await _context.Users.AddAsync(user); await _context.SaveChangesAsync(); var account = await Factory.Account(userId : user.Id); await _context.Accounts.AddAsync(account); await _context.SaveChangesAsync(); _accessor.HttpContext.User = new ClaimsPrincipal ( new ClaimsIdentity ( new Claim[] { new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()) } ) ); var result = await _controller.Index(); var response = Assert.IsAssignableFrom <OkObjectResult>(result); Assert.Collection(((ResponseViewModel <List <Account> >)response.Value).Data, (it) => { Assert.Equal(account.Id, it.Id); }); }
public async void Index_Should_Return_Two_Transitions_When_The_Current_Month_Has_An_Output_And_And_Input() { var user = await Factory.User(); await _context.Users.AddAsync(user); await _context.SaveChangesAsync(); var nubank = await Factory.Account(userId : user.Id); await _context.Accounts.AddAsync(nubank); await _context.SaveChangesAsync(); var itau = await Factory.Account(userId : user.Id); await _context.Accounts.AddAsync(itau); await _context.SaveChangesAsync(); var output = await Factory.Output(toId : nubank.Id, fromId : itau.Id, date : new DateTime(year: 2019, month: 12, day: 25)); await _context.Outputs.AddAsync(output); await _context.SaveChangesAsync(); var input = await Factory.Input(toId : nubank.Id, fromId : itau.Id, date : new DateTime(year: 2019, month: 12, day: 24)); await _context.Inputs.AddAsync(input); await _context.SaveChangesAsync(); _accessor.HttpContext.User = await Factory.ClaimsPrincipal(userId : user.Id); var start = new DateTime(year: 2019, month: 12, day: 1); var end = new DateTime(year: 2019, month: 12, day: 31); var result = await _controller.Index(start, end); var response = Assert.IsAssignableFrom <OkObjectResult>(result); var transitions = ((ResponseViewModel <IList <Transition> >)response.Value).Data; Assert.Collection(transitions, (it) => { Assert.Equal(output.Description, it.Description); Assert.Equal(output.Value, it.Value); Assert.Equal(output.Date, it.Date); }, (it) => { Assert.Equal(input.Description, it.Description); Assert.Equal(input.Value, it.Value); Assert.Equal(input.Date, it.Date); }); }
public async void Index_Should_Return_Only_One_Transition_When_The_Month_Has_One_Transition_And_Another_Month_Has_One_Transition() { var user = await Factory.User(); await _context.Users.AddAsync(user); await _context.SaveChangesAsync(); var account = await Factory.Account(userId : user.Id); await _context.Accounts.AddAsync(account); await _context.SaveChangesAsync(); var pay = await Factory.Revenue(accountId : account.Id, date : new DateTime(year: 2019, month: 12, day: 1)); await _context.Revenues.AddAsync(pay); await _context.SaveChangesAsync(); var gym = await Factory.Expense(accountId : account.Id, date : new DateTime(year: 2020, month: 1, day: 1)); await _context.Expenses.AddAsync(gym); await _context.SaveChangesAsync(); _accessor.HttpContext.User = new ClaimsPrincipal ( new ClaimsIdentity ( new Claim[] { new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()) } ) ); var begin = new DateTime(year: 2019, month: 12, day: 1); var end = new DateTime(year: 2019, month: 12, day: 31); var result = await _controller.Index(begin, end); var response = Assert.IsAssignableFrom <OkObjectResult>(result); var transitions = ((ResponseViewModel <IList <Transition> >)response.Value).Data; Assert.Collection(transitions, (it) => { Assert.Equal(pay.Id, it.Id); Assert.Equal(pay.Description, it.Description); Assert.Equal(pay.Value, it.Value); Assert.Equal(pay.Date, it.Date); }); }
public async void Show_Should_Return_Output_With_Its_Input() { var user = await Factory.User(); await _context.Users.AddAsync(user); await _context.SaveChangesAsync(); var itau = await Factory.Account(userId : user.Id); await _context.Accounts.AddAsync(itau); await _context.SaveChangesAsync(); var nubank = await Factory.Account(userId : user.Id); await _context.Accounts.AddAsync(nubank); await _context.SaveChangesAsync(); var output = await Factory.Output(toId : nubank.Id, fromId : itau.Id); await _context.Outputs.AddAsync(output); await _context.SaveChangesAsync(); var input = await Factory.Input(toId : nubank.Id, fromId : itau.Id); await _context.Inputs.AddAsync(input); await _context.SaveChangesAsync(); _accessor.HttpContext.User = await Factory.ClaimsPrincipal(userId : user.Id); var result = await _controller.Show(output.Id); var response = Assert.IsAssignableFrom <OkObjectResult>(result); var data = ((ResponseViewModel <ShowTransferViewModel>)response.Value).Data; Assert.Equal(output.Description, data.Output.Description); Assert.Equal(output.Date, data.Output.Date); Assert.Equal(output.Value, data.Output.Value); Assert.Equal(output.ToId, data.Output.ToId); Assert.Equal(output.FromId, data.Output.FromId); Assert.Equal(input.Description, data.Input.Description); Assert.Equal(input.Date, data.Input.Date); Assert.Equal(input.Value, data.Input.Value); Assert.Equal(input.ToId, data.Input.ToId); Assert.Equal(input.FromId, data.Input.FromId); }
public async void Show_Should_Monthly_Balance_Just_Take_The_Month_Transactions() { var user = await Factory.User(); await _context.Users.AddAsync(user); await _context.SaveChangesAsync(); var account = await Factory.Account(userId : user.Id); await _context.Accounts.AddAsync(account); await _context.SaveChangesAsync(); var pay = await Factory.Revenue(accountId : account.Id, value : 100000, date : new DateTime(year: 2019, month: 12, day: 15)); await _context.Revenues.AddAsync(pay); await _context.SaveChangesAsync(); var xbox = await Factory.Expense(accountId : account.Id, value : -50000, date : new DateTime(year: 2019, month: 12, day: 18)); await _context.Expenses.AddAsync(xbox); await _context.SaveChangesAsync(); var laptop = await Factory.Expense(accountId : account.Id, value : -50000, date : new DateTime(year: 2019, month: 11, day: 1)); await _context.Expenses.AddAsync(laptop); await _context.SaveChangesAsync(); _accessor.HttpContext.User = await Factory.ClaimsPrincipal(userId : user.Id); var start = new DateTime(year: 2019, month: 12, day: 1); var end = new DateTime(year: 2019, month: 12, day: 31); var result = await _controller.Show(start, end); var response = Assert.IsAssignableFrom <OkObjectResult>(result); var monthlyBalance = ((ResponseViewModel <int>)response.Value).Data; Assert.Equal(50000, monthlyBalance); }
public async void Store_Should_Have_An_Output() { var user = await Factory.User(); await _context.Users.AddAsync(user); await _context.SaveChangesAsync(); var nubank = await Factory.Account(userId : user.Id); await _context.Accounts.AddAsync(nubank); await _context.SaveChangesAsync(); var itau = await Factory.Account(userId : user.Id); await _context.Accounts.AddAsync(itau); await _context.SaveChangesAsync(); _accessor.HttpContext.User = await Factory.ClaimsPrincipal(userId : user.Id); var viewModel = new StoreTransferViewModel { Description = "Save money", Date = new DateTime(year: 2019, month: 12, day: 25), Value = 25000, ToId = nubank.Id, FromId = itau.Id }; var result = await _controller.Store(viewModel); Assert.Collection(_context.Outputs, (it) => { Assert.Equal(viewModel.Description, it.Description); Assert.Equal(viewModel.Date, it.Date); Assert.Equal(-viewModel.Value, it.Value); Assert.Equal(viewModel.ToId, it.ToId); Assert.Equal(viewModel.FromId, it.FromId); }); }
public async void Update_Should_Revenue_Has_Been_Updated() { var user = await Factory.User(); await _context.Users.AddAsync(user); var account = await Factory.Account(userId : user.Id); await _context.Accounts.AddAsync(account); var revenue = await Factory.Revenue(accountId : account.Id); await _context.Revenues.AddAsync(revenue); await _context.SaveChangesAsync(); _accessor.HttpContext.User = new ClaimsPrincipal ( new ClaimsIdentity ( new Claim[] { new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()) } ) ); var viewModel = new UpdateRevenueViewModel { Description = "Supermarket", Value = 5000, Date = DateTime.Now.AddDays(-1) }; await _controller.Update(account.Id, revenue.Id, viewModel); await _context.Entry(revenue).ReloadAsync(); Assert.Equal(viewModel.Description, revenue.Description); Assert.Equal(viewModel.Value, revenue.Value); Assert.Equal(viewModel.Date, revenue.Date); }
public async void Store_Should_Exist_Revenue_Into_Database() { var user = await Factory.User(); await _context.Users.AddAsync(user); var account = await Factory.Account(userId : user.Id); await _context.Accounts.AddAsync(account); await _context.SaveChangesAsync(); _accessor.HttpContext.User = new ClaimsPrincipal ( new ClaimsIdentity ( new Claim[] { new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()) } ) ); var viewModel = new StoreRevenueViewModel { Description = "Supermarket", Value = 500, Date = DateTime.Now.AddDays(-2) }; await _controller.Store(account.Id, viewModel); Assert.Collection(_context.Revenues, (it) => { Assert.Equal(viewModel.Description, it.Description); Assert.Equal(viewModel.Value, it.Value); Assert.Equal(viewModel.Date, it.Date); }); }
public async void Update_Should_Account_Has_Been_Updated() { var user = await Factory.User(); await _context.Users.AddAsync(user); await _context.SaveChangesAsync(); var account = await Factory.Account(userId : user.Id); await _context.Accounts.AddAsync(account); await _context.SaveChangesAsync(); _accessor.HttpContext.User = new ClaimsPrincipal ( new ClaimsIdentity ( new Claim[] { new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()) } ) ); var viewModel = new UpdateAccountViewModel { Name = "Itaú", Type = "Corrente" }; _context.Entry(account).Reload(); await _controller.Update(account.Id, viewModel); Assert.Equal(viewModel.Name, account.Name); Assert.Equal(viewModel.Type, account.Type); }
public async void Update_Should_Return_Status_200() { var user = await Factory.User(); await _context.Users.AddAsync(user); var account = await Factory.Account(userId : user.Id); await _context.Accounts.AddAsync(account); var expense = await Factory.Expense(accountId : account.Id); await _context.Expenses.AddAsync(expense); await _context.SaveChangesAsync(); _accessor.HttpContext.User = new ClaimsPrincipal ( new ClaimsIdentity ( new Claim[] { new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()) } ) ); var viewModel = new UpdateExpenseViewModel { Description = "Nintendo Switch", Value = 180000, Date = DateTime.Now.AddDays(-1) }; var result = await _controller.Update(account.Id, expense.Id, viewModel); Assert.IsAssignableFrom <OkObjectResult>(result); }
public async void Show_Should_Return_Status_200() { var user = await Factory.User(); await _context.Users.AddAsync(user); await _context.SaveChangesAsync(); var itau = await Factory.Account(userId : user.Id); await _context.Accounts.AddAsync(itau); await _context.SaveChangesAsync(); var nubank = await Factory.Account(userId : user.Id); await _context.Accounts.AddAsync(nubank); await _context.SaveChangesAsync(); var output = await Factory.Output(toId : nubank.Id, fromId : itau.Id); await _context.Outputs.AddAsync(output); await _context.SaveChangesAsync(); var input = await Factory.Input(toId : nubank.Id, fromId : itau.Id); await _context.Inputs.AddAsync(input); await _context.SaveChangesAsync(); _accessor.HttpContext.User = await Factory.ClaimsPrincipal(userId : user.Id); var result = await _controller.Show(output.Id); Assert.IsAssignableFrom <OkObjectResult>(result); }