Пример #1
0
        public void TestScenarioCreationFromAction()
        {
            var provider = new Mock <IWebDriverProvider>();
            var factory  = new ScenarioFactory(provider.Object);
            var action   = new TrainArmyAction
            {
                UnitsToTrain = new Dictionary <string, int> {
                    { "test", 1 }
                }
            };

            var scenario = factory.GetScenario(action);

            Assert.NotNull(scenario);
            Assert.AreEqual(typeof(TrainArmyScenario), scenario.GetType());

            var buildAction = new BuildAction
            {
                BuildingId = "testBuilding"
            };

            var buildScenario = factory.GetScenario(buildAction);

            Assert.NotNull(buildScenario);
            Assert.AreEqual(typeof(BuildScenario), buildScenario.GetType());
        }
Пример #2
0
        private async Task <TrainArmyAction> CreateActionsForTroops(VillageModel village, TTB.DAL.Models.GameModels.Enums.Tribe tribe, GameActionType actionType)
        {
            var units = new List <UnitModel>();

            if (village.PreferableUnits != null)
            {
                var searchTasks = new List <Task <UnitModel> >();
                foreach (var pref in village.PreferableUnits)
                {
                    searchTasks.Add(_unitRepository.GetUnit(pref, tribe));
                }

                units = (await Task.WhenAll(searchTasks)).ToList();
            }
            else
            {
                var createOffenceTroops = village.Types?.Contains(VillageType.OFFENCE);
                var unitsToCreate       = createOffenceTroops.HasValue && createOffenceTroops.Value || village.IsCapital && !createOffenceTroops.HasValue
                    ? await _unitRepository.GetOffenceUnits(tribe)
                    : await _unitRepository.GetDeffenceUnits(tribe);

                units = unitsToCreate.ToList();
            }
            var action = new TrainArmyAction
            {
                Action       = actionType,
                Village      = _mapper.Map <Village>(village),
                UnitsToTrain = units.ToDictionary(x => x.LocalizedNameRu, x => (int)TrainArmyFlag.MAX)
            };

            return(action);
        }