Beispiel #1
0
        public static async Task <IActionResult> SampleFunc([HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = null)] HttpRequest req, TraceWriter log)
        {
            var    seed = Environment.TickCount;
            Random rnd  = new System.Random();

            var list     = new List <UptimeReport>(3);
            var report01 = new UptimeReport
            {
                Name      = "Team01",
                Uptime    = rnd.Next(10, 300),
                Uppercent = 30,
                Point     = 100
            };
            var report02 = new UptimeReport
            {
                Name      = "Team02",
                Uptime    = rnd.Next(10, 300),
                Uppercent = 40,
                Point     = 100
            };
            var report03 = new UptimeReport
            {
                Name      = "Team03",
                Uptime    = rnd.Next(10, 300),
                Uppercent = 50,
                Point     = 100
            };

            list.Add(report01);
            list.Add(report02);
            list.Add(report03);
            var result = JsonConvert.SerializeObject(list);

            return(new OkObjectResult(result));
        }
Beispiel #2
0
        public void UptimeCalculationTest()
        {
            var now    = DateTime.Now;
            var uptime = new UptimeReport
            {
                CalculatedOn = now,
                StateChanges = new List <NobreakStateChange>
                {
                    new NobreakStateChange(new NobreakState(PowerStates.Grid, now - TimeSpan.FromHours(2))),
                    new NobreakStateChange(new NobreakState(PowerStates.Battery, now - TimeSpan.FromHours(1)))
                }
            }
            .CalculateDurations()
            .CalculateUptimePerIntervals();

            foreach (var interval in uptime.UptimePerIntervals)
            {
                foreach (var state in interval.UptimeStates)
                {
                    Assert.AreEqual(state.SharePercentage, 50);
                }
            }
        }