protected override void Establish_context()
        {
            base.Establish_context();

            _kernel = new StandardKernel(new IntegrationTestModule());
            _jsonSerializer = _kernel.Get<IJsonSerializer>();
            _jsonInputLoader = _kernel.Get<IJsonInputLoader>();
            _dataAccess = _kernel.Get<IDataAccess>(new ConstructorArgument("jsonInputLoader", _jsonInputLoader), new ConstructorArgument("jsonSerializer", _jsonSerializer));
            _shiftRuleFactory = _kernel.Get<IShiftRuleFactory>(new ConstructorArgument("dataAccess", _dataAccess));
            _shiftScheduleValidator = _kernel.Get<IShiftScheduleValidator>(new ConstructorArgument("shiftRuleFactory", _shiftRuleFactory));
        }
        protected override void Establish_context()
        {
            base.Establish_context();

            _ruleDefinitions = CreateMockedRulesDefinitions();
            _ruleValues = CreateMockedRulesValues();
            _timeOffRequests = MockTimeOffRequests();

            _dataAccess = new Mock<IDataAccess>();
            _dataAccess.Setup(x => x.GetRuleDefinition(It.IsAny<int>())).Returns((int x) => { return MockShiftRuleDefinition(x); });
            _dataAccess.Setup(x => x.GetShiftRulesValues()).Returns(_ruleValues);
            _dataAccess.Setup(x => x.GetTimeOffRequests()).Returns(_timeOffRequests);

            _shiftRuleFactory = new ShiftRuleFactory(_dataAccess.Object);
        }
 public SchedulingAlgorithmFactory(IShiftScheduleValidator scheduleValidator, IShiftRuleFactory shiftRuleFactory)
 {
     this.ScheduleValidator = scheduleValidator;
     this.ShiftRuleFactory = shiftRuleFactory;
 }
 public ShiftScheduleValidator(IShiftRuleFactory shiftRuleFactory)
 {
     this.ShiftRuleFactory = shiftRuleFactory;
 }