示例#1
0
        private static IEnumerable <TestCaseData> GenerateRulesApplierCases()
        {
            var noUnpackRules  = RulesGenerator.GenerateValidRules(false);
            var noUnpackRights = noUnpackRules
                                 .Select(rule => new Rights(rule.PlatformAccesses, rule.ProductAccesses))
                                 .ToList();
            var withUnpackRules  = RulesGenerator.GenerateValidRules(true);
            var withExtraProduct = RulesGenerator.GenerateValidRules(false);

            withExtraProduct[0].ProductAccesses[Platform.Support].Add("Unknown", Role.RoleII);
            var specifiedRoleAndAllFlag = RulesGenerator.GenerateValidRules(true);

            specifiedRoleAndAllFlag[0].ProductAccesses[Platform.Support]["Product1"] = Role.Admin;
            var rightsForSpecifiedRole = GetRightWithAllFlag();

            rightsForSpecifiedRole[0].ProductAccesses[Platform.Support]["Product1"] = Role.Admin;

            yield return(new TestCaseData(new List <Rule>(), new List <Rights>())
                         .SetName("Нет правил для применения. Возвращает пустой лист"));

            yield return(new TestCaseData(noUnpackRules, noUnpackRights)
                         .SetName("Нет флага All. Успех"));

            yield return(new TestCaseData(withExtraProduct, noUnpackRights)
                         .SetName("Продукт, которого нет в списке. Игнорирует этот продукт"));

            yield return(new TestCaseData(withUnpackRules, GetRightWithAllFlag())
                         .SetName("Есть флаг All. Успех"));

            yield return(new TestCaseData(specifiedRoleAndAllFlag, rightsForSpecifiedRole)
                         .SetName("Роль, указанная в All, имеет наименьший приоретет"));
        }
        public void TestRulesValidatorOnValidRules(bool allProductsFlag)
        {
            var validRules = RulesGenerator.GenerateValidRules(allProductsFlag);

            foreach (var rule in validRules)
            {
                validator.IsValid(rule).Should().BeTrue();
            }
        }
        private static IEnumerable <TestCaseData> GenerateRulesReaderSuccesses()
        {
            var currentDirectory    = System.AppDomain.CurrentDomain.BaseDirectory;
            var rulesDirectory      = Path.Combine(currentDirectory, "Rules");
            var validRulesDirectory = Path.Combine(rulesDirectory, "Valid");
            var testRules           = RulesGenerator.GenerateValidRules(true);
            var multipleRules       = RulesGenerator.GenerateMultipleRules();

            yield return(new TestCaseData(
                             Path.Combine(validRulesDirectory, "TestRules.xml"),
                             testRules
                             ).SetName("Корректный файл. Успех"));

            yield return(new TestCaseData(
                             Path.Combine(validRulesDirectory, "MultipleRules.xml"),
                             multipleRules
                             ).SetName("Множественные правила в одном файле. Успех"));

            yield return(new TestCaseData(
                             validRulesDirectory,
                             testRules.Concat(multipleRules).ToList()
                             ).SetName("Чтение всех правил в директории. Успех"));
        }