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 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()); }
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); }