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); }
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"); }
/// <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(); }