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()); }
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); }