public void MatchesTargetId() { var sourceRenderingId = ID.NewID; var targetRenderingId = ID.NewID; using (var db = new Db { new DbItem("rendering", targetRenderingId) }) { var targetRenderingItem = db.GetItem(targetRenderingId); var context = new ReplaceRenderingRuleContext(new RenderingDefinition() { ItemID = sourceRenderingId.ToString() }, targetRenderingItem, new DeviceDefinition()); var condition = new TargetRenderingIsAnyOfCondition <ReplaceRenderingRuleContext> { CompareRenderingItemIds = targetRenderingId.ToString() }; var ruleStack = new RuleStack(); condition.Evaluate(context, ruleStack); ruleStack.Should().HaveCount(1); ruleStack.Pop().Should().Be(true); } }
public void FailsButDoesNotErrorWhenCompareIdNotSet() { var sourceRenderingId = ID.NewID; var targetRenderingId = ID.NewID; using (var db = new Db { new DbItem("rendering", targetRenderingId) }) { var targetRenderingItem = db.GetItem(targetRenderingId); var context = new ReplaceRenderingRuleContext(new RenderingDefinition() { ItemID = sourceRenderingId.ToString() }, targetRenderingItem, new DeviceDefinition()); var condition = new TargetRenderingIsAnyOfCondition <ReplaceRenderingRuleContext>(); var ruleStack = new RuleStack(); condition.Evaluate(context, ruleStack); ruleStack.Should().HaveCount(1); ruleStack.Pop().Should().Be(false); } }
private void RunReplaceRenderingRules(RenderingDefinition sourceRendering, Item targetRenderingItem, DeviceDefinition device) { using (new TraceOperation("Run replace rendering rules")) { var context = new ReplaceRenderingRuleContext(sourceRendering, targetRenderingItem, device); _rulesRunner.RunGlobalRules(RuleIDs.ReplaceRenderingGlobalRulesRootId, targetRenderingItem.Database, context); } }
public void Moves4Renderings() { DeviceDefinition device; RenderingDefinition sourceRendering; Item targetRenderingItem; using (var db = GetDatabase(out sourceRendering, out targetRenderingItem, out device)) { var ctx = new ReplaceRenderingRuleContext(sourceRendering, targetRenderingItem, device); var action = new MoveRenderingsToNewPlaceholderAction <ReplaceRenderingRuleContext>() { SourcePlaceholderKey = _placeholderKeyWith4Renderings, TargetPlaceholderKey = _placeholderKeyWith0Renderings }; action.Apply(ctx); ctx.Device.Renderings.Cast <RenderingDefinition>().Where(x => MatchesPlaceholderKey(x.Placeholder, _placeholderKeyWith4Renderings)).Should().BeEmpty(); ctx.Device.Renderings.Cast <RenderingDefinition>().Where(x => MatchesPlaceholderKey(x.Placeholder, _placeholderKeyWith0Renderings)).Should().HaveCount(4); } }
private void RunReplaceRenderingRules(RenderingDefinition sourceRendering, Item targetRenderingItem, DeviceDefinition device) { var context = new ReplaceRenderingRuleContext(sourceRendering, targetRenderingItem, device); _rulesRunner.RunGlobalRules("Replace Rendering", targetRenderingItem.Database, context); }