Пример #1
0
        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);
        }
Пример #2
0
 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()
     });
 }
Пример #3
0
        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);
        }
Пример #4
0
        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> >());
        }
Пример #5
0
        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);
        }