public void Dispose()
 {
     _controller = null;
     _mapper     = null;
 }
        public void Init()
        {
            _fakeRuleRepository             = new Mock <IRuleRepository>();
            _fakeRuleTypeRepository         = new Mock <IRuleTypeRepository>();
            _fakeAutopilotRuleRepository    = new Mock <IAutopilotRuleRepository>();
            _fakeFlexibilityLevelRepository = new Mock <IFlexibilityLevelRepository>();
            _ruleTypeId        = 1;
            _unknownRuleTypeId = 99;

            _fixture = new Fixture();

            _mapper = AutoMapperInitializer.Initialize(AutoMapperConfig.SetupAutoMapper);

            var ruleTypes = new List <RuleType>
            {
                new RuleType
                {
                    Id                  = 1,
                    Name                = "RT 1-1",
                    IsCustom            = false,
                    AllowedForAutopilot = true
                },
                new RuleType
                {
                    Id                  = 2,
                    Name                = "RT 2-1",
                    IsCustom            = false,
                    AllowedForAutopilot = false
                },
                new RuleType
                {
                    Id                  = 3,
                    Name                = "RT 3-1",
                    IsCustom            = false,
                    AllowedForAutopilot = true
                }
            };

            _ = _fakeRuleTypeRepository
                .Setup(m => m.GetAll(false))
                .Returns(ruleTypes);

            _ = _fakeRuleTypeRepository
                .Setup(m => m.Get(_ruleTypeId))
                .Returns(ruleTypes.FirstOrDefault(rt => rt.Id == _ruleTypeId));

            _ = _fakeRuleTypeRepository
                .Setup(m => m.GetAll(true))
                .Returns(ruleTypes.Where(rt => rt.AllowedForAutopilot));

            _ = _fakeRuleTypeRepository
                .Setup(m => m.Delete(_ruleTypeId));

            _ = _fakeRuleTypeRepository
                .Setup(m => m.Update(new RuleType
            {
                Id                  = 1,
                Name                = "RT 1-1",
                IsCustom            = false,
                AllowedForAutopilot = true
            }));

            _ = _fakeRuleRepository.Setup(m => m.GetAll()).Returns(
                new List <Rule>
            {
                new Rule
                {
                    Id           = 1,
                    RuleTypeId   = 1,
                    Description  = "R 1-1",
                    InternalType = "internal",
                    Type         = "rule"
                },
                new Rule
                {
                    Id           = 2,
                    RuleTypeId   = 1,
                    Description  = "R 2-1",
                    InternalType = "internal",
                    Type         = "rule"
                }
            }
                );

            _controller = new RuleTypesController(
                _fakeRuleTypeRepository.Object,
                _fakeRuleRepository.Object,
                _fakeAutopilotRuleRepository.Object,
                _fakeFlexibilityLevelRepository.Object,
                _mapper);
        }
 public void Cleanup()
 {
     _controller = null;
     _mapper     = null;
 }