public void SetsContextItem() { using (var db = new Db() { new DbItem("page1"), new DbItem("page2") }) { var page1 = db.GetItem("/sitecore/content/page1"); var page2 = db.GetItem("/sitecore/content/page2"); var args = new GetLookupSourceItemsArgs() { Item = page1, Source = "./*" }; var ctx = new GetLookupsourceItemsRuleContext(args); var action = new SetQueryContextItemAction <GetLookupsourceItemsRuleContext>() { NewContextItemId = page2.ID.ToString() }; action.Apply(ctx); ctx.Args.Item.ID.Should().Be(page2.ID); } }
public void ReplacesToken() { using (var db = new Db() { new DbItem("Home") { new DbItem("page1"), new DbItem("page2") } }) { var home = db.GetItem("/sitecore/content/home"); var page1 = db.GetItem("/sitecore/content/home/page1"); var page2 = db.GetItem("/sitecore/content/home/page2"); var args = new GetLookupSourceItemsArgs() { Item = page1, Source = "{ThisPage}/afolder" }; var ctx = new GetLookupsourceItemsRuleContext(args); var action = new ReplaceTokenWithItemPathAction <GetLookupsourceItemsRuleContext>() { Token = "ThisPage", NewItemId = page2.ID.ToString() }; action.Apply(ctx); ctx.Args.Source.Should().BeEquivalentTo("/sitecore/content/home/page2/afolder"); } }
public void MatchesToken() { using (var db = new Db() { new DbItem("page1"), new DbItem("page2") }) { var page1 = db.GetItem("/sitecore/content/page1"); var page2 = db.GetItem("/sitecore/content/page2"); var args = new GetLookupSourceItemsArgs() { Item = page1, Source = "{Home}/page1" }; var context = new GetLookupsourceItemsRuleContext(args); var condition = new QueryContainsTokenCondition <GetLookupsourceItemsRuleContext>() { Token = "Home" }; var ruleStack = new RuleStack(); condition.Evaluate(context, ruleStack); ruleStack.Should().HaveCount(1); ruleStack.Pop().Should().Be(true); } }
public void AbortsRuleProcessing() { using (var db = new Db() { new DbItem("page1"), new DbItem("page2") }) { var page1 = db.GetItem("/sitecore/content/page1"); var page2 = db.GetItem("/sitecore/content/page2"); var args = new GetLookupSourceItemsArgs() { Item = page1, Source = "./*" }; var ctx = new GetLookupsourceItemsRuleContext(args); var action = new ForceQueryResultAction <GetLookupsourceItemsRuleContext>() { ResultItemId = page2.ID.ToString() }; action.Apply(ctx); ctx.IsAborted.Should().BeTrue(); } }
public void DetectsItemFieldTokenWithoutFieldName() { using (var db = new Db() { new DbItem("page1"), new DbItem("page2") }) { var page1 = db.GetItem("/sitecore/content/page1"); var args = new GetLookupSourceItemsArgs() { Item = page1, Source = "{ItemField:FullName}" }; var context = new GetLookupsourceItemsRuleContext(args); var condition = new QueryContainsTokenCondition <GetLookupsourceItemsRuleContext>() { Token = "ItemField" }; var ruleStack = new RuleStack(); condition.Evaluate(context, ruleStack); ruleStack.Should().HaveCount(1); ruleStack.Pop().Should().Be(true); } }
public void ReturnsFalseForNullQuery() { using (var db = new Db() { new DbItem("page1"), new DbItem("page2") }) { var page1 = db.GetItem("/sitecore/content/page1"); var args = new GetLookupSourceItemsArgs() { Item = page1 }; var context = new GetLookupsourceItemsRuleContext(args); var condition = new QueryContainsTokenCondition <GetLookupsourceItemsRuleContext>() { Token = "ItemField" }; var ruleStack = new RuleStack(); condition.Evaluate(context, ruleStack); ruleStack.Should().HaveCount(1); ruleStack.Pop().Should().Be(false); } }
public void SetsResult() { using (var db = GetFakeDb()) { var page = db.GetItem("/sitecore/content/page"); var context = new GetLookupsourceItemsRuleContext(new GetLookupSourceItemsArgs() { Item = page }); var action = new ForceQueryResultAction <GetLookupsourceItemsRuleContext>() { ResultItemId = page.ID.ToString() }; action.Apply(context); context.Args.Result.Count.Should().Be(1); context.Args.Result[0].ID.Should().Be(page.ID); } }
public void AbortsRulesExecution() { using (var db = GetFakeDb()) { var page = db.GetItem("/sitecore/content/page"); var page2 = db.GetItem("/sitecore/content/page2"); var context = new GetLookupsourceItemsRuleContext(new GetLookupSourceItemsArgs() { Item = page, Result = { page2 } }); var action = new ForceQueryResultAction <GetLookupsourceItemsRuleContext>() { ResultItemId = page.ID.ToString() }; action.Apply(context); context.IsAborted.Should().BeTrue(); } }