Пример #1
0
        public void TestConstructor_ValidValues_Service()
        {
            var repositoryMock = new Mock <IRepository <DTOHolder> >();

            repositoryMock.Setup(repo => repo.Items).Returns(new List <DTOHolder>());

            var holderService = new HolderService(_holderIdService, repositoryMock.Object);
        }
Пример #2
0
        public void TestAddHolder_ValidNameAndSurname_Holder()
        {
            var repositoryMock = new Mock <IRepository <DTOHolder> >();

            repositoryMock.Setup(repo => repo.Items).Returns(new List <DTOHolder>());
            repositoryMock.Setup(repo => repo.Add(It.IsAny <DTOHolder>()));
            var holderService = new HolderService(_holderIdService, repositoryMock.Object);

            holderService.AddHolder("Ruslan", "Bahirau");
        }
Пример #3
0
        /// <summary>
        /// Opens new account.
        /// </summary>
        /// <param name="holderName">
        /// Holder's name.
        /// </param>
        /// <param name="holderPhone">
        /// Holder's phone.
        /// </param>
        /// <param name="holderEmail">
        /// Holder's email.
        /// </param>
        /// <param name="holderHomeAddress">
        /// Holder's home address.
        /// </param>
        /// <param name="bankAccountFactory">
        /// Factory that creates bank account.
        /// </param>
        /// <param name="accountNumberFactory">
        /// Account number factory that will generate new account number.
        /// </param>
        public override void OpenAccount(
            string holderName,
            string holderPhone,
            string holderEmail,
            string holderHomeAddress,
            AbstractBankAccountFactory bankAccountFactory)
        {
            AbstractBankAccount bankAccount = bankAccountFactory.GetNewBankAccount();

            bankAccount.Holder = HolderService.GetHolder(holderName, holderPhone, holderHomeAddress, holderEmail);
            bankAccount.Holder.AddBankAccount(bankAccount);

            this.Repository.Save(bankAccount);
        }
        static void Main(string[] args)
        {
            AbstractAccountService service = ServiceProvider.GetService();

            service.OpenAccount("Kyril Siaukovich", "+1 (123) 123-1234", "*****@*****.**", "11 Foo st.", new BaseBankAccountFactory());
            service.OpenAccount("Kyril Siaukovich", "+1 (123) 123-1234", "*****@*****.**", "11 Foo st.", new BaseBankAccountFactory());
            service.OpenAccount("Dmitry Siaukovich", "+1 (012) 123-1234", "*****@*****.**", "12 Foo st.", new SilverBankAccountFactory());
            service.OpenAccount("Foo Bar", "+1 (012) 123-1234", "*****@*****.**", "22 Alef st.", new GoldBankAccountFactory());

            Console.WriteLine("All holders:");
            foreach (Holder holder in HolderService.GetAllHolders())
            {
                Console.WriteLine(holder.Name);
                foreach (var account in holder.GetAllAccounts())
                {
                    Console.WriteLine("\t" + account.Number);
                }
                Console.WriteLine();
            }

            var kyril = HolderService.GetAllHolders().First(h => h.Name == "Kyril Siaukovich");

            var accNumber = kyril.GetAllAccounts().First().Number;

            service.CloseAccount(accNumber);

            accNumber = kyril.GetAllAccounts().ElementAt(1).Number;
            service.FrozeAccount(accNumber);

            var accounts = FakeRepository.Instance.GetAllBankAccounts();
            var zipped   = accounts.Zip(Enumerable.Range(0, accounts.Count()), (acc, num) => new { Number = num, Account = acc });

            Console.WriteLine("All accounts:");
            foreach (var an in zipped)
            {
                Console.WriteLine(an.Number);
                Console.WriteLine($"\tHolder: {an.Account.Holder.Name}");
                Console.WriteLine($"\tStatus: {an.Account.Status}");
                Console.WriteLine($"\tNumber: {an.Account.Number}");
                Console.WriteLine();
            }

            service.UnfrozeAccount(accNumber);
            Console.WriteLine(FakeRepository.Instance.GetAccountByNumber(accNumber).Status);

            Console.ReadKey();
        }