public int RegisterNewBalance(BalanceRegistrationInfo args) { if (args.Amount <= 0) { throw new ArgumentException("Invalid BalanceRegistrationInfo. Can't continue."); } var entityToAdd = new BalanceEntity() { Client = args.Client, Amount = args.Amount, Status = true }; if (this.tableRepository.Contains(entityToAdd)) { throw new ArgumentException("Balance for this client has been registered. Can't continue."); } this.tableRepository.Add(entityToAdd); this.tableRepository.SaveChanges(); return(entityToAdd.Id); }
public void ShouldNotRegisterNewBalanceIfItExists() { // Arrange this.balanceTableRepository = Substitute.For <IBalanceTableRepository>(); BalancesService balancesService = new BalancesService(this.balanceTableRepository); BalanceRegistrationInfo args = new BalanceRegistrationInfo(); args.Client = this.newClient; args.Amount = 5000.00M; args.Status = true; // Act balancesService.RegisterNewBalance(args); this.balanceTableRepository.Contains(Arg.Is <BalanceEntity>( // Now Contains returns true (table contains this balance of client) b => b.Client == args.Client)).Returns(true); balancesService.RegisterNewBalance(args); // Try to reg. same twice and get exception // Assert }
public void ShouldRegisterNewBalance() { // Arrange this.balanceTableRepository = Substitute.For <IBalanceTableRepository>(); BalancesService balancesService = new BalancesService(this.balanceTableRepository); BalanceRegistrationInfo args = new BalanceRegistrationInfo(); args.Client = this.newClient; args.Amount = 5000.00M; args.Status = true; // Act var shareId = balancesService.RegisterNewBalance(args); // Assert this.balanceTableRepository.Received(1).Add(Arg.Is <BalanceEntity>( b => b.Client == args.Client && b.Amount == args.Amount && b.Status == args.Status)); this.balanceTableRepository.Received(1).SaveChanges(); }