public void Init() { var optionsBuilder = new DbContextOptionsBuilder <ApplicationDbContext>(); optionsBuilder.UseInMemoryDatabase("databaseManagerValidator"); context = new ApplicationDbContext(optionsBuilder.Options); applicationUser = new ApplicationUser { Id = Guid.NewGuid(), IsEnabled = true, Type = UserType.Manager, Wallets = new List <Wallets> { new Wallets { Amount = 10000, Currency = Currency.GVT } }, }; broker = new BrokersAccounts { Id = Guid.NewGuid(), UserId = applicationUser.Id, Description = string.Empty, IsEnabled = true, Name = "Broker #1", RegistrationDate = DateTime.UtcNow }; brokerTradeServer = new BrokerTradeServers { Id = Guid.NewGuid(), Name = "Server #1", IsEnabled = true, Host = string.Empty, RegistrationDate = DateTime.UtcNow, Type = BrokerTradeServerType.MetaTrader4, BrokerId = broker.Id }; managerAccount = new ManagerAccounts { Id = Guid.NewGuid(), BrokerTradeServerId = brokerTradeServer.Id, Currency = Currency.USD, Login = "******", RegistrationDate = DateTime.UtcNow, UserId = applicationUser.Id, IsConfirmed = true }; context.Add(applicationUser); context.Add(broker); context.Add(brokerTradeServer); context.Add(managerAccount); context.SaveChanges(); managerValidator = new ManagerValidator(context); }
public static BrokerTradeServer ToBrokerTradeServers(this BrokerTradeServers server) { return(new BrokerTradeServer { Id = server.Id, Name = server.Name, Type = server.Type, Host = server.Host, RegistrationDate = server.RegistrationDate, BrokerId = server.BrokerId, Broker = server.Broker?.ToBroker() }); }
public void Init() { var optionsBuilder = new DbContextOptionsBuilder <ApplicationDbContext>(); optionsBuilder.UseInMemoryDatabase("databaseBrokerValidator"); context = new ApplicationDbContext(optionsBuilder.Options); user = new ApplicationUser { Id = Guid.NewGuid(), IsEnabled = true, Type = UserType.Broker }; broker = new BrokersAccounts { Id = Guid.NewGuid(), UserId = user.Id, Description = string.Empty, IsEnabled = true, Name = "Broker #1", Logo = "logo.png", RegistrationDate = DateTime.UtcNow }; brokerTradeServer = new BrokerTradeServers { Id = Guid.NewGuid(), Name = "Server #1", IsEnabled = true, Host = string.Empty, RegistrationDate = DateTime.UtcNow, Type = BrokerTradeServerType.MetaTrader4, BrokerId = broker.Id }; context.Add(broker); context.Add(brokerTradeServer); context.SaveChanges(); brokerValidator = new BrokerValidator(context); }
public void Init() { var optionsBuilder = new DbContextOptionsBuilder <ApplicationDbContext>(); optionsBuilder.UseInMemoryDatabase("databaseTrustManagementService"); context = new ApplicationDbContext(optionsBuilder.Options); user = new ApplicationUser { Id = Guid.NewGuid(), IsEnabled = true, Wallets = new List <Wallets> { new Wallets { Amount = 100000, Currency = Currency.GVT } }, }; managerAccount = new ManagerAccounts { Id = Guid.NewGuid(), IsConfirmed = true, UserId = user.Id }; investmentProgram = new InvestmentPrograms { Id = Guid.NewGuid(), DateFrom = DateTime.UtcNow.AddYears(-1), FeeEntrance = 100m, FeeSuccess = 120m, FeeManagement = 10m, Description = "Test inv", IsEnabled = true, Period = 10, InvestMinAmount = 500, InvestMaxAmount = 1500, ManagerAccountId = managerAccount.Id, Token = new ManagerTokens { TokenName = "Token", TokenSymbol = "TST" } }; broker = new BrokersAccounts { Id = Guid.NewGuid(), UserId = user.Id, Description = string.Empty, IsEnabled = true, Name = "Broker #1", RegistrationDate = DateTime.UtcNow }; brokerTradeServer = new BrokerTradeServers { Id = Guid.NewGuid(), Name = "Server #1", IsEnabled = true, Host = string.Empty, RegistrationDate = DateTime.UtcNow, Type = BrokerTradeServerType.MetaTrader4, BrokerId = broker.Id }; context.Add(user); context.Add(managerAccount); context.Add(investmentProgram); context.Add(broker); context.Add(brokerTradeServer); context.SaveChanges(); smartContractService = new Mock <ISmartContractService>(); ipfsService = new Mock <IIpfsService>(); statisticService = new Mock <IStatisticService>(); rateService = new Mock <IRateService>(); trustManagementService = new TrustManagementService(context, ipfsService.Object, smartContractService.Object, statisticService.Object, rateService.Object, Substitute.For <ILogger <ITrustManagementService> >()); }
public void CreateInvestmentProgramRequest() { rateService.Setup(x => x.GetRate(It.IsAny <Currency>(), It.IsAny <Currency>())) .Returns(() => InvokeOperations.InvokeOperation(() => 1m)); var user = new ApplicationUser { Id = Guid.NewGuid(), Wallets = new List <Wallets> { new Wallets { Amount = 1000, Currency = Currency.GVT } }, }; var server = new BrokerTradeServers { Id = Guid.NewGuid() }; context.Add(user); context.Add(server); context.SaveChanges(); var createInvestment = new NewInvestmentRequest { Description = "#1 New investment program", FeeManagement = 456, FeeSuccess = 789, Period = 5, UserId = user.Id, DateFrom = DateTime.UtcNow.AddDays(20).AddHours(15).AddMinutes(10).AddSeconds(5), DateTo = DateTime.UtcNow.AddDays(100), InvestMinAmount = 0.9999m, InvestMaxAmount = 100000.01m, BrokerTradeServerId = server.Id, Logo = "logo.jpg", DepositAmount = 200m, TokenSymbol = "GVT_TST", TokenName = "Test Token", TradePlatformPassword = "******" }; var result = managerService.CreateNewInvestmentRequest(createInvestment); Assert.IsTrue(result.IsSuccess); rateService.Verify(x => x.GetRate(It.IsAny <Currency>(), It.IsAny <Currency>())); var investment = context.ManagerRequests .FirstOrDefault(x => x.Id == result.Data); Assert.IsNotNull(investment); Assert.AreEqual(createInvestment.Description, investment.Description); Assert.AreEqual(createInvestment.DateFrom, investment.DateFrom); Assert.AreEqual(createInvestment.DateTo, investment.DateTo); Assert.AreEqual(createInvestment.FeeSuccess, investment.FeeSuccess); Assert.AreEqual(createInvestment.FeeManagement, investment.FeeManagement); Assert.AreEqual(createInvestment.Period, investment.Period); Assert.AreEqual(createInvestment.InvestMinAmount, investment.InvestMinAmount); Assert.AreEqual(createInvestment.InvestMaxAmount, investment.InvestMaxAmount); Assert.AreEqual(createInvestment.Logo, investment.Logo); Assert.AreEqual(createInvestment.DepositAmount, investment.DepositAmount); Assert.AreEqual(createInvestment.TokenSymbol, investment.TokenSymbol); Assert.AreEqual(createInvestment.TokenName, investment.TokenName); Assert.AreEqual(createInvestment.TradePlatformPassword, investment.TradePlatformPassword); var wallet = context.Wallets.FirstOrDefault(x => x.UserId == user.Id && x.Currency == Currency.GVT); Assert.IsNotNull(wallet); Assert.AreEqual(800m, wallet.Amount); var tx = context.WalletTransactions.FirstOrDefault(x => x.WalletId == wallet.Id); Assert.IsNotNull(tx); Assert.AreEqual(200m, tx.Amount); Assert.AreEqual(WalletTransactionsType.OpenProgram, tx.Type); }