public ReportsService(IOperationTableRepository operationTableRepository, ISharesNumberTableRepository sharesNumberTableRepository, IBalanceTableRepository balanceTableRepository, IShareTableRepository shareTableRepository, IClientTableRepository clientTableRepository) { this.operationTableRepository = operationTableRepository; this.sharesNumberTableRepository = sharesNumberTableRepository; this.balanceTableRepository = balanceTableRepository; this.shareTableRepository = shareTableRepository; this.clientTableRepository = clientTableRepository; }
public SalesService(IOperationTableRepository operationTableRepository, IBalanceTableRepository balanceTableRepository, IBlockedMoneyTableRepository blockedMoneyTableRepository, ISharesNumberTableRepository sharesNumberTableRepository, IBlockedSharesNumberTableRepository blockedSharesNumberTableRepository, IShareTableRepository shareTableRepository) { this.operationTableRepository = operationTableRepository; this.balanceTableRepository = balanceTableRepository; this.blockedMoneyTableRepository = blockedMoneyTableRepository; this.sharesNumberTableRepository = sharesNumberTableRepository; this.blockedSharesNumberTableRepository = blockedSharesNumberTableRepository; this.shareTableRepository = shareTableRepository; }
public void ShouldThrowExceptionIfCantFindShare() { // Arrange this.shareTableRepository = Substitute.For <IShareTableRepository>(); int testId = 55; this.shareTableRepository.ContainsById(Arg.Is(testId)).Returns(false); // Now Contains returns false (table don't contains share type with this Id) SharesService sharesService = new SharesService(this.shareTableRepository); // Act sharesService.ContainsById(testId); // Try to get share type and get exception // Assert }
public void Initialize() { this.operationTableRepository = Substitute.For <IOperationTableRepository>(); this.balanceTableRepository = Substitute.For <IBalanceTableRepository>(); this.sharesNumberTableRepository = Substitute.For <ISharesNumberTableRepository>(); this.blockedMoneyTableRepository = Substitute.For <IBlockedMoneyTableRepository>(); this.blockedSharesNumberTableRepository = Substitute.For <IBlockedSharesNumberTableRepository>(); this.shareTableRepository = Substitute.For <IShareTableRepository>(); }
public void ShouldRemoveShare() { // Arrange this.shareTableRepository = Substitute.For <IShareTableRepository>(); this.shareTableRepository.ContainsById(Arg.Is(55)).Returns(true); SharesService sharesService = new SharesService(this.shareTableRepository); // Act sharesService.RemoveShare(55); // Assert this.shareTableRepository.Received(1).Deactivate(55); this.shareTableRepository.Received(1).SaveChanges(); }
public void ShouldGetShareInfo() { // Arrange this.shareTableRepository = Substitute.For <IShareTableRepository>(); int testId = 55; this.shareTableRepository.ContainsById(Arg.Is(testId)).Returns(true); SharesService sharesService = new SharesService(this.shareTableRepository); // Act var shareInfo = sharesService.GetShare(testId); // Assert this.shareTableRepository.Received(1).Get(testId); }
public void ShouldChangeShareType() { // Arrange this.shareTableRepository = Substitute.For <IShareTableRepository>(); int testShareId = 55; this.shareTableRepository.ContainsById(Arg.Is(testShareId)).Returns(true); SharesService sharesService = new SharesService(this.shareTableRepository); // Act sharesService.ChangeType(testShareId, this.type); // Assert this.shareTableRepository.Received(1).SetType(testShareId, this.type); this.shareTableRepository.Received(1).SaveChanges(); }
public void ShouldChangeCompanyName() { // Arrange this.shareTableRepository = Substitute.For <IShareTableRepository>(); int testId = 55; this.shareTableRepository.ContainsById(Arg.Is(testId)).Returns(true); SharesService sharesService = new SharesService(this.shareTableRepository); string newCompanyName = "Seas and oceans"; // Act sharesService.ChangeCompanyName(testId, newCompanyName); // Assert this.shareTableRepository.Received(1).SetCompanyName(testId, newCompanyName); this.shareTableRepository.Received(1).SaveChanges(); }
public void ShouldRegisterNewShare() { // Arrange this.shareTableRepository = Substitute.For <IShareTableRepository>(); SharesService sharesService = new SharesService(this.shareTableRepository); ShareRegistrationInfo args = new ShareRegistrationInfo(); args.CompanyName = "Horns and hooves"; args.Type = this.type; args.Status = true; // Act var shareId = sharesService.RegisterNewShare(args); // Assert this.shareTableRepository.Received(1).Add(Arg.Is <ShareEntity>( s => s.CompanyName == args.CompanyName && s.Type == args.Type && s.Status == args.Status)); this.shareTableRepository.Received(1).SaveChanges(); }
public void ShouldNotRegisterNewShareIfItExists() { // Arrange this.shareTableRepository = Substitute.For <IShareTableRepository>(); SharesService sharesService = new SharesService(this.shareTableRepository); ShareRegistrationInfo args = new ShareRegistrationInfo(); args.CompanyName = "Horns and hooves"; args.Type = this.type; args.Status = true; // Act sharesService.RegisterNewShare(args); this.shareTableRepository.Contains(Arg.Is <ShareEntity>( // Now Contains returns true (table contains this share type) s => s.CompanyName == args.CompanyName && s.Type == args.Type && s.Status == args.Status)).Returns(true); sharesService.RegisterNewShare(args); // Try to reg. same twice and get exception // Assert }
public void Initialize() { var clients = new List <ClientEntity>() { new ClientEntity() { Id = 1, CreatedAt = DateTime.Now, LastName = "Pavlov", FirstName = "Ivan", PhoneNumber = "+7(812)5551243", Status = true }, new ClientEntity() { Id = 2, CreatedAt = DateTime.Now, LastName = "Mechnikov", FirstName = "Ilya", PhoneNumber = "+33(0)140205317", Status = true }, new ClientEntity() { Id = 3, CreatedAt = DateTime.Now, LastName = "Bunin", FirstName = "Ivan", PhoneNumber = "+33(0)420205320", Status = true }, new ClientEntity() { Id = 4, CreatedAt = DateTime.Now, LastName = "Semyonov", FirstName = "Nikolay", PhoneNumber = "+7(495)4652317", Status = true }, new ClientEntity() { Id = 5, CreatedAt = DateTime.Now, LastName = "Pasternak", FirstName = "Boris", PhoneNumber = "+7(495)4368173", Status = true }, new ClientEntity() { Id = 6, CreatedAt = DateTime.Now, LastName = "Cherenkov", FirstName = "Pavel", PhoneNumber = "+7(495)3246421", Status = true }, new ClientEntity() { Id = 7, CreatedAt = DateTime.Now, LastName = "Tamm", FirstName = "Igor", PhoneNumber = "+7(495)7523146", Status = true }, new ClientEntity() { Id = 8, CreatedAt = DateTime.Now, LastName = "Frank", FirstName = "Ilya", PhoneNumber = "+7(495)7924194", Status = true }, new ClientEntity() { Id = 9, CreatedAt = DateTime.Now, LastName = "Landau", FirstName = "Lev", PhoneNumber = "+7(495)7924194", Status = true } }; var balances = new List <BalanceEntity>() { new BalanceEntity() { Id = 1, Client = clients[0], Amount = 138000, Status = true }, new BalanceEntity() { Id = 2, Client = clients[1], Amount = 142000, Status = true }, new BalanceEntity() { Id = 3, Client = clients[2], Amount = 130000, Status = true }, new BalanceEntity() { Id = 4, Client = clients[3], Amount = 0, Status = true }, new BalanceEntity() { Id = 5, Client = clients[4], Amount = 0, Status = true }, new BalanceEntity() { Id = 6, Client = clients[5], Amount = -139700, Status = true }, new BalanceEntity() { Id = 7, Client = clients[6], Amount = 139700, Status = true }, new BalanceEntity() { Id = 8, Client = clients[7], Amount = -131000, Status = true }, new BalanceEntity() { Id = 9, Client = clients[8], Amount = 0, Status = true }, }; var shareTypesList = new List <ShareTypeEntity>() { new ShareTypeEntity() { Id = 1, Name = "Cheap", Cost = 1000, Status = true }, new ShareTypeEntity() { Id = 2, Name = "Middle", Cost = 4000, Status = true }, new ShareTypeEntity() { Id = 3, Name = "Expensive", Cost = 10000, Status = true } }; var sharesList = new List <ShareEntity>() { new ShareEntity() { Id = 1, CreatedAt = DateTime.Now, CompanyName = "Microsoft", Type = shareTypesList[2] /*Expensive*/, Status = true }, new ShareEntity() { Id = 2, CreatedAt = DateTime.Now, CompanyName = "Apple", Type = shareTypesList[1] /*Middle*/, Status = true }, new ShareEntity() { Id = 3, CreatedAt = DateTime.Now, CompanyName = "Yandex", Type = shareTypesList[1] /*Middle*/, Status = true } }; var sharesNumbers = new List <SharesNumberEntity>() { new SharesNumberEntity() { Id = 1, Client = clients[0], // Id = 1 Share = sharesList[0], // Microsoft Number = 50 }, new SharesNumberEntity() { Id = 2, Client = clients[1], // Id = 2 Share = sharesList[0], // Microsoft Number = 30 }, new SharesNumberEntity() { Id = 3, Client = clients[1], // Id = 2 Share = sharesList[1], // Apple Number = 40 }, new SharesNumberEntity() { Id = 4, Client = clients[1], // Id = 2 Share = sharesList[2], // Yandex Number = 30 }, new SharesNumberEntity() { Id = 5, Client = clients[0], // Id = 1 Share = sharesList[1], // Apple Number = 20 }, new SharesNumberEntity() { Id = 6, Client = clients[5], // Id = 6 Share = sharesList[2], // Yandex Number = 30 }, new SharesNumberEntity() { Id = 7, Client = clients[4], // Id = 5 Share = sharesList[0], // Microsoft Number = 40 }, new SharesNumberEntity() { Id = 8, Client = clients[3], // Id = 4 Share = sharesList[0], // Microsoft Number = 25 } }; var operations = new List <OperationEntity>() { new OperationEntity() { Id = 1, DebitDate = DateTime.Now, Customer = clients[1], ChargeDate = DateTime.Now, Seller = clients[0], Share = sharesList[0], // 'Service' share ShareTypeName = sharesList[0].Type.Name, // 'Middle' Cost = sharesList[0].Type.Cost, // 'Middle' cost Number = 12, Total = 12 * sharesList[0].Type.Cost }, new OperationEntity() { Id = 2, DebitDate = DateTime.Now, Customer = clients[5], ChargeDate = DateTime.Now, Seller = clients[2], Share = sharesList[0], // 'Service' share ShareTypeName = sharesList[0].Type.Name, // 'Middle' Cost = sharesList[0].Type.Cost, // 'Middle' cost Number = 12, Total = 12 * sharesList[0].Type.Cost }, new OperationEntity() { Id = 3, DebitDate = DateTime.Now, Customer = clients[1], ChargeDate = DateTime.Now, Seller = clients[0], Share = sharesList[1], // 'Service' share ShareTypeName = sharesList[0].Type.Name, // 'Middle' Cost = sharesList[1].Type.Cost, // 'Middle' cost Number = 12, Total = 12 * sharesList[0].Type.Cost }, new OperationEntity() { Id = 4, DebitDate = DateTime.Now, Customer = clients[1], ChargeDate = DateTime.Now, Seller = clients[0], Share = sharesList[0], // 'Service' share ShareTypeName = sharesList[0].Type.Name, // 'Middle' Cost = sharesList[0].Type.Cost, // 'Middle' cost Number = 12, Total = 12 * sharesList[0].Type.Cost }, new OperationEntity() { Id = 5, DebitDate = DateTime.Now, Customer = clients[1], ChargeDate = DateTime.Now, Seller = clients[0], Share = sharesList[0], // 'Service' share ShareTypeName = sharesList[0].Type.Name, // 'Middle' Cost = sharesList[0].Type.Cost, // 'Middle' cost Number = 12, Total = 12 * sharesList[0].Type.Cost } }; this.operationTableRepository = Substitute.For <IOperationTableRepository>(); this.operationTableRepository.GetByClient(Arg.Is(2), Arg.Is(4)).Returns(new List <OperationEntity>() { operations[0], operations[2], operations[3], operations[4] }); this.balanceTableRepository = Substitute.For <IBalanceTableRepository>(); this.balanceTableRepository.GetNegativeBalances().Returns(new List <BalanceEntity>() { balances[5], balances[7] }); this.balanceTableRepository.GetZeroBalances().Returns(new List <BalanceEntity>() { balances[3], balances[4], balances[8] }); this.sharesNumberTableRepository = Substitute.For <ISharesNumberTableRepository>(); this.sharesNumberTableRepository.GetByClient(Arg.Is(4)).Returns(new List <SharesNumberEntity>() { sharesNumbers[7] }); this.sharesNumberTableRepository.GetByShare(Arg.Is(4)).Returns(new List <SharesNumberEntity>() { sharesNumbers[3], sharesNumbers[5] }); this.shareTableRepository = Substitute.For <IShareTableRepository>(); this.shareTableRepository.GetSharesCount().Returns(sharesList.Count); this.clientTableRepository = Substitute.For <IClientTableRepository>(); this.clientTableRepository.GetClientsCount().Returns(clients.Count); this.clientTableRepository.Take(Arg.Is(5), Arg.Is(1)).Returns(new List <ClientEntity>() { clients[0], clients[1], clients[2], clients[3], clients[4] }); }
public ShareServices(IShareTableRepository repo) { this.repo = repo; }
public SharesService(IShareTableRepository shareTableRepository) { this.tableRepository = shareTableRepository; }