Exemple #1
0
        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);
            }
        }
Exemple #2
0
        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);
     }
 }
Exemple #4
0
        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);
            }
        }
Exemple #5
0
        private void RunReplaceRenderingRules(RenderingDefinition sourceRendering, Item targetRenderingItem, DeviceDefinition device)
        {
            var context = new ReplaceRenderingRuleContext(sourceRendering, targetRenderingItem, device);

            _rulesRunner.RunGlobalRules("Replace Rendering", targetRenderingItem.Database, context);
        }