public void GeneratedBanner_for_decimal_with_defualt_prefix_suffix() { // arrange var tt = "[RECENT]-[AVG]-[MAX]-[TOTAL]-[MIN]"; TempBanner banner = new TempBanner() { template = tt }; BasicSts data = new BasicSts() { Total = 5, Min = 0.2345, Max = 20.2332, Avg = 5.2376, Recent = 12.2397 }; // act var rslt = banner.GeneratedBanner(data); // assert Assert.True(banner.TemplateText == tt); Assert.True(!string.IsNullOrWhiteSpace(rslt)); Assert.True(rslt == "12.24-5.24-20.23-5-0.23"); Assert.True(banner.Prefix == "["); Assert.True(banner.Suffix == "]"); }
public void GeneratedBanner_for_decimal_with_custom_prefix_suffix() { // arrange var tt = "{RECENT}-{AVG}-{MAX}-{TOTAL}-{MIN}"; TempBanner banner = new TempBanner("{", "}") { template = tt }; BasicSts data = new BasicSts() { Total = 5, Min = 0.2345, Max = 20.2332, Avg = 5.2376, Recent = 12.2397 }; // act var rslt = banner.GeneratedBanner(data); // assert Assert.True(banner.TemplateText == tt); Assert.True(!string.IsNullOrWhiteSpace(rslt)); Assert.True(rslt == "12.24-5.24-20.23-5-0.23"); Assert.True(banner.Prefix == "{"); Assert.True(banner.Suffix == "}"); }
/// <summary> /// Generates the widget html from configured template /// </summary> /// <param name="Data"></param> /// <returns></returns> public override string GeneratedBanner(BasicSts Data) { var banner = base.GeneratedBanner(Data); banner = banner.Replace(_url, GetCurrentUrl()); return(banner); }
/// <summary> /// Generates the live widget for given data /// </summary> /// <param name="data">live data to be used</param> /// <returns></returns> public virtual string GeneratedBanner(BasicSts Data) { TemplateText = this.GetTemplateText(); if (string.IsNullOrWhiteSpace(TemplateText)) { throw new ArgumentNullException(_ex_msg); } return(UpdateTemplate(Data)); }
string UpdateTemplate(BasicSts data) { if (data == default(BasicSts)) { throw new ArgumentNullException(nameof(data)); } var text = string.Copy(TemplateText); foreach (var kvp in data.GetDataAsKvp()) { text = text.Replace(Prefix + kvp.Key + Suffix, kvp.Value); } return(text); }
/// <summary> /// Converts the given basic data into key value pairs /// </summary> /// <param name="data"></param> /// <returns></returns> public static Dictionary <string, string> GetDataAsKvp(this BasicSts data) { string _min = nameof(BasicSts.Min).ToUpper(); string _avg = nameof(BasicSts.Avg).ToUpper(); string _max = nameof(BasicSts.Max).ToUpper(); string _total = nameof(BasicSts.Total).ToUpper(); string _recent = nameof(BasicSts.Recent).ToUpper(); return(new Dictionary <string, string>() { { _min, Math.Round(data.Min, 2).ToString() }, { _avg, Math.Round(data.Avg, 2).ToString() }, { _max, Math.Round(data.Max, 2).ToString() }, { _total, data.Total.ToString() }, { _recent, Math.Round(data.Recent, 2).ToString() } }); }
public void GeneratedBanner_with_empty_template() { // arrange TempBanner banner = new TempBanner() { template = null }; TempBanner banner_ws = new TempBanner() { template = " " }; BasicSts data = new BasicSts(20); // act and assert Assert.Throws <ArgumentNullException>(() => banner.GeneratedBanner(data)); Assert.Throws <ArgumentNullException>(() => banner_ws.GeneratedBanner(data)); }
/// <summary> /// Update the Basic data with recent and recalculates its value. /// </summary> /// <param name="this"></param> /// <param name="current"></param> public static void Update(this BasicSts @this, double current) { lock (@this) { @this.Recent = current; if (Math.Abs(@this.Min - double.MinValue) < double.Epsilon || @this.Min > @this.Recent) { @this.Min = @this.Recent; } if (Math.Abs(@this.Max - double.MinValue) < double.Epsilon || @this.Max < @this.Recent) { @this.Max = @this.Recent; } @this.Avg = @this.Total == 0 ? @this.Recent : ((@this.Total * @this.Avg) + @this.Recent) / (@this.Total + 1); @this.Total += 1; } }
public void GeneratedBanner_with_invalid_template() { // arrange var tt = "[RECENT1]-[MIN1]-[AVG2]-[MAX23]-[TOTAL5]"; TempBanner banner = new TempBanner() { template = tt }; BasicSts data = new BasicSts(20); // act var rslt = banner.GeneratedBanner(data); // assert Assert.True(banner.TemplateText == tt); Assert.True(!string.IsNullOrWhiteSpace(rslt)); Assert.True(rslt == tt); Assert.True(banner.Prefix == "["); Assert.True(banner.Suffix == "]"); }
public void GeneratedBanner_with_defualt_prefix_suffix() { // arrange var tt = "[RECENT]-[MIN]-[AVG]-[MAX]-[TOTAL]"; TempBanner banner = new TempBanner() { template = tt }; BasicSts data = new BasicSts(20); // act var rslt = banner.GeneratedBanner(data); // assert Assert.True(banner.TemplateText == tt); Assert.True(!string.IsNullOrWhiteSpace(rslt)); Assert.True(rslt == "20-20-20-20-1"); Assert.True(banner.Prefix == "["); Assert.True(banner.Suffix == "]"); }