Example #1
0
        public void Test_Good_Date_Descriptor_With_Features(int index, string name, DateTimeFeature feature)
        {
            var desc = Descriptor.Create <FakeDate>();

            Assert.AreEqual(name, desc.Features[index].Name);
            Assert.AreEqual(new DateTimeProperty(feature).Features, ((DateTimeProperty)desc.Features[index]).Features);
        }
Example #2
0
        public void Test_Good_Date_Descriptor_With_Features_Fluent()
        {
            DateTimeFeature portion = DateTimeFeature.Month | DateTimeFeature.Year | DateTimeFeature.Second | DateTimeFeature.Hour;
            var             d       = Descriptor.For <FakeDate>()
                                      .WithDateTime(f => f.Date1, portion);

            Assert.AreEqual("Date1", d.Features[0].Name);
            Assert.AreEqual(new DateTimeProperty(portion).Features, ((DateTimeProperty)d.Features[0]).Features);
        }
        public void Feature_CommandGreaterThanNowByYear_IsEnabled_ReturnsFalse()
        {
            var jsonSettings = GetJsonSettings(EnvironmentEnum.LOCAL, PlatformEnum.Web);
            var feature      = new DateTimeFeature(jsonSettings);

            feature.Command = DateTime.UtcNow.AddYears(1).Date.ToString();

            Assert.IsFalse(feature.IsEnabled());
        }
        public void Feature_CommandEqualToNow_IsEnabled_ReturnsTrue()
        {
            var jsonSettings = GetJsonSettings(EnvironmentEnum.LOCAL, PlatformEnum.Web);
            var feature      = new DateTimeFeature(jsonSettings);

            feature.Command = DateTime.UtcNow.ToString();

            Assert.IsTrue(feature.IsEnabled());
        }
Example #5
0
        /// <summary>
        ///   Gets DateTimeFeature enum from enumerated
        ///   values
        /// </summary>
        /// <param name="features">string collection of enum values</param>
        /// <returns>DateTimeFeatures</returns>
        public static DateTimeFeature GetFeatures(string[] features)
        {
            DateTimeFeature feature = 0;

            for (var i = 0; i < features.Length; i++)
            {
                feature |= (DateTimeFeature)Enum.Parse(typeof(DateTimeFeature), features[i]);
            }
            return(feature);
        }
Example #6
0
        /// <summary>Adds DateTime property to descriptor with previously chained name.</summary>
        /// <exception cref="DescriptorException">Thrown when a Descriptor error condition occurs.</exception>
        /// <param name="features">
        ///     Which date features to use (can pipe: DateTimeFeature.Year |
        ///     DateTimeFeature.DayOfWeek)
        /// </param>
        /// <returns>descriptor with added property.</returns>
        public Descriptor AsDateTime(DateTimeFeature features)
        {
            if (this._label)
            {
                throw new DescriptorException("Cannot use a DateTime property as a label");
            }

            var p = new DateTimeProperty(features)
            {
                Discrete = true, Name = this._name
            };

            this.AddProperty(p);
            return(this._descriptor);
        }
Example #7
0
        /// <summary>
        ///   Retrieve the list of expanded columns. If there is a one-to-one correspondence between the
        ///   type and its expansion it will return a single value/.
        /// </summary>
        /// <param name="features">Features</param>
        /// <returns></returns>
        public static IEnumerable <string> GetColumns(DateTimeFeature features)
        {
            Func <DateTimeFeature, string> c = d => Enum.GetName(typeof(DateTimeFeature), d);

            if (features.HasFlag(DateTimeFeature.Year))
            {
                yield return(c(DateTimeFeature.Year));
            }
            if (features.HasFlag(DateTimeFeature.DayOfYear))
            {
                yield return("DayOfYear");
            }
            if (features.HasFlag(DateTimeFeature.Month))
            {
                yield return("Month");
            }
            if (features.HasFlag(DateTimeFeature.Day))
            {
                yield return("Day");
            }
            if (features.HasFlag(DateTimeFeature.DayOfWeek))
            {
                yield return("DayOfWeek");
            }
            if (features.HasFlag(DateTimeFeature.Hour))
            {
                yield return("Hour");
            }
            if (features.HasFlag(DateTimeFeature.Minute))
            {
                yield return("Minute");
            }
            if (features.HasFlag(DateTimeFeature.Second))
            {
                yield return("Second");
            }
            if (features.HasFlag(DateTimeFeature.Millisecond))
            {
                yield return("Millisecond");
            }
        }
Example #8
0
 /// <summary>
 /// Retrieve the list of expanded columns. If there is a one-to-one correspondence between the
 /// type and its expansion it will return a single value/.
 /// </summary>
 /// <param name="features">Features</param>
 /// <returns></returns>
 public static IEnumerable <string> GetColumns(DateTimeFeature features)
 {
     if (features.HasFlag(DateTimeFeature.Year))
     {
         yield return(nameof(DateTimeFeature.Year));
     }
     if (features.HasFlag(DateTimeFeature.DayOfYear))
     {
         yield return(nameof(DateTimeFeature.DayOfYear));
     }
     if (features.HasFlag(DateTimeFeature.Month))
     {
         yield return(nameof(DateTimeFeature.Month));
     }
     if (features.HasFlag(DateTimeFeature.Day))
     {
         yield return(nameof(DateTimeFeature.Day));
     }
     if (features.HasFlag(DateTimeFeature.DayOfWeek))
     {
         yield return(nameof(DateTimeFeature.DayOfWeek));
     }
     if (features.HasFlag(DateTimeFeature.Hour))
     {
         yield return(nameof(DateTimeFeature.Hour));
     }
     if (features.HasFlag(DateTimeFeature.Minute))
     {
         yield return(nameof(DateTimeFeature.Minute));
     }
     if (features.HasFlag(DateTimeFeature.Second))
     {
         yield return(nameof(DateTimeFeature.Second));
     }
     if (features.HasFlag(DateTimeFeature.Millisecond))
     {
         yield return(nameof(DateTimeFeature.Millisecond));
     }
 }
Example #9
0
 /// <summary>Constructor.</summary>
 /// <param name="features">The features.</param>
 public DateFeatureAttribute(DateTimeFeature features)
 {
     dp = new DateTimeProperty(features);
 }
Example #10
0
 public void Test_Good_Date_Descriptor_With_Features(int index, string name, DateTimeFeature feature)
 {
     var desc = Descriptor.Create<FakeDate>();
     Assert.AreEqual(name, desc.Features[index].Name);
     Assert.AreEqual(new DateTimeProperty(feature).Features, ((DateTimeProperty)desc.Features[index]).Features);
 }
Example #11
0
        /// <summary>Adds DateTime property to descriptor with previously chained name.</summary>
        /// <exception cref="DescriptorException">Thrown when a Descriptor error condition occurs.</exception>
        /// <param name="features">Which date features to use (can pipe: DateTimeFeature.Year |
        /// DateTimeFeature.DayOfWeek)</param>
        /// <returns>descriptor with added property.</returns>
        public Descriptor AsDateTime(DateTimeFeature features)
        {
            if (_label)
                throw new DescriptorException("Cannot use a DateTime property as a label");

            var p = new DateTimeProperty(features)
            {
                Discrete = true,
                Name = _name
            };

            AddProperty(p);
            return _descriptor;
        }
Example #12
0
 public DateFeatureAttribute(DateTimeFeature features)
 {
     dp = new DateTimeProperty(features);
 }
Example #13
0
 /// <summary>Constructor.</summary>
 /// <param name="features">The features.</param>
 public DateTimeProperty(DateTimeFeature features)
 {
     Type     = typeof(DateTime);
     Features = features;
 }
Example #14
0
 /// <summary>
 /// Retrieve the list of expanded columns. If there is a one-to-one correspondence between the
 /// type and its expansion it will return a single value/.
 /// </summary>
 /// <param name="features">Features</param>
 /// <returns></returns>
 public static IEnumerable<string> GetColumns(DateTimeFeature features)
 {
     Func<DateTimeFeature, string> c = d => Enum.GetName(typeof(DateTimeFeature), d);
     if (features.HasFlag(DateTimeFeature.Year))
         yield return c(DateTimeFeature.Year);
     if (features.HasFlag(DateTimeFeature.DayOfYear))
         yield return "DayOfYear";
     if (features.HasFlag(DateTimeFeature.Month))
         yield return "Month";
     if (features.HasFlag(DateTimeFeature.Day))
         yield return "Day";
     if (features.HasFlag(DateTimeFeature.DayOfWeek))
         yield return "DayOfWeek";
     if (features.HasFlag(DateTimeFeature.Hour))
         yield return "Hour";
     if (features.HasFlag(DateTimeFeature.Minute))
         yield return "Minute";
     if (features.HasFlag(DateTimeFeature.Second))
         yield return "Second";
     if (features.HasFlag(DateTimeFeature.Millisecond))
         yield return "Millisecond";
 }
Example #15
0
 /// <summary>Constructor.</summary>
 /// <param name="features">The features.</param>
 public DateTimeProperty(DateTimeFeature features)
     : base()
 {
     Type = typeof(DateTime);
     Features = features;
 }
 /// <summary>Constructor.</summary>
 /// <param name="features">The features.</param>
 public DateTimeProperty(DateTimeFeature features)
     : base()
 {
     this.Type     = typeof(DateTime);
     this.Features = features;
 }