public void DefaultConstructorUsesAllStrategiesByDefaultThrowsException()
        {
            // Arrange
            var cooperationStrategyRepository = new CooperationStrategyRepository();

            // Act
            var cooperationStrategiesFitnessEvaluator = new CooperationStrategiesFitnessEvaluator();

            // Assert
            Assert.True(cooperationStrategiesFitnessEvaluator.CooperationStrategies.SequenceEqual(cooperationStrategyRepository.GetAll()));
        }
        public void ConstructorWithCooperationStrategiesRepositorySetsCooperationStrategiesToValueReturnedByRepository()
        {
            // Arrange
            var cooperationStrategyRepository = new CooperationStrategyRepository();

            // Act
            var cooperationStrategiesFitnessEvaluator = new CooperationStrategiesFitnessEvaluator(cooperationStrategyRepository);

            // Assert
            Assert.True(cooperationStrategiesFitnessEvaluator.CooperationStrategies.SequenceEqual(cooperationStrategyRepository.GetAll()));
        }
        public void GetAllReturnsAllStrategies()
        {
            // Arrange:
            var cooperationStrategyRepository = new CooperationStrategyRepository();

            // Act:
            var strategies = cooperationStrategyRepository.GetAll();

            // Assert
            var allStrategies = new List<CooperationStrategy>
                                    {
                                        new NaiveCooperationStrategy(),
                                        new EvilCooperationStrategy(),
                                        new TitForTatCooperationStrategy(),
                                    };
            Assert.True(allStrategies.SequenceEqual(strategies));
        }