public void Date() { var unixTime = UnixTime.Get(); CreateNotEqualsCondition(AttributeType.Date, unixTime.ToString()); var attributes = new[] { UnlaunchAttribute.NewDate(AttributeKey, UnixTime.GetUtcDateTime(unixTime).AddDays(-1)) }; OnVariationTargetingRulesMatch(attributes); }
public void Date_userValue_is_greater_unixTime() { var unixTime = UnixTime.Get(); CreateGreaterThanCondition(AttributeType.Date, unixTime.ToString()); var attributes = new[] { UnlaunchAttribute.NewDate(AttributeKey, UnixTime.GetUtcDateTime(unixTime).AddDays(1)) }; OnVariationTargetingRulesMatch(attributes); }
public void DateTime_userValue_is_one_second_behind() { var unixTime = UnixTime.Get(); CreateNotEqualsCondition(AttributeType.DateTime, unixTime.ToString()); var attributes = new[] { UnlaunchAttribute.NewDateTime(AttributeKey, UnixTime.GetUtcDateTime(unixTime - 1000)) }; OnVariationTargetingRulesMatch(attributes); }
public void DateTime_userValue_is_less() { var unixTime = UnixTime.Get(); CreateGreaterThanCondition(AttributeType.DateTime, unixTime.ToString()); var attributes = new[] { UnlaunchAttribute.NewDateTime(AttributeKey, UnixTime.GetUtcDateTime(unixTime - 1000)) }; OffVariationTargetingRulesNotMatch(attributes); }
[Fact] public void Date_userValue_is_the_same_unixTime() { var unixTime = UnixTime.Get(); CreateGteCondition(AttributeType.Date, unixTime.ToString()); var attributes = new[] { UnlaunchAttribute.NewDate(AttributeKey, UnixTime.GetUtcDateTime(unixTime)) }; OnVariationTargetingRulesMatch(attributes); }
private static bool Equals(string value, IUnlaunchValue userValue, AttributeType type) { switch (type) { case AttributeType.DateTime: { var userDateTime = (DateTime)userValue.Get(); return(UnixTime.Get(userDateTime) == long.Parse(value)); } case AttributeType.Date: { var userDateTime = (DateTime)userValue.Get(); return(userDateTime.Date == UnixTime.GetUtcDateTime(long.Parse(value)).Date); } case AttributeType.Set: { var userSet = (ISet <string>)userValue.Get(); return(userSet.SetEquals(value.Split(','))); } case AttributeType.Number: { var userNumber = (double)userValue.Get(); // ReSharper disable once CompareOfFloatsByEqualityOperator return(userNumber == double.Parse(value)); } case AttributeType.Boolean: { var userBoolean = (bool)userValue.Get(); return(userBoolean == (value.ToLower() == "true")); } default: return((string)userValue.Get() == value); } }
private static bool GreaterThanOrEqual(string value, IUnlaunchValue userValue, AttributeType type) { if (type == AttributeType.DateTime) { var userDateTime = (DateTime)userValue.Get(); return(userDateTime >= UnixTime.GetUtcDateTime(long.Parse(value))); } if (type == AttributeType.Date) { var userDateTime = (DateTime)userValue.Get(); return(userDateTime.Date >= UnixTime.GetUtcDateTime(long.Parse(value)).Date); } if (type != AttributeType.Number) { return(false); } var userNumber = (double)userValue.Get(); return(userNumber >= double.Parse(value)); }
public static UnlaunchAttribute NewDate(string key, long millisecondsSinceEpoch) { return(Create(key, UnixTime.GetUtcDateTime(millisecondsSinceEpoch).Date)); }