public void BankAccountRepositoryAddNewItemSaveItem()
        {
            //Arrange
            var unitOfWork = new MainBCUnitOfWork();
            var customerRepository = new CustomerRepository(unitOfWork);
            var bankAccountRepository = new BankAccountRepository(unitOfWork);
           
            var customer = customerRepository.Get(new Guid("43A38AC8-EAA9-4DF0-981F-2685882C7C45"));
            
            var bankAccountNumber = new BankAccountNumber("1111", "2222", "3333333333", "01");

            var newBankAccount = BankAccountFactory.CreateBankAccount(customer,bankAccountNumber);
            

            //Act
            bankAccountRepository.Add(newBankAccount);

            try
            {
                unitOfWork.Commit();
            }
            catch (DbUpdateException ex)
            {
                var entry = ex.Entries.First();
            }
        }
      public void BankAccountRepositoryGetMethodReturnNullWhenIdIsEmpty()
      {
         //Arrange
         var unitOfWork = new MainBcUnitOfWork();
         var bankAccountRepository = new BankAccountRepository(unitOfWork);

         //Act
         var bankAccount = bankAccountRepository.Get(Guid.Empty);

         //Assert
         Assert.IsNull(bankAccount);
      }
        public void FindBankAccount_Invoke_NullSpecThrowArgumentNullException_Test()
        {
            //Arrange
            IMainModuleUnitOfWork context      = this.GetUnitOfWork();
            ITraceManager         traceManager = this.GetTraceManager();
            BankAccountRepository repository   = new BankAccountRepository(context, traceManager);

            //Act
            BankAccount actual;

            actual = repository.GetBySpec(null)
                     .SingleOrDefault();
        }
 public override void Credit()
 {
     if (CurrentMovement?.SourceAccountId != null && CurrentMovement.TargetAccountId.HasValue)
     {
         var account         = BankAccountRepository.GetById(CurrentMovement.SourceAccountId.Value);
         var internalAccount = BankAccountRepository.GetById(CurrentMovement.TargetAccountId.Value);
         Credit(account, internalAccount, CurrentMovement);
     }
     else
     {
         throw new ArgumentException("Current movement / Source account / Target Account can't be null.");
     }
 }
        public void BankAccountRepositoryGetAllReturnMaterializedBankAccountsAndCustomers()
        {
            //Arrange
            var bankAccountRepository = new BankAccountRepository(fixture.unitOfWork, fixture.bankAccountLogger);

            //Act
            var allItems = bankAccountRepository.GetAll();

            //Assert
            Assert.NotNull(allItems);
            Assert.True(allItems.Any());
            Assert.True(allItems.All(ba => ba.Customer != null));
        }
Пример #6
0
        public void GetUserForBankAccountSuccessfully()
        {
            var content = File.ReadAllText("../../../Fixtures/bank_account_get_users.json");

            var          client  = GetMockClient(content);
            var          repo    = new BankAccountRepository(client.Object);
            const string userId  = "ec9bf096-c505-4bef-87f6-18822b9dbf2c"; //some user created before
            var          gotUser = repo.GetUserForBankAccount("ec9bf096-c505-4bef-87f6-18822b9dbf2c");

            client.VerifyAll();
            Assert.IsNotNull(gotUser);

            Assert.AreEqual(userId, gotUser.Id);
        }
Пример #7
0
            ) Transfer(string fromAccount, string toAccount, string currency, decimal money, string message)
        {
            if (money < 0)
            {
                throw new BusinessException("Money should be greater than 0.");
            }

            var nowUtc = DateTime.Now.ToUniversalTime();
            var sourceAccountEntity = BankAccountService.Get(fromAccount);
            var targetAccountEntity = BankAccountService.Get(toAccount);
            var currencyEntity      = CurrencyService.Get(currency);

            var exchangeRateFromSourceAccount = ExchangeRateHistoryService.GetExchangeRate(sourceAccountEntity.Currency, currencyEntity, nowUtc);
            var exchangeRateToTargetAccount   = ExchangeRateHistoryService.GetExchangeRate(currencyEntity, targetAccountEntity.Currency, nowUtc);
            var deltaFromSourceAccount        = money * exchangeRateFromSourceAccount;
            var deltaToTargetAccount          = money * exchangeRateToTargetAccount;

            if (deltaFromSourceAccount > sourceAccountEntity.Balance)
            {
                throw new BusinessException("Source account balance is not sufficient");
            }
            else if (deltaFromSourceAccount <= 0 || deltaToTargetAccount <= 0)
            {
                throw new BusinessException("Transfer delta is not valid.");
            }

            sourceAccountEntity.Balance -= deltaFromSourceAccount;
            targetAccountEntity.Balance += deltaToTargetAccount;

            var entity = new TransferMoneyTransaction
            {
                DateTimeUtc   = nowUtc,
                SourceAccount = sourceAccountEntity,
                Account       = targetAccountEntity,
                Currency      = currencyEntity,
                Money         = money,
                Message       = message
            };

            TransactionRepository.Create(entity);
            BankAccountRepository.Update(sourceAccountEntity);
            BankAccountRepository.Update(targetAccountEntity);

            UnitOfWork.SaveChanges();
            return(
                entity.Id,
                exchangeRateFromSourceAccount, deltaFromSourceAccount, sourceAccountEntity.Balance,
                exchangeRateToTargetAccount, deltaToTargetAccount, targetAccountEntity.Balance
                );
        }
        public void BankAccountRepositoryGetMethodReturnMaterializedEntityById()
        {
            //Arrange
            var bankAccountRepository = new BankAccountRepository(fixture.unitOfWork, fixture.bankAccountLogger);

            var selectedBankAccount = new Guid("0343C0B0-7C40-444A-B044-B463F36A1A1F");

            //Act
            var bankAccount = bankAccountRepository.Get(selectedBankAccount);

            //Assert
            Assert.NotNull(bankAccount);
            Assert.True(bankAccount.Id == selectedBankAccount);
        }
        public void BankAccountRepositoryGetAllReturnMaterializedBankAccountsAndCustomers()
        {
            //Arrange
            var unitOfWork            = new MainBCUnitOfWork();
            var bankAccountRepository = new BankAccountRepository(unitOfWork);

            //Act
            var allItems = bankAccountRepository.GetAll();

            //Assert
            Assert.IsNotNull(allItems);
            Assert.IsTrue(allItems.Any());
            Assert.IsTrue(allItems.All(ba => ba.Customer != null));
        }
Пример #10
0
 public UnitOfWork(DataContext dataContext)
 {
     _dataContext                       = dataContext;
     BranchRepository                   = new BranchRepository(dataContext);
     AddressRepository                  = new AddressRepository(dataContext);
     BankAccountRepository              = new BankAccountRepository(dataContext);
     DepartmentRepository               = new DepartmentRepository(dataContext);
     MunicipalityRepository             = new MunicipalityRepository(dataContext);
     PositionRepository                 = new PositionRepository(dataContext);
     RegionRepository                   = new RegionRepository(dataContext);
     SettlementRepository               = new SettlementRepository(dataContext);
     BasePositionStaffEntityRepositorty = new BasePositionStaffEntityRepository(dataContext);
     PositionsAndDepartmentRepository   = new PositionsAndDepartmentRepository(dataContext);
 }
Пример #11
0
        public BankAccountModel createAccount(string CustomerName, string CustomerID, string AccountNumber, float InitialBalance)
        {
            BankAccountRepository repository = new BankAccountRepository(this._context);

            var account = repository.getByAccountNumber(AccountNumber);

            if (account != null)
            {
                throw new Exception("there's another bank account with this Bank Number.");
            }

            account = repository.createAccount(CustomerName, CustomerID, AccountNumber, InitialBalance);
            return(BanckAccountMapper.toModel(account));
        }
        protected override IEnumerable <FileParserInput> DownloadTransactions()
        {
            var downloadResults = new List <FileParserInput>();

            Browser.WaitForJavaScript(12000);
            Browser.FindElement(By.XPath("//*[@data-test='main-nav-kontozentrale']")).Click();
            Browser.WaitForJavaScript();

            //fist ist cumulative account
            for (var i = 1; i < GetAccountLinks().Count; i++)
            {
                GetAccountLinks()[i].Click();
                Browser.WaitForJavaScript(2000);
                var valueParser =
                    ComponentContext.ResolveKeyed <IValueParser>(Constants.UniqueContainerKeys.ValueParserGermanDecimal);
                var balance     = GetAccountBalance().Text.CleanNumberStringFromOther();
                var infoBox     = Browser.FindElement(By.ClassName("info-box"));
                var iban        = infoBox.FindElement(By.TagName("h2")).Text.CleanString();
                var bankAccount = BankAccountRepository.GetByIban(iban);
                if (bankAccount == null)
                {
                    bankAccount = new BankAccountEntity
                    {
                        AccountNumber = iban,
                        Iban          = iban,
                        BankName      = Constants.DownloadHandler.BankNameRaiffeisen,
                        AccountName   = i == 0 ? Constants.DownloadHandler.AccountNameGiro : Constants.DownloadHandler.AccountNameSaving
                    };
                    BankAccountRepository.Insert(bankAccount);
                }

                TakeScreenshot(iban);

                var resultingFile = DownloadFromWebElement(Browser.FindElement(By.ClassName("icon-csv")), iban);
                downloadResults.Add(new FileParserInput
                {
                    OwningEntity = bankAccount,
                    FileParser   =
                        ComponentContext.ResolveKeyed <IFileParser>(Constants.UniqueContainerKeys.FileParserRaiffeisenGiro),
                    FilePath            = resultingFile,
                    TargetEntity        = typeof(RaiffeisenTransactionEntity),
                    Balance             = (decimal)valueParser.Parse(balance),
                    BalanceSelectorFunc =
                        () => BankTransactionRepository.TransactionSumForAccountId(bankAccount.Id)
                });
            }
            downloadResults.AddRange(DownloadDepots());
            return(downloadResults);
        }
        public void BankAccountRepositoryFilterMethodReturnEntitisWithSatisfiedFilter()
        {
            //Arrange
            var unitOfWork            = new MainBcUnitOfWork();
            var bankAccountRepository = new BankAccountRepository(unitOfWork);

            var iban = string.Format("ES{0} {1} {2} {0}{3}", "02", "4444", "5555", "3333333333");

            //Act
            var allItems = bankAccountRepository.GetFiltered(ba => ba.Iban == iban);

            //Assert
            Assert.IsNotNull(allItems);
            Assert.IsTrue(allItems.All(b => b.Iban == iban));
        }
      public void BankAccountRepositoryGetMethodReturnMaterializedEntityById()
      {
         //Arrange
         var unitOfWork = new MainBcUnitOfWork();
         var bankAccountRepository = new BankAccountRepository(unitOfWork);

         var selectedBankAccount = new Guid("0343C0B0-7C40-444A-B044-B463F36A1A1F");

         //Act
         var bankAccount = bankAccountRepository.Get(selectedBankAccount);

         //Assert
         Assert.IsNotNull(bankAccount);
         Assert.IsTrue(bankAccount.Id == selectedBankAccount);
      }
        public void BankAccountRepositoryFilterMethodReturnEntitisWithSatisfiedFilter()
        {
            //Arrange
            var bankAccountRepository = new BankAccountRepository(fixture.unitOfWork, fixture.bankAccountLogger);

            string iban = string.Format("ES{0} {1} {2} {0}{3}", "02", "4444", "5555", "3333333333");


            //Act
            var allItems = bankAccountRepository.GetFiltered(ba => ba.Iban == iban);

            //Assert
            Assert.NotNull(allItems);
            Assert.True(allItems.All(b => b.Iban == iban));
        }
        public void BankAccountRepositoryGetMethodReturnMaterializedEntityById()
        {
            //Arrange
            var unitOfWork            = new MainBCUnitOfWork();
            var bankAccountRepository = new BankAccountRepository(unitOfWork);

            var selectedBankAccount = new Guid("0343C0B0-7C40-444A-B044-B463F36A1A1F");

            //Act
            var bankAccount = bankAccountRepository.Get(selectedBankAccount);

            //Assert
            Assert.IsNotNull(bankAccount);
            Assert.IsTrue(bankAccount.Id == selectedBankAccount);
        }
        public void BankAccountRepositoryFilterMethodReturnEntitisWithSatisfiedFilter()
        {
            //Arrange
            var unitOfWork = new MainBCUnitOfWork();
            IBankAccountRepository bankAccountRepository = new BankAccountRepository(unitOfWork);

            string iban = string.Format("ES{0} {1} {2} {0}{3}", "02", "4444", "5555", "3333333333");

            //Act
            var allItems = bankAccountRepository.GetFiltered(ba => ba.Iban == iban);

            //Assert
            Assert.IsNotNull(allItems);
            Assert.IsTrue(allItems.All(b => b.Iban == iban));
        }
Пример #18
0
        public void GetBankAccountSuccessfully()
        {
            var content = File.ReadAllText("../../../Fixtures/bank_account_get_by_id.json");

            var          client   = GetMockClient(content);
            var          repo     = new BankAccountRepository(client.Object);
            const string id       = "ec9bf096-c505-4bef-87f6-18822b9dbf2c";
            var          response = repo.GetBankAccountById(id);

            client.VerifyAll();
            var first      = response.Values.First();
            var firstJson  = JsonConvert.SerializeObject(first);
            var gotAccount = JsonConvert.DeserializeObject <IDictionary <string, object> >(firstJson);

            Assert.AreEqual(id, gotAccount["id"]);
        }
        public override void TestInitialize()
        {
            base.TestInitialize();
            TransactionRepository = Container.Resolve <IRepository <RaiffeisenTransactionEntity> >();
            BankAccountRepository = Container.Resolve <IRepository <BankAccountEntity> >();

            BankAccountEntity = new BankAccountEntity
            {
                AccountName   = "Giro",
                BankName      = "Raiffeisen",
                AccountNumber = "AT001234567891234",
                Iban          = "AT001234567891234"
            };
            BankAccountRepository.InsertOrGetWithEquality(BankAccountEntity);
            BankAccountRepository.Save();
        }
        public void BankAccountRepositoryAllMatchingMethodReturnEntitiesWithSatisfiedCriteria()
        {
            //Arrange
            var bankAccountRepository = new BankAccountRepository(fixture.unitOfWork, fixture.bankAccountLogger);

            string iban = string.Format("ES{0} {1} {2} {0}{3}", "02", "4444", "5555", "3333333333");

            var spec = BankAccountSpecifications.BankAccountIbanNumber(iban);

            //Act
            var result = bankAccountRepository.AllMatching(spec);

            //Assert
            Assert.NotNull(result);
            Assert.True(result.All(b => b.Iban == iban));
        }
        public void FindPagedBankAccountsWithTransferInformation_Invoke_InvalidPageCountThrowArgumentException_Test()
        {
            //Arrange
            IMainModuleUnitOfWork context      = this.GetUnitOfWork();
            ITraceManager         traceManager = this.GetTraceManager();
            BankAccountRepository repository   = new BankAccountRepository(context, traceManager);
            int pageIndex = 0;
            int pageCount = 0;

            //act
            IEnumerable <BankAccount> result = repository.FindPagedBankAccountsWithTransferInformation(pageIndex, pageCount);

            //Assert
            Assert.IsNotNull(result);
            Assert.IsTrue(result.Count() > 0);
        }
Пример #22
0
 public AccountWindowViewModel(IServiceProvider serviceProvider, TransferBroker broker, BankAccountRepository bankRepo, UserRepository userRepo, InvestmentRepository investRepo, LoanRepository loanRepo)
 {
     this.broker             = broker;
     this.serviceProvider    = serviceProvider;
     this.bankRepo           = bankRepo;
     this.userRepo           = userRepo;
     this.investRepo         = investRepo;
     this.loanRepo           = loanRepo;
     broker.TransferStarted += Broker_TransferStarted;
     broker.TimePassed      += Broker_TimePassed;
     broker.Update          += Broker_Update;
     Loans       = new ObservableCollection <LoanViewModel>();
     Investments = new ObservableCollection <InvestmentViewModel>();
     LoggedUsers = new ObservableCollection <User>();
     InitializeCommands();
 }
        public void BankAccountRepositoryAllMatchingMethodReturnEntitiesWithSatisfiedCriteria()
        {
            //Arrange
            var unitOfWork = new MainBCUnitOfWork();
            IBankAccountRepository bankAccountRepository = new BankAccountRepository(unitOfWork);

            string iban = string.Format("ES{0} {1} {2} {0}{3}","02","4444","5555","3333333333");

            var spec =BankAccountSpecifications.BankAccountWithNumber(iban);

            //Act
            var result = bankAccountRepository.AllMatching(spec);

            //Assert
            Assert.IsNotNull(result);
            Assert.IsTrue(result.All(b => b.Iban == iban));
        }
Пример #24
0
        public override LoanProposal Handle(LoanProposal request)
        {
            Console.WriteLine("\nValidating bank account balance.");

            var clientId = request;

            var repo = new BankAccountRepository();

            var bankAccount = repo.Find(x => x.ClientId == request.ClientId).FirstOrDefault();

            if (bankAccount.Balance < request.Amount * 0.5m)
            {
                throw new Exception($"The client bank account must have at least 50% of the required loan amount.");
            }

            return(base.Handle(request));
        }
Пример #25
0
        public void Find_Should_Return_Bank_Account()
        {
            //Arrange
            var dataContextMock = new Mock <DataContext>();
            var dbSetMock       = new Mock <DbSet <BankAccount> >();

            dbSetMock.Setup(b => b.Find(It.IsAny <Guid>())).Returns(new BankAccount());
            dataContextMock.Setup(b => b.Set <BankAccount>()).Returns(dbSetMock.Object);

            //Act
            var bankAccountRepository = new BankAccountRepository(dataContextMock.Object);
            var bankAccount           = bankAccountRepository.Find(new Guid());

            //Assert
            Assert.NotNull(bankAccount);
            Assert.IsAssignableFrom <BankAccount>(bankAccount);
        }
        public void FindBanksAccounts_Invoke_AccountNumber_Test()
        {
            //Arrange
            IMainModuleUnitOfWork          context      = this.GetUnitOfWork();
            ITraceManager                  traceManager = this.GetTraceManager();
            BankAccountRepository          repository   = new BankAccountRepository(context, traceManager);
            BankAccountSearchSpecification spec         = new BankAccountSearchSpecification(bankAccountNumber, null);

            //Act
            IEnumerable <BankAccount> actual;

            actual = repository.GetBySpec(spec);

            //Assert
            Assert.IsNotNull(actual);
            Assert.IsTrue(actual.Count() == 1);
        }
        public void FindBanksAccounts_Invoke_CustomerName_Test()
        {
            //Arrange
            IMainModuleUnitOfWork context      = this.GetUnitOfWork();
            ITraceManager         traceManager = this.GetTraceManager();
            BankAccountRepository repository   = new BankAccountRepository(context, traceManager);

            string name = "Unai";
            BankAccountSearchSpecification spec = new BankAccountSearchSpecification(null, name);

            //Act
            IEnumerable <BankAccount> actual;

            actual = repository.GetBySpec(spec);

            //Assert
            Assert.IsNotNull(actual);
        }
Пример #28
0
        public BankAccountModel CreateEditBankAccount(BankAccountModel model)
        {
            BankAccountEntity entity;

            //is update
            if (model.Id != default(long))
            {
                entity = BankAccountRepository.GetById(model.Id);
                entity = Mapper.Map(model, entity);
            }
            else
            {
                entity = Mapper.Map <BankAccountEntity>(model);
                entity = BankAccountRepository.Insert(entity);
            }
            BankAccountRepository.Save();
            return(Mapper.Map <BankAccountModel>(entity));
        }
        public void BankAccountRepositoryPagedMethodReturnEntitiesInPageFashion()
        {
            //Arrange
            var bankAccountRepository = new BankAccountRepository(fixture.unitOfWork, fixture.bankAccountLogger);

            //Act
            var pageI  = bankAccountRepository.GetPaged(0, 1, b => b.Id, false);
            var pageII = bankAccountRepository.GetPaged(1, 1, b => b.Id, false);

            //Assert
            Assert.NotNull(pageI);
            Assert.True(pageI.Count() == 1);

            Assert.NotNull(pageII);
            Assert.True(pageII.Count() == 1);

            Assert.False(pageI.Intersect(pageII).Any());
        }
        public void CustomerService_Customer_WithBankAccountAndTransactions()
        {
            // Arrange
            var customerService = new CustomerService(new CustomerRepository(_dbContext),
                                                      new BankAccountRepository(_dbContext),
                                                      new TransactionRepository(_dbContext));

            var name    = Guid.NewGuid().ToString();
            var surname = Guid.NewGuid().ToString();

            _dbContext.Customers.Add(new Customer
            {
                Name        = name,
                Surname     = surname,
                DateCreated = DateTime.UtcNow
            });
            _dbContext.SaveChanges();

            var bankAccountRepository = new BankAccountRepository(_dbContext);

            bankAccountRepository.Add(new BankAccount
            {
                CustomerId = 1
            }).GetAwaiter().GetResult();
            _dbContext.SaveChanges();

            _dbContext.Transactions.Add(new Transaction
            {
                Amount        = 50,
                BankAccountId = 1,
                DateCreated   = DateTime.UtcNow
            });
            _dbContext.SaveChanges();

            // Act
            var customer = customerService.GetCustomer(1).GetAwaiter().GetResult();

            // Assert
            Assert.NotNull(customer);
            Assert.Equal(name, customer.Name);
            Assert.Equal(surname, customer.Surname);
            Assert.True(1 == customer.BankAccounts.Count());
            Assert.True(1 == customer.BankAccounts.First().Transactions.Count());
        }
Пример #31
0
        protected override IEnumerable <FileParserInput> DownloadTransactions()
        {
            Browser.WaitForJavaScript(5000);

            var ibanRaw     = Browser.FindElement(By.ClassName("accountText")).Text; //First is Tagesgeld
            var iban        = ibanRaw.Split(':')[1].CleanString();
            var balanceStr  = Browser.FindElement(new ByChained(By.ClassName("currency"), By.ClassName("amountblock-wrapper"))).Text;
            var valueParser =
                ComponentContext.ResolveKeyed <IValueParser>(Constants.UniqueContainerKeys.ValueParserGermanDecimal);
            var balance = (decimal)valueParser.Parse(balanceStr);

            Browser.FindElement(By.ClassName("accountInfo-wrapper")).Click();
            Browser.WaitForJavaScript();

            var bankAccount = BankAccountRepository.GetByIban(iban);

            if (bankAccount == null)
            {
                bankAccount = new BankAccountEntity
                {
                    AccountNumber = iban,
                    Iban          = iban,
                    BankName      = Constants.DownloadHandler.BankNameRci,
                    AccountName   = Constants.DownloadHandler.AccountNameSaving
                };
                BankAccountRepository.Insert(bankAccount);
            }

            TakeScreenshot(iban);

            var exportButton = Browser.FindElement(By.ClassName("transactions-csv-export"));
            var file         = DownloadFromWebElement(exportButton, iban);

            yield return(new FileParserInput
            {
                Balance = balance,
                BalanceSelectorFunc = () => BankTransactionRepository.TransactionSumForAccountId(bankAccount.Id),
                FileParser = ComponentContext.ResolveKeyed <IFileParser>(Constants.UniqueContainerKeys.FileParserRci),
                FilePath = file,
                OwningEntity = bankAccount,
                TargetEntity = typeof(RciTransactionEntity)
            });
        }
        public void FindBankAccount_Invoke_InvalidCodeReturnNullObject_Test()
        {
            //Arrange
            IMainModuleUnitOfWork context      = this.GetUnitOfWork();
            ITraceManager         traceManager = this.GetTraceManager();
            BankAccountRepository repository   = new BankAccountRepository(context, traceManager);

            string invalidCode = "0200011111";
            BankAccountNumberSpecification spec = new BankAccountNumberSpecification(invalidCode);

            //Act
            BankAccount actual;

            actual = repository.GetBySpec(spec)
                     .SingleOrDefault();

            //Assert
            Assert.IsNull(actual);
        }
Пример #33
0
        public void GetUserForBankAccountSuccessfully()
        {
            var content = File.ReadAllText("../../../Fixtures/bank_account_get_users.json");

            var          client = GetMockClient(content);
            var          repo   = new BankAccountRepository(client.Object);
            const string userId = "ec9bf096-c505-4bef-87f6-18822b9dbf2c"; //some user created before
            var          resp   = repo.GetUserForBankAccount("ec9bf096-c505-4bef-87f6-18822b9dbf2c");

            client.VerifyAll();
            Assert.IsNotNull(resp);

            var users = resp["users"];

            Assert.IsNotNull(users);
            var user = JsonConvert.DeserializeObject <IDictionary <string, object> >(JsonConvert.SerializeObject(users));

            Assert.AreEqual(userId, user["id"]);
        }
Пример #34
0
        public async Task AddAccountAsyncAsync_Test()
        {
            var item = new BankAccountInfo()
            {
                AccountNumber = 123456,
                SocialId      = "123456789",
                BankCode      = 31,
                BranchNumber  = 1,
                BirthDay      = new DateTime(1972, 1, 1),
                CityCode      = "CityCode",
                NameEnglish   = "NameEnglish",
                NameLocal     = "NameLocal"
            };

            IBankAccountRepository bankRepository = new BankAccountRepository();
            await bankRepository.CreateAsync(item);

            Assert.True(item.Id > 0);
        }
Пример #35
0
        public void BankAccountRepositoryGetMethodReturnMaterializedEntityById()
        {
            //Arrange
            var unitOfWork = new MainBCUnitOfWork();
            //DbContextManager.DbContextBuilder<TestDbContext> builder = new DbContextBuilder<TestDbContext>("Infrastructure.Data.Ef.Test.UnitOfWork.MainBCUnitOfWork", @"E:\MyCode\MyCommonLibrary\TestOutput\Infrastructure.Data.Ef.Test", "Infrastructure.Data.Ef.Test.UnitOfWork.Mapping");

            //var unitOfWork = builder.BuildDbContext();

            IBankAccountRepository bankAccountRepository = new BankAccountRepository(unitOfWork);

            Guid selectedBankAccount = new Guid("0343C0B0-7C40-444A-B044-B463F36A1A1F");

            //Act
            var bankAccount = bankAccountRepository.Get(selectedBankAccount);

            //Assert
            Assert.IsNotNull(bankAccount);
            Assert.IsTrue(bankAccount.Id == selectedBankAccount);
        }
        public void BankAccountRepositoryPagedMethodReturnEntitiesInPageFashion()
        {
            //Arrange
            var unitOfWork            = new MainBCUnitOfWork();
            var bankAccountRepository = new BankAccountRepository(unitOfWork);

            //Act
            var pageI  = bankAccountRepository.GetPaged(0, 1, b => b.Id, false);
            var pageII = bankAccountRepository.GetPaged(1, 1, b => b.Id, false);

            //Assert
            Assert.IsNotNull(pageI);
            Assert.IsTrue(pageI.Count() == 1);

            Assert.IsNotNull(pageII);
            Assert.IsTrue(pageII.Count() == 1);

            Assert.IsFalse(pageI.Intersect(pageII).Any());
        }
        public void BankAccountRepositoryAddNewItemSaveItem()
        {
            //Arrange
            var unitOfWork = new MainBCUnitOfWork();
            IBankAccountRepository bankAccountRepository = new BankAccountRepository(unitOfWork);

            Guid customerId = new Guid("43A38AC8-EAA9-4DF0-981F-2685882C7C45");
            var bankAccountNumber = new BankAccountNumber("1111", "2222", "3333333333", "01");
            BankAccount newBankAccount = BankAccountFactory.CreateBankAccount(customerId,bankAccountNumber);
            newBankAccount.Id = IdentityGenerator.NewSequentialGuid();

            //Act

            bankAccountRepository.Add(newBankAccount);
            bankAccountRepository.UnitOfWork.Commit();

            //Assert

            var inserted = bankAccountRepository.Get(newBankAccount.Id);

            Assert.IsNotNull(inserted);
        }
        public void BankAccountRepositoryRemoveItemDeleteIt()
        {
            //Arrange
            var unitOfWork = new MainBCUnitOfWork();
            IBankAccountRepository bankAccountRepository = new BankAccountRepository(unitOfWork);

            Guid customerId = new Guid("43A38AC8-EAA9-4DF0-981F-2685882C7C45");
            var bankAccountNumber = new BankAccountNumber("4444", "5555", "3333333333", "02");

            BankAccount newBankAccount = BankAccountFactory.CreateBankAccount(customerId, bankAccountNumber);
            newBankAccount.Id = IdentityGenerator.NewSequentialGuid();

            bankAccountRepository.Add(newBankAccount);
            bankAccountRepository.UnitOfWork.Commit();

            //Act

            bankAccountRepository.Remove(newBankAccount);
            bankAccountRepository.UnitOfWork.Commit();

            var result = bankAccountRepository.Get(newBankAccount.Id);

            //Assert
            Assert.IsNull(result);
        }
      public void BankAccountRepositoryGetAllReturnMaterializedBankAccountsAndCustomers()
      {
         //Arrange
         var unitOfWork = new MainBcUnitOfWork();
         var bankAccountRepository = new BankAccountRepository(unitOfWork);

         //Act
         var allItems = bankAccountRepository.GetAll();

         //Assert
         Assert.IsNotNull(allItems);
         Assert.IsTrue(allItems.Any());
         Assert.IsTrue(allItems.All(ba => ba.Customer != null));
      }
      public void BankAccountRepositoryPagedMethodReturnEntitiesInPageFashion()
      {
         //Arrange
         var unitOfWork = new MainBcUnitOfWork();
         var bankAccountRepository = new BankAccountRepository(unitOfWork);

         //Act
         var pageI = bankAccountRepository.GetPaged(0, 1, b => b.Id, false);
         var pageIi = bankAccountRepository.GetPaged(1, 1, b => b.Id, false);

         //Assert
         Assert.IsNotNull(pageI);
         Assert.IsTrue(pageI.Count() == 1);

         Assert.IsNotNull(pageIi);
         Assert.IsTrue(pageIi.Count() == 1);

         Assert.IsFalse(pageI.Intersect(pageIi).Any());
      }
      public void BankAccountRepositoryRemoveItemDeleteIt()
      {
         //Arrange
         var unitOfWork = new MainBcUnitOfWork();
         var customerRepository = new CustomerRepository(unitOfWork);
         var bankAccountRepository = new BankAccountRepository(unitOfWork);

         var customer = customerRepository.Get(new Guid("43A38AC8-EAA9-4DF0-981F-2685882C7C45"));

         var bankAccountNumber = new BankAccountNumber("4444", "5555", "3333333333", "02");

         var newBankAccount = BankAccountFactory.CreateBankAccount(customer, bankAccountNumber);

         bankAccountRepository.Add(newBankAccount);
         unitOfWork.Commit();

         //Act
         bankAccountRepository.Remove(newBankAccount);
         unitOfWork.Commit();

      }