public void IAsAdditionElement_Rewrite()
        {
            var factory = new RuleHandlerSettingsTestFactory();

            string xml = TestDataXmlReader.GetXmlString("AsAdditionRewrite1.xml");

            var additionalSettings = factory.CreateSettings(1, new DateTime(2017, 11, 09), xml);

            xml = TestDataXmlReader.GetXmlString("AsAdditionRewrite2.xml");

            var mainSettings = factory.CreateSettings(1, new DateTime(2017, 11, 09), xml, additionalSettings);

            var handler = new IsAdditionTestHandler()
            {
                Settings = mainSettings
            };

            //mainSettings.RuleContainer.Interpret(handler);

            WorshipRule worshipRule = (mainSettings.RuleContainer as ExecContainer).ChildElements[0] as WorshipRule;

            var kanonasRule = worshipRule.Sequence.GetChildElements <KanonasRule>(mainSettings).FirstOrDefault();

            Assert.IsNotNull(kanonasRule);

            kanonasRule.AfterRules[0].Interpret(handler);

            var result = handler.GetResult();

            Assert.IsNotNull(result.FirstOrDefault(c => c is EktenisRule));
        }
        public void YmnosRule_AllPlaces()
        {
            string xmlRule = TestDataXmlReader.GetXmlString("YmnosRuleTest_AllPlaces.xml");
            string xmlText = TestDataXmlReader.GetXmlString("YmnosRuleTest_AllPlaces_Worship.xml");

            var handler = new IsAdditionTestHandler();

            foreach (PlaceYmnosSource place in Enum.GetValues(typeof(PlaceYmnosSource)))
            {
                var xmlModRule = xmlRule.Replace("[place]", place.ToString());
                handler.Settings = CreateFakeSettings(xmlModRule, xmlText);

                var rule = (handler.Settings.RuleContainer as ExecContainer).ChildElements[0] as KekragariaRule;

                rule.Interpret(handler);

                Assert.AreEqual(1, rule.Structure.YmnosStructureCount, $"Groups. place={place.ToString()}");
                Assert.AreEqual(1, rule.Structure.Doxastichon.Ymnis.Count, $"Doxastichon. place={place.ToString()}");
                Assert.AreEqual(1, rule.Structure.Theotokion[0].Ymnis.Count, $"Theotokion. place={place.ToString()}");
            }
        }
Exemple #3
0
        public void LessDate()
        {
            string xml = TestDataXmlReader.GetXmlString("LessDateTest.xml");

            var settings = new RuleHandlerSettings()
            {
                Date = new DateTime(2017, 02, 08)
            };

            var handler = new IsAdditionTestHandler()
            {
                Settings = settings
            };

            var ruleContainer = TestRuleSerializer.Deserialize <RootContainer>(xml);

            ruleContainer.Interpret(handler);

            var result = handler.GetResult();

            Assert.AreEqual(1, result.Count());
        }
        public void IAsAdditionElement_Append()
        {
            var factory = new RuleHandlerSettingsTestFactory();

            string xml = TestDataXmlReader.GetXmlString("AsAdditionAppend2.xml");

            var additionalSettings = factory.CreateSettings(1, new DateTime(2017, 11, 09), xml);

            xml = TestDataXmlReader.GetXmlString("AsAdditionAppend1.xml");

            var mainSettings = factory.CreateSettings(1, new DateTime(2017, 11, 09), xml, additionalSettings);

            var handler = new IsAdditionTestHandler()
            {
                Settings = mainSettings
            };

            mainSettings.RuleContainer.Interpret(handler);

            var result = handler.GetResult();

            Assert.AreEqual(3, result.Count(c => c is KOdiRule));
        }
        public void IAsAdditionElement_Remove()
        {
            var factory = new RuleHandlerSettingsTestFactory();

            string xml = TestDataXmlReader.GetXmlString("AsAdditionRemove2.xml");

            var additionalSettings = factory.CreateSettings(1, new DateTime(2017, 11, 09), xml);

            xml = TestDataXmlReader.GetXmlString("AsAdditionRemove1.xml");

            var mainSettings = factory.CreateSettings(1, new DateTime(2017, 11, 09), xml, additionalSettings);

            var handler = new IsAdditionTestHandler()
            {
                Settings = mainSettings
            };

            mainSettings.RuleContainer.Interpret(handler);

            var result = handler.GetResult();

            Assert.AreEqual(4, result.Count(c => c is KOdiRule));
            Assert.IsNull(result.FirstOrDefault(c => c is KOdiRule && (c as KOdiRule).Number == 1));
        }