public KnowledgeBaseManager(
     IImplicationRuleManager implicationRuleManager,
     ILinguisticVariableManager linguisticVariableManager,
     IKnowledgeBaseValidator knowledgeBaseValidator,
     ILinguisticVariableRelationsInitializer linguisticVariableRelationsInitializer,
     IValidationOperationResultLogger validationOperationResultLogger)
 {
     _implicationRuleManager    = implicationRuleManager ?? throw new ArgumentNullException(nameof(implicationRuleManager));
     _linguisticVariableManager = linguisticVariableManager ?? throw new ArgumentNullException(nameof(implicationRuleManager));
     _knowledgeBaseValidator    = knowledgeBaseValidator ?? throw new ArgumentNullException(nameof(implicationRuleManager));
     _linguisticVariableRelationsInitializer = linguisticVariableRelationsInitializer ?? throw new ArgumentNullException(nameof(implicationRuleManager));
     _validationOperationResultLogger        = validationOperationResultLogger ?? throw new ArgumentNullException(nameof(implicationRuleManager));
 }
        public void SetUp()
        {
            _implicationRuleManagerMock             = MockRepository.GenerateMock <IImplicationRuleManager>();
            _linguisticVariableManagerMock          = MockRepository.GenerateMock <ILinguisticVariableManager>();
            _knowledgeBaseValidatorMock             = MockRepository.GenerateMock <IKnowledgeBaseValidator>();
            _linguisticVariableRelationsInitializer = MockRepository.GenerateMock <ILinguisticVariableRelationsInitializer>();
            _validationOperationResultLoggerMock    = MockRepository.GenerateMock <IValidationOperationResultLogger>();

            _knowledgeBaseManager = new KnowledgeBaseManager(
                _implicationRuleManagerMock,
                _linguisticVariableManagerMock,
                _knowledgeBaseValidatorMock,
                _linguisticVariableRelationsInitializer,
                _validationOperationResultLoggerMock);
        }