public void Test_GenerateAlarmHourDistribution(int length,
                                                       short[] hours, string[] types, int[] alarms, int resultLength,
                                                       string[] resultKeys, int[] resultCounts)
        {
            List <AlarmHourInfo> infos = new List <AlarmHourInfo>();

            for (int i = 0; i < length; i++)
            {
                infos.Add(new AlarmHourInfo {
                    Hour = hours[i], AlarmType = types[i].GetAlarmType(), Alarms = alarms[i]
                });
            }
            statList.Add(new TopDrop2GCellDaily
            {
                CellId         = 1,
                SectorId       = 2,
                Frequency      = 3,
                StatTime       = DateTime.Today,
                AlarmHourInfos = infos
            });
            mockRepository.SetupGet(x => x.Stats).Returns(statList.AsQueryable());
            AlarmHourDistribution distribution = _service.GenerateAlarmHourDistribution();

            Assert.AreEqual(distribution.AlarmRecords.Count, resultLength);
            for (int i = 0; i < resultLength; i++)
            {
                int[] counts = distribution.AlarmRecords[resultKeys[i]];
                for (int j = 0; j < 24; j++)
                {
                    Assert.AreEqual(counts[j], resultCounts[i * 24 + j]);
                }
            }
        }
Exemplo n.º 2
0
        public JsonResult QueryAlarmHourDistribution(int cellId, byte sectorId, short frequency, DateTime end)
        {
            QueryTopDrop2GService service = new QueryTopDrop2GService(dailyStatRepository,
                                                                      cellId, sectorId, frequency, end);

            AlarmHourDistribution distribution = service.GenerateAlarmHourDistribution();

            return(Json(distribution.AlarmRecords.Select(x => new
            {
                Type = x.Key,
                Data = x.Value
            }), JsonRequestBehavior.AllowGet));
        }