public async Task Get_Cooperator_Players_Strategies()
        {
            var strategyRepository   = new StrategyRepository(connection);
            var strategyService      = new StrategyService(strategyRepository);
            var simulationRepository = new SimulationRepository(connection);
            var gameService          = new GameService(strategyService, gameSettingsProvider);
            var populationService    = new PopulationService(gameService);
            //TODO: simplify /\
            var simulationServce = new SimulationService(simulationRepository, populationService,
                                                         strategyService, new SimulationSettingsProvider());
            Strategy cooperator = await strategyRepository
                                  .GetByNameAsync(NoMemoryStrategies.GetSimpleCooperator().Name);

            var players = new List <Player>();

            for (int i = 0; i < 10; i++)
            {
                players.Add(new Player()
                {
                    StrategyId = cooperator.Id
                });
            }
            players = simulationServce.GetPlayersStrategies(players);

            bool badPlayers = players.Where(p => p.StrategyId != cooperator.Id).Any();

            Assert.IsFalse(badPlayers);
        }
Пример #2
0
        static void Main(string[] args)
        {
            IDiceService       diceService     = new DiceService();
            IRulesService      rulesService    = new RulesService(diceService);
            var                rules           = rulesService.GetRules(ERules.Percentage);
            IStrategyService   strategyService = new StrategyService(rules);
            IVillage           village         = new Village(diceService, strategyService, rules);
            IList <ICharacter> fighters        = new List <ICharacter>();

            for (int i = 0; i < 200; i++)
            {
                var character = village.GetFighter(EFighterClass.Warrior);
                fighters.Add(character);
            }

            for (int i = 0; i < 10; i++)
            {
                var character = village.GetFighter(EFighterClass.Ranger);
                fighters.Add(character);
            }

            IArena arena = new ClassicArena(fighters);

            arena.StartFight();
        }
        public async Task Get_Strategies_By_Id_Count_Equal_Distinct_Strategies()
        {
            var strategyRepository = new StrategyRepository(connection);
            var strategyService    = new StrategyService(strategyRepository);

            List <Strategy> allStrategies = await strategyService.GetAllStrategies();

            Strategy cheater    = allStrategies.Where(s => s.Name == "Simple Cheater").FirstOrDefault();
            Strategy cooperator = allStrategies.Where(s => s.Name == "Simple Cooperator").FirstOrDefault();

            List <Player> players = new List <Player>();

            for (int i = 0; i < 5; i++)
            {
                players.Add(new Player()
                {
                    StrategyId = cheater.Id
                });
                players.Add(new Player()
                {
                    StrategyId = cooperator.Id
                });
            }

            var strategies = strategyService.GetStrategiesById(players.Select(p => p.StrategyId).ToList());

            Assert.AreEqual(2, strategies.Count);
        }
        public async Task Should_Coop_Vs_Cheater()
        {
            var               repositoryMock  = new Mock <IStrategyRepository>();
            StrategyService   strategyService = new StrategyService(repositoryMock.Object);
            Player            player          = ConditionalPlayers.GetCheaterVsCooperator();
            string            enemyId         = Guid.NewGuid().ToString();
            List <PlayerMove> moves           = new List <PlayerMove>()
            {
                new PlayerMove()
                {
                    PlayerId = player.Id, Type = MoveType.Cooperate
                },
                new PlayerMove()
                {
                    PlayerId = enemyId, Type = MoveType.Cheat
                }
            };
            var rounds = new List <Round>()
            {
                new Round()
                {
                    PlayersMoves = moves
                },
                new Round()
                {
                    PlayersMoves = moves
                },
            };

            PlayerMove move = await strategyService.GetNextMoveAsync(player, rounds);

            Assert.AreEqual(MoveType.Cooperate, move.Type);
        }
Пример #5
0
 public MacdMAStrategy()
 {
     _jobService         = new JobService();
     _watchlistService   = new WatchlistService();
     _userSessionService = new UserSessionService();
     _strategyService    = new StrategyService();
 }
Пример #6
0
        private Execution MakeTrade(Order order)
        {
            string strategyName = new StrategyService().FindStrategyById(order.StrategyId).Name;

            if (strategyName == "IOC")
            {
                IOCStrategy ioc = new IOCStrategy();
                return(ioc.buyorsell(order));
            }
            else if (strategyName == "MRKT")
            {
                MarketPriceStrategy mk = new MarketPriceStrategy();
                return(mk.buyorsell(order));
            }
            else if (strategyName == "FOK")
            {
                FOKStrategy fok = new FOKStrategy();
                return(fok.buyorsell(order));
            }
            else if (strategyName == "GTC")
            {
                GTCStrategy gtcStrategy = new GTCStrategy();
                return(gtcStrategy.buyorsell(order));
            }
            else
            {
                return(null);
            }
        }
        public async Task Winner_Score_Is_Total_Score()
        {
            var strategyRepository   = new StrategyRepository(connection);
            var strategyService      = new StrategyService(strategyRepository);
            var simulationRepository = new SimulationRepository(connection);
            var gameService          = new GameService(strategyService, gameSettingsProvider);
            var populationService    = new PopulationService(gameService);
            //TODO: simplify /\
            var simulationServce = new SimulationService(simulationRepository, populationService,
                                                         strategyService, new SimulationSettingsProvider());
            Strategy cooperator = await strategyRepository
                                  .GetByNameAsync(NoMemoryStrategies.GetSimpleCooperator().Name);

            var players = new List <Player>();

            for (int i = 0; i < 10; i++)
            {
                players.Add(new Player()
                {
                    StrategyId = cooperator.Id
                });
            }

            Simulation simulation = await simulationServce.Run(players);

            GameSettings gameSettings = gameSettingsProvider.GetGameSettings();
            int          totalScore   = gameSettings.TotalRounds
                                        * (gameSettings.CooperateModifier + gameSettings.MoveModifier)
                                        * (players.Count - 1);

            Assert.AreEqual(totalScore, simulation.Winner.Score);
        }
        public async Task Run_Once_When_Consistent()
        {
            var strategyRepository   = new StrategyRepository(connection);
            var strategyService      = new StrategyService(strategyRepository);
            var simulationRepository = new SimulationRepository(connection);
            var gameService          = new GameService(strategyService, gameSettingsProvider);
            var populationService    = new PopulationService(gameService);
            //TODO: simplify /\
            var simulationServce = new SimulationService(simulationRepository, populationService,
                                                         strategyService, new SimulationSettingsProvider());
            Strategy cooperator = await strategyRepository
                                  .GetByNameAsync(NoMemoryStrategies.GetSimpleCooperator().Name);

            var players = new List <Player>();

            for (int i = 0; i < 10; i++)
            {
                players.Add(new Player()
                {
                    StrategyId = cooperator.Id
                });
            }

            Simulation simulation = await simulationServce.Run(players);

            Assert.IsNotNull(simulation.Winner);
            Assert.AreEqual(1, simulation.PopulationsCompleated);
        }
        public async Task Get_Strategies_By_Id_Count_Equal_All_Strategies()
        {
            var strategyRepository = new StrategyRepository(connection);
            var strategyService    = new StrategyService(strategyRepository);
            var strategiesIds      = strategyService.GetAllStrategies().Result.Select(s => s.Id).ToList();
            var strategies         = strategyService.GetStrategiesById(strategiesIds);

            Assert.AreEqual(strategiesIds.Count, strategies.Count);
        }
Пример #10
0
        public async Task Should_Cheat_Vs_Cooperator()
        {
            var             repositoryMock  = new Mock <IStrategyRepository>();
            StrategyService strategyService = new StrategyService(repositoryMock.Object);
            Player          player          = ConditionalPlayers.GetCheaterVsCooperator();

            PlayerMove move = await strategyService.GetNextMoveAsync(player, GetCoopHistory(Guid.NewGuid().ToString(), player.Id));

            Assert.AreEqual(MoveType.Cheat, move.Type);
        }
Пример #11
0
        public async Task Copycat_Should_Cooperate()
        {
            var             repositoryMock  = new Mock <IStrategyRepository>();
            StrategyService strategyService = new StrategyService(repositoryMock.Object);
            Player          player          = BasicPlayers.GetCheaterPlayer();

            PlayerMove move = await strategyService.GetNextMoveAsync(player, GetCoopHistory(player.Id, Guid.NewGuid().ToString()));

            Assert.AreEqual(MoveType.Cheat, move.Type);
        }
Пример #12
0
        public void TestAddOrder()
        {
            Trader    trader    = new TraderService().FindTraderById(1);
            Strategy  strategy  = new StrategyService().FindStrategyById(1);
            OrderBook orderBook = new OrderBookService().FindOrderBookById(1);

            Order order = new Order {
                DateTime = DateTime.Now, Execution = null, IsBuy = true, Price = 12.3, Quantity = 12, Trader = trader
            };

            new OrderService().AddOrder(order);
        }
Пример #13
0
        public StrategiesViewModel(StrategyService strategies, MarketService markets, AccountService accounts, SettingService settings)
        {
            Model     = strategies;
            _markets  = markets;
            _accounts = accounts;
            _settings = settings;

            AddCommand             = new RelayCommand(() => DoAddStrategy(), () => !IsBusy);
            ImportCommand          = new RelayCommand(() => DoImportStrategies(), () => !IsBusy);
            ExportCommand          = new RelayCommand(() => DoExportStrategies(), () => !IsBusy);
            SelectedChangedCommand = new RelayCommand <ITreeViewModel>((vm) => DoSelectedChanged(vm), true);

            DataFromModel();
        }
Пример #14
0
        public async Task <IActionResult> EditStrategy([FromBody] StrategyModel request)
        {
            try
            {
                var service = new StrategyService(_dbContext, _mapper);
                service.EditStrategy(request);
                await _dbContext.SaveChangesAsync();

                return(Ok());
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
        }
Пример #15
0
        private static void StrategyPattern()
        {
            try
            {
                var service = new StrategyService(new VostokDocumentCreator());
                service.CheckDocument();
                Console.WriteLine(service.GetDocumentParamsAsString());

                service = new StrategyService(new VodafoneDocumentCreator("2"));
                service.CheckDocument();
                Console.WriteLine(service.GetDocumentParamsAsString());
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
Пример #16
0
        public async Task <IActionResult> AddStrategy([FromBody] StrategyModel request)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }
                var service = new StrategyService(_dbContext, _mapper);
                var user    = await _userManager.GetApplicationUserAsync(User);

                service.AddStrategy(user, request);
                await _dbContext.SaveChangesAsync();

                return(Ok());
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
        }
Пример #17
0
        public async void Building(string unitsel)
        {
            // In-memory database only exists while the connection is open
            var connection = new SqliteConnection("DataSource=:memory:");

            connection.Open();

            try
            {
                var options = new DbContextOptionsBuilder <ApplitactionDbContext>()
                              .UseSqlite(connection)
                              .Options;
                //var context = new ApplitactionDbContext(options);

                using (var context = new ApplitactionDbContext(options))
                {
                    context.Database.EnsureCreated();
                }

                using (var context = new ApplitactionDbContext(options))
                {
                    var g = new Strategy_game.Models.Game();
                    var c = new Strategy_game.Models.Country()
                    {
                        CountryName = "zzzz", Gold = 1000
                    };
                    var a = new Strategy_game.Models.Archer()
                    {
                        OwnerCountry = c, Counter = 2
                    };
                    var h = new Strategy_game.Models.Horseman()
                    {
                        OwnerCountry = c, Counter = 2
                    };
                    var s = new Strategy_game.Models.Elite()
                    {
                        OwnerCountry = c, Counter = 2
                    };
                    var f = new Strategy_game.Models.Farm()
                    {
                        OwnerCountry = c, Counter = 4
                    };
                    var b = new Strategy_game.Models.Barrack()
                    {
                        OwnerCountry = c, Counter = 2
                    };



                    context.Games.Add(g);
                    context.Countries.Add(c);
                    context.Archers.Add(a);
                    context.Horsemans.Add(h);
                    context.Elites.Add(s);
                    context.Farms.Add(f);
                    context.Barracks.Add(b);



                    context.SaveChanges();
                    var ch = context.Countries.FirstOrDefaultAsync(d => d.CountryName == "zzzz").Result;

                    //var casd = context.Countries.FirstOrDefaultAsync();
                    var p = new Platoon()
                    {
                        Owner   = ch,
                        Archers = new Archer()
                        {
                            Counter = 150
                        },
                        Horsemans = new Horseman()
                        {
                            Counter = 150
                        },
                        Soldiers = new Elite()
                        {
                            Counter = 150
                        },
                    };
                    context.Platoons.Add(p);
                    context.SaveChanges();
                }

                using (var context = new ApplitactionDbContext(options))
                {
                    var service       = new UnitBuildingSetterService(context);
                    var service_strat = new StrategyService(context);

                    //service.DoOneRound();
                    var from = context.Countries.FirstOrDefaultAsync(C => C.CountryName == "zzzz").Result;

                    var resultfarm    = context.Farms.Include(Ra => Ra.OwnerCountry).FirstOrDefaultAsync(C => C.OwnerCountry.CountryName == "zzzz").Result;
                    var resultbarrack = context.Barracks.Include(Ra => Ra.OwnerCountry).FirstOrDefaultAsync(C => C.OwnerCountry.CountryName == "zzzz").Result;

                    if (unitsel == "Farm")
                    {
                        await service.buyB(resultfarm.BuildingId, from);

                        Assert.Equal(4, resultfarm.Counter);
                        Assert.Equal(5, resultfarm.Builder);

                        Assert.Equal(1000 - 200, from.Gold);
                        service_strat.DoOneRound();
                        service_strat.DoOneRound();

                        service_strat.DoOneRound();

                        service_strat.DoOneRound();
                        service_strat.DoOneRound();
                        Assert.Equal(0, resultfarm.Builder);
                        Assert.Equal(5, resultfarm.Counter);
                    }
                    if (unitsel == "Barrack")
                    {
                        await service.buyB(resultbarrack.BuildingId, from);

                        Assert.Equal(2, resultbarrack.Counter);
                        Assert.Equal(5, resultbarrack.Builder);

                        Assert.Equal(1000 - 1000, from.Gold);
                        service_strat.DoOneRound();
                        service_strat.DoOneRound();

                        service_strat.DoOneRound();

                        service_strat.DoOneRound();
                        service_strat.DoOneRound();
                        Assert.Equal(0, resultbarrack.Builder);
                        Assert.Equal(3, resultbarrack.Counter);
                    }
                }
            }
            finally
            {
                connection.Close();
            }
        }
Пример #18
0
        public void LoserCountry(int x, int y)
        {
            // In-memory database only exists while the connection is open
            var connection = new SqliteConnection("DataSource=:memory:");

            connection.Open();

            try
            {
                var options = new DbContextOptionsBuilder <ApplitactionDbContext>()
                              .UseSqlite(connection)
                              .Options;
                //var context = new ApplitactionDbContext(options);

                using (var context = new ApplitactionDbContext(options))
                {
                    context.Database.EnsureCreated();
                }

                using (var context = new ApplitactionDbContext(options))
                {
                    var g = new Strategy_game.Models.Game();
                    var c = new Strategy_game.Models.Country()
                    {
                        CountryName = "zzzz"
                    };
                    var a = new Strategy_game.Models.Archer()
                    {
                        OwnerCountry = c, Counter = 2
                    };
                    var h = new Strategy_game.Models.Horseman()
                    {
                        OwnerCountry = c, Counter = 2
                    };
                    var s = new Strategy_game.Models.Elite()
                    {
                        OwnerCountry = c, Counter = 2
                    };
                    var f = new Strategy_game.Models.Farm()
                    {
                        OwnerCountry = c, Counter = 4
                    };
                    var b = new Strategy_game.Models.Barrack()
                    {
                        OwnerCountry = c, Counter = 2
                    };



                    var c2 = new Strategy_game.Models.Country()
                    {
                        CountryName = "cccc"
                    };
                    var a2 = new Strategy_game.Models.Archer()
                    {
                        OwnerCountry = c2, Counter = 10
                    };
                    var h2 = new Strategy_game.Models.Horseman()
                    {
                        OwnerCountry = c2, Counter = 10
                    };
                    var s2 = new Strategy_game.Models.Elite()
                    {
                        OwnerCountry = c2, Counter = 10
                    };
                    var f2 = new Strategy_game.Models.Farm()
                    {
                        OwnerCountry = c2, Counter = 12
                    };
                    var b2 = new Strategy_game.Models.Barrack()
                    {
                        OwnerCountry = c2, Counter = 2
                    };



                    context.Games.Add(g);
                    context.Countries.Add(c);
                    context.Archers.Add(a);
                    context.Horsemans.Add(h);
                    context.Elites.Add(s);
                    context.Farms.Add(f);
                    context.Barracks.Add(b);


                    context.Countries.Add(c2);
                    context.Archers.Add(a2);
                    context.Horsemans.Add(h2);
                    context.Elites.Add(s2);
                    context.Farms.Add(f2);
                    context.Barracks.Add(b2);
                    context.SaveChanges();
                    var ch  = context.Countries.FirstOrDefaultAsync(d => d.CountryName == "zzzz").Result;
                    var ch2 = context.Countries.FirstOrDefaultAsync(d => d.CountryName == "cccc").Result;

                    //var casd = context.Countries.FirstOrDefaultAsync();
                    var p = new Platoon()
                    {
                        Owner   = ch,
                        Archers = new Archer()
                        {
                            Counter = 150
                        },
                        Horsemans = new Horseman()
                        {
                            Counter = 150
                        },
                        Soldiers = new Elite()
                        {
                            Counter = 150
                        },
                        Intent = ch2.CountryId,
                    };
                    context.Platoons.Add(p);
                    Assert.NotEqual(0, ch.CountryId);
                    context.SaveChanges();
                }

                using (var context = new ApplitactionDbContext(options))
                {
                    var service = new StrategyService(context);
                    service.DoOneRound();


                    var p = context.Platoons
                            .Include(pts => pts.Archers)
                            .Include(pts => pts.Horsemans)
                            .Include(pts => pts.Soldiers)
                            .Include(pts => pts.Owner).FirstOrDefaultAsync().Result;



                    //service.DoOneRound();
                    var from = context.Countries.FirstOrDefaultAsync(C => C.CountryName == "zzzz").Result;
                    var to   = context.Countries.FirstOrDefaultAsync(C => C.CountryName == "cccc").Result;

                    var ra = context.Archers.Include(Ra => Ra.OwnerCountry).FirstOrDefaultAsync(C => C.OwnerCountry.CountryName == "cccc").Result;
                    var rh = context.Horsemans.Include(Ra => Ra.OwnerCountry).FirstOrDefaultAsync(C => C.OwnerCountry.CountryName == "cccc").Result;
                    var rs = context.Elites.Include(Ra => Ra.OwnerCountry).FirstOrDefaultAsync(C => C.OwnerCountry.CountryName == "cccc").Result;


                    Assert.Equal(150, to.Gold);
                    Assert.Equal(290, from.Gold);

                    Assert.Equal(1440, from.Potatoes);
                    Assert.Equal(800, to.Potatoes);

                    Assert.Equal(9, ra.Counter);
                    Assert.Equal(9, rh.Counter);
                    Assert.Equal(9, rs.Counter);
                    Assert.Equal(0, p.Intent);
                    Assert.Equal(150, p.Archers.Counter);
                    Assert.Equal(150, p.Horsemans.Counter);
                    Assert.Equal(150, p.Soldiers.Counter);
                }
            }
            finally
            {
                connection.Close();
            }
        }
Пример #19
0
        public void WarUpgrades(int x1, int x2, string upgrade, bool val)
        {
            // In-memory database only exists while the connection is open
            var connection = new SqliteConnection("DataSource=:memory:");

            connection.Open();

            try
            {
                var options = new DbContextOptionsBuilder <ApplitactionDbContext>()
                              .UseSqlite(connection)
                              .Options;
                //var context = new ApplitactionDbContext(options);

                using (var context = new ApplitactionDbContext(options))
                {
                    context.Database.EnsureCreated();
                }

                using (var context = new ApplitactionDbContext(options))
                {
                    var g = new Strategy_game.Models.Game();
                    var c = new Strategy_game.Models.Country()
                    {
                        CountryName = "zzzz"
                    };
                    var a = new Strategy_game.Models.Archer()
                    {
                        OwnerCountry = c, Counter = 2
                    };
                    var h = new Strategy_game.Models.Horseman()
                    {
                        OwnerCountry = c, Counter = 2
                    };
                    var s = new Strategy_game.Models.Elite()
                    {
                        OwnerCountry = c, Counter = 2
                    };
                    var f = new Strategy_game.Models.Farm()
                    {
                        OwnerCountry = c, Counter = 4
                    };
                    var b = new Strategy_game.Models.Barrack()
                    {
                        OwnerCountry = c, Counter = 2
                    };



                    var c2 = new Strategy_game.Models.Country()
                    {
                        CountryName = "cccc"
                    };
                    var a2 = new Strategy_game.Models.Archer()
                    {
                        OwnerCountry = c2, Counter = 2
                    };
                    var h2 = new Strategy_game.Models.Horseman()
                    {
                        OwnerCountry = c2, Counter = 2
                    };
                    var s2 = new Strategy_game.Models.Elite()
                    {
                        OwnerCountry = c2, Counter = 2
                    };
                    var f2 = new Strategy_game.Models.Farm()
                    {
                        OwnerCountry = c2, Counter = 12
                    };
                    var b2 = new Strategy_game.Models.Barrack()
                    {
                        OwnerCountry = c2, Counter = 2
                    };

                    if (upgrade == "wall")
                    {
                        c2.Wall = val;
                    }
                    if (upgrade == "strategy")
                    {
                        c.Commander = val;
                    }
                    if (upgrade == "tacticianDef")
                    {
                        c2.Tactican = val;
                    }
                    if (upgrade == "tacticianAtk")
                    {
                        c.Tactican = val;
                    }
                    if (upgrade == "tactician")
                    {
                        c2.Tactican = val;
                    }

                    context.Games.Add(g);
                    context.Countries.Add(c);
                    context.Archers.Add(a);
                    context.Horsemans.Add(h);
                    context.Elites.Add(s);
                    context.Farms.Add(f);
                    context.Barracks.Add(b);


                    context.Countries.Add(c2);
                    context.Archers.Add(a2);
                    context.Horsemans.Add(h2);
                    context.Elites.Add(s2);
                    context.Farms.Add(f2);
                    context.Barracks.Add(b2);
                    context.SaveChanges();
                    var ch  = context.Countries.FirstOrDefaultAsync(d => d.CountryName == "zzzz").Result;
                    var ch2 = context.Countries.FirstOrDefaultAsync(d => d.CountryName == "cccc").Result;

                    //var casd = context.Countries.FirstOrDefaultAsync();
                    var p = new Platoon()
                    {
                        Owner   = ch,
                        Archers = new Archer()
                        {
                            Counter = 6
                        },
                        Horsemans = new Horseman()
                        {
                            Counter = 6
                        },
                        Soldiers = new Elite()
                        {
                            Counter = 6
                        },
                        Intent = ch2.CountryId,
                    };
                    context.Platoons.Add(p);
                    Assert.NotEqual(0, ch.CountryId);
                    context.SaveChanges();
                }

                using (var context = new ApplitactionDbContext(options))
                {
                    var service = new StrategyService(context);
                    service.DoOneRound();


                    var p = context.Platoons
                            .Include(pts => pts.Archers)
                            .Include(pts => pts.Horsemans)
                            .Include(pts => pts.Soldiers)
                            .Include(pts => pts.Owner).FirstOrDefaultAsync().Result;



                    //service.DoOneRound();
                    var from = context.Countries.FirstOrDefaultAsync(C => C.CountryName == "zzzz").Result;
                    var to   = context.Countries.FirstOrDefaultAsync(C => C.CountryName == "cccc").Result;

                    var ra = context.Archers.Include(Ra => Ra.OwnerCountry).FirstOrDefaultAsync(C => C.OwnerCountry.CountryName == "cccc").Result;
                    var rh = context.Horsemans.Include(Ra => Ra.OwnerCountry).FirstOrDefaultAsync(C => C.OwnerCountry.CountryName == "cccc").Result;
                    var rs = context.Elites.Include(Ra => Ra.OwnerCountry).FirstOrDefaultAsync(C => C.OwnerCountry.CountryName == "cccc").Result;

                    //(300,140,640,10,0,15)
                    Assert.Equal(x1, to.Gold);
                    Assert.Equal(x2, from.Gold);

                    Assert.Equal(0, p.Intent);
                }
            }
            finally
            {
                connection.Close();
            }
        }
Пример #20
0
        public void UpgradeForPotatoes(bool x1, int x2, string x3)
        {
            // In-memory database only exists while the connection is open
            var connection = new SqliteConnection("DataSource=:memory:");

            connection.Open();

            try
            {
                var options = new DbContextOptionsBuilder <ApplitactionDbContext>()
                              .UseSqlite(connection)
                              .Options;
                //var context = new ApplitactionDbContext(options);

                using (var context = new ApplitactionDbContext(options))
                {
                    context.Database.EnsureCreated();
                }

                using (var context = new ApplitactionDbContext(options))
                {
                    var c = new Strategy_game.Models.Country()
                    {
                        CountryName = "zzzz",
                        Potatoes    = 500,
                    };

                    var g = new Strategy_game.Models.Game();

                    if (x3 == "tractor")
                    {
                        c.Tractor = x1;
                    }
                    else
                    {
                        c.Combine = x1;
                    }

                    var a = new Strategy_game.Models.Archer()
                    {
                        OwnerCountry = c, Counter = 2
                    };
                    var h = new Strategy_game.Models.Horseman()
                    {
                        OwnerCountry = c, Counter = 2
                    };
                    var s = new Strategy_game.Models.Elite()
                    {
                        OwnerCountry = c, Counter = 2
                    };
                    var f = new Strategy_game.Models.Farm()
                    {
                        OwnerCountry = c, Counter = 4
                    };
                    var b = new Strategy_game.Models.Barrack()
                    {
                        OwnerCountry = c, Counter = 2
                    };

                    context.Games.Add(g);
                    context.Countries.Add(c);
                    context.Archers.Add(a);
                    context.Horsemans.Add(h);
                    context.Elites.Add(s);
                    context.Farms.Add(f);
                    context.Barracks.Add(b);

                    context.SaveChanges();
                }

                using (var context = new ApplitactionDbContext(options))
                {
                    var service = new StrategyService(context);
                    service.DoOneRound();

                    var from = context.Countries.FirstOrDefaultAsync(C => C.CountryName == "zzzz").Result;



                    Assert.Equal(x2, from.Potatoes);
                }
            }
            finally
            {
                connection.Close();
            }
        }
Пример #21
0
 public CountryController(ApplicationDbContext dbContext, StrategyService service)
 {
     _service = service;
 }