public ComplexStrategy(ILogger logger, IInitialTeamSelectorStrategy initialTeamSelectorStrategy, IPlayerScorePredictor playerScorePredictor, ITeamGameweekSelector teamGameweekSelector, ITransferSelectorStrategy transferSelectorStrategy)
        {
            _logger = logger;
            _initialTeamSelectorStrategy = initialTeamSelectorStrategy;
            _playerScorePredictor = playerScorePredictor;

            _teamGameweekSelector = teamGameweekSelector;
            _transferSelectorStrategy = transferSelectorStrategy;

            _logger.Log(Tag.Strategy, "Using Complex strategy");
        }
        public void SetUp()
        {
            _player = new Player();

            _gameweek = 1;

            _teamStrengthCalculatorMock = new Mock<ITeamStrengthCalculator>();
            _teamStrength = new TeamStrength
                            {
                                TeamStrengthMultiplier
                                    = 1.0
                            };

            _teamStrengthCalculatorMock.Setup(
                x => x.CalculateTeamStrength(It.IsAny<string>(), It.IsAny<IList<Player>>())).Returns(_teamStrength);

            _predictorParametersMock = new Mock<IPredictorParameters>();
            _predictorParametersMock.Setup(x => x.HomeAdvantageMultiplier).Returns(1);

            _allPlayers = new List<Player>();

            _playerformCalculator = new Mock<IPlayerFormCalculator>();

            _playerScorePredictor  = new PlayerScorePredictor(_teamStrengthCalculatorMock.Object, _predictorParametersMock.Object, _playerformCalculator.Object);
        }
 public TeamScorePredictor(ITeamGameweekSelector teamGameweekSelector, ILogger logger, IPlayerScorePredictor playerScorePredictor)
 {
     _teamGameweekSelector = teamGameweekSelector;
     _logger = logger;
     _playerScorePredictor = playerScorePredictor;
 }