public void ScoreGroups_WithMatchingMultipleGroups_ReturnsScore() { // Arrange var pickedGroups = new List <IPublishedContent>() { MockPublishedContent(1000, PersonalisationGroupDefinitionMatch.All, PersonalisationGroupDefinitionDuration.Page, new List <PersonalisationGroupDefinitionDetail> { TestHelpers.Definitions.MatchingDayOfWeekDefinition(), TestHelpers.Definitions.MatchingTimeOfDayDefinition(), }, 50).Object, MockPublishedContent(1001, PersonalisationGroupDefinitionMatch.Any, PersonalisationGroupDefinitionDuration.Page, new List <PersonalisationGroupDefinitionDetail> { TestHelpers.Definitions.NonMatchingDayOfWeekDefinition(), TestHelpers.Definitions.MatchingDayOfWeekDefinition(), }, 40).Object, }; PersonalisationGroupsConfig.Setup(new PersonalisationGroupsConfig()); // Act var result = UmbracoExtensionsHelper.ScoreGroups(pickedGroups); // Assert Assert.AreEqual(90, result); }
public void MatchGroupsByName_WithNameMatchingMatchingGroups_ReturnsTrue() { // Arrange var groups = new string[] { "Group 1000", "Group 1001" }; var pickedGroups = new List <IPublishedContent>() { MockPublishedContent(1000, PersonalisationGroupDefinitionMatch.All, PersonalisationGroupDefinitionDuration.Page, new List <PersonalisationGroupDefinitionDetail> { TestHelpers.Definitions.MatchingDayOfWeekDefinition(), }).Object, MockPublishedContent(1001, PersonalisationGroupDefinitionMatch.Any, PersonalisationGroupDefinitionDuration.Page, new List <PersonalisationGroupDefinitionDetail> { TestHelpers.Definitions.MatchingTimeOfDayDefinition(), }).Object, }; PersonalisationGroupsConfig.Setup(new PersonalisationGroupsConfig()); // Act var result = UmbracoExtensionsHelper.MatchGroupsByName(groups, pickedGroups, PersonalisationGroupDefinitionMatch.All); // Assert Assert.IsTrue(result); }
/// <summary> /// Scores the content item for the current site visitor, based on the personalisation groups associated with it. /// </summary> /// <param name="pickedGroups">List of IPublishedContent items that are the groups you want to check against.</param> /// <returns>True if content should be shown to visitor</returns> private static int ScoreForVisitor(IList <IPublishedContent> pickedGroups) { if (!pickedGroups.Any()) { // No personalisation groups picked or no property for picker, so we score zero return(0); } return(UmbracoExtensionsHelper.ScoreGroups(pickedGroups)); }
/// <summary> /// Determines if the content item should be shown to the current site visitor, based on the personalisation groups associated with it. /// </summary> /// <param name="pickedGroups">List of IPublishedContent items that are the groups you want to check against.</param> /// <param name="showIfNoGroupsDefined">Indicates the response to return if groups cannot be found on the content</param> /// <returns>True if content should be shown to visitor</returns> private static bool ShowToVisitor(IList <IPublishedContent> pickedGroups, bool showIfNoGroupsDefined = true) { if (!pickedGroups.Any()) { // No personalisation groups picked or no property for picker, so we return the provided default return(showIfNoGroupsDefined); } return(UmbracoExtensionsHelper.MatchGroups(pickedGroups)); }
public void MatchGroups_WithNoGroups_ReturnsFalse() { // Arrange var pickedGroups = new List <IPublishedContent>(); PersonalisationGroupsConfig.Setup(new PersonalisationGroupsConfig()); // Act var result = UmbracoExtensionsHelper.MatchGroups(pickedGroups); // Assert Assert.IsFalse(result); }
public void ScoreGroups_WithPackageDisabled_ReturnsDefaultScore() { // Arrange var pickedGroups = new List <IPublishedContent>(); PersonalisationGroupsConfig.Setup(new PersonalisationGroupsConfig(disablePackage: true)); // Act var result = UmbracoExtensionsHelper.ScoreGroups(pickedGroups); // Assert Assert.AreEqual(0, result); }
public void MatchGroups_WithPackageDisabled_ReturnsTrue() { // Arrange var pickedGroups = new List <IPublishedContent>(); PersonalisationGroupsConfig.Setup(new PersonalisationGroupsConfig(disablePackage: true)); // Act var result = UmbracoExtensionsHelper.MatchGroups(pickedGroups); // Assert Assert.IsTrue(result); }
private static bool MatchesGroups(this UmbracoHelper helper, string[] groupNames, PersonalisationGroupDefinitionMatch matchType) { var groupsRootFolder = GetGroupsRootFolder(helper); if (groupsRootFolder == null) { return(false); } var groups = GetGroups(groupsRootFolder); return(UmbracoExtensionsHelper.MatchGroupsByName(groupNames, groups, matchType)); }
public void MatchGroupsByName_WithPackageDisabledUsingAny_ReturnsTrue() { // Arrange var groups = new string[] { "Group 1000", "Group X" }; var pickedGroups = new List <IPublishedContent>(); PersonalisationGroupsConfig.Setup(new PersonalisationGroupsConfig(disablePackage: true)); // Act var result = UmbracoExtensionsHelper.MatchGroupsByName(groups, pickedGroups, PersonalisationGroupDefinitionMatch.Any); // Assert Assert.IsTrue(result); }
public void MatchGroups_WithNoMatchingGroupsUsingAny_ReturnsFalse() { // Arrange var pickedGroups = new List <IPublishedContent>() { MockPublishedContent(1000, PersonalisationGroupDefinitionMatch.Any, PersonalisationGroupDefinitionDuration.Page, new List <PersonalisationGroupDefinitionDetail> { TestHelpers.Definitions.NonMatchingDayOfWeekDefinition(), TestHelpers.Definitions.NonMatchingDayOfWeekDefinition() }).Object, }; PersonalisationGroupsConfig.Setup(new PersonalisationGroupsConfig()); // Act var result = UmbracoExtensionsHelper.MatchGroups(pickedGroups); // Assert Assert.IsFalse(result); }