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));
        }
Exemplo n.º 2
0
        public void Variables_Test()
        {
            DateTime date = new DateTime(2017, 11, 09);
            string   xml  = TestDataXmlReader.GetXmlString("VariablesTest.xml");

            var handler = new CollectorRuleHandler <IHavingVariables>()
            {
                Settings = RuleHandlerSettingsTestFactory.Create(1, date, xml)
            };

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

            ruleContainer.Interpret(handler);

            var result = handler.GetResult();

            var variables = new List <string>();

            foreach (var r in result)
            {
                variables.AddRange(r.GetVariableNames().Select(c => c.Item1));
            }

            variables = variables.Distinct().ToList();

            Assert.AreEqual(2, variables.Count);
        }
        public void YmnosStructureRule_FromRealDB()
        {
            DateTime date = new DateTime(2017, 11, 09);
            string   xml  = TestDataXmlReader.GetXmlString("YmnosStructureRuleTest.xml");

            ServiceSequenceHandler handler = new ServiceSequenceHandler()
            {
                Settings = RuleHandlerSettingsTestFactory.Create(1, date, xml)
            };

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

            ruleContainer.Interpret(handler);

            Assert.AreEqual(3, ruleContainer.Structure.YmnosStructureCount);
            Assert.Pass(ruleContainer.Structure.YmnosStructureCount.ToString());
        }
Exemplo n.º 4
0
        public void KanonasRule_FromDB()
        {
            DateTime date = new DateTime(2017, 11, 11);
            string   xml  = TestDataXmlReader.GetXmlString("KanonasRuleTest.xml");

            ServiceSequenceHandler handler = new ServiceSequenceHandler()
            {
                Settings = RuleHandlerSettingsTestFactory.Create(1, date, xml)
            };

            handler.ClearResult();
            KanonasRule kanonasRule = TestRuleSerializer.Deserialize <KanonasRule>(xml);

            kanonasRule.Interpret(handler);

            Assert.AreEqual(4, kanonasRule.Odes[0].Kanones.Count());
        }
        public void YmnosCutomRule_InStructureTheotokion()
        {
            string xml = TestDataXmlReader.GetXmlString("YmnosCutomRuleTest_InStructureTheotokion.xml");

            var settings = new RuleHandlerSettingsTestFactory().CreateSettings(1, new DateTime(2017, 11, 09), xml);

            var mockFactory = new Mock <IRuleHandler>();

            mockFactory.Setup(c => c.Execute((It.IsAny <ICustomInterpreted>())));
            mockFactory.Setup(c => c.IsTypeAuthorized(It.IsAny <ICustomInterpreted>())).Returns(true);
            mockFactory.SetupProperty(c => c.Settings, settings);

            KekragariaRule element = TestRuleSerializer.Deserialize <KekragariaRule>(xml);

            element.Interpret(mockFactory.Object);

            Assert.AreEqual(1, element.Structure.Theotokion[0].Ymnis.Count);
        }
        public void TheotokionRule_FromRealDB()
        {
            var factory = new RuleHandlerSettingsTestFactory();

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

            var settings = factory.CreateSettings(1, new DateTime(2017, 01, 16), xml);

            //Дата --01-16 exists - false
            var handler = new ServiceSequenceHandler()
            {
                Settings = settings
            };

            KekragariaRule rule = (settings.RuleContainer as ExecContainer).ChildElements[0] as KekragariaRule;

            rule.Interpret(handler);

            Assert.AreEqual(3, rule.Structure.YmnosStructureCount);
            Assert.AreEqual(1, rule.Structure.Theotokion[0].Ymnis.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));
        }
        public void ViewModelSerialization_Deserialize()
        {
            var factory = new RuleHandlerSettingsTestFactory();

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

            var settings = factory.CreateSettings(1, new DateTime(2017, 11, 13), xml);

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

            settings.RuleContainer.Interpret(handler);

            var viewModel = handler.ActualWorshipChildElements;

            var serializer = new TypiconSerializer();

            var result = serializer.Serialize(viewModel);

            Assert.IsNotEmpty(result);
            Assert.Pass(result);
        }