private static Mock <IPublishedContent> MockPublishedContent(int id, PersonalisationGroupDefinitionMatch match, PersonalisationGroupDefinitionDuration duration, IEnumerable <PersonalisationGroupDefinitionDetail> definitionDetails, int score = 0) { var definitionPropertyMock = new Mock <IPublishedProperty>(); definitionPropertyMock.Setup(c => c.PropertyTypeAlias).Returns("definition"); definitionPropertyMock.Setup(c => c.Value).Returns(new PersonalisationGroupDefinition { Match = match, Duration = duration, Details = definitionDetails, Score = score }); var contentMock = new Mock <IPublishedContent>(); contentMock.Setup(c => c.Id).Returns(id); contentMock.Setup(c => c.Name).Returns("Group " + id); contentMock.Setup(c => c.GetProperty(It.Is <string>(x => x == "definition"), It.IsAny <bool>())).Returns(definitionPropertyMock.Object); return(contentMock); }
/// <summary> /// Retrieves the cookie key to use for the matched groups /// </summary> /// <param name="duration"></param> /// <returns>Cookie key to use</returns> private static string GetCookieKeyForMatchedGroups(PersonalisationGroupDefinitionDuration duration) { string defaultKey, appSettingKey; switch (duration) { case PersonalisationGroupDefinitionDuration.Session: defaultKey = "sessionMatchedGroups"; appSettingKey = AppConstants.ConfigKeys.CookieKeyForSessionMatchedGroups; break; case PersonalisationGroupDefinitionDuration.Visitor: defaultKey = "persistentMatchedGroups"; appSettingKey = AppConstants.ConfigKeys.CookieKeyForPersistentMatchedGroups; break; default: throw new InvalidOperationException("Only session and visitor personalisation groups can be tracked."); } // First check if key defined in config var cookieKey = ConfigurationManager.AppSettings[appSettingKey]; if (string.IsNullOrEmpty(cookieKey)) { // If not, use the convention key cookieKey = defaultKey; } return(cookieKey); }
/// <summary> /// Retrieves the cookie key to use for the matched groups /// </summary> /// <param name="duration">Match group duration</param> /// <returns>Cookie key to use</returns> private string GetCookieKeyForMatchedGroups(PersonalisationGroupDefinitionDuration duration) { switch (duration) { case PersonalisationGroupDefinitionDuration.Session: return(_config.CookieKeyForSessionMatchedGroups); case PersonalisationGroupDefinitionDuration.Visitor: return(_config.CookieKeyForPersistentMatchedGroups); default: throw new InvalidOperationException("Only session and visitor personalisation groups can be tracked."); } }