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);
        }
Exemple #2
0
        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);
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        [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);
        }
Exemple #6
0
        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);
            }
        }
Exemple #7
0
        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));
 }