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