public void GetMeasurementStatistic_Statistics() { // Arrange MeasurementsController measurementController = new MeasurementsController(); // Act MeasurementsRepository.ClearAllMeasurements(); var fromtimeValue = DateTime.UtcNow; MockData.SaveMeasurement(fromtimeValue.ToString()); var totimeValue = DateTime.UtcNow.AddSeconds(3); MockData.SaveMeasurement(totimeValue.ToString()); var response = measurementController.GetMeasurementStatistics(MockData.PrepareMetricData(), MockData.PrepareStatsData(), fromtimeValue.ToString(), totimeValue.ToString()); var actualResponse = response as OkNegotiatedContentResult <IList <Statistic> >; var returnResponse = (IList <Statistic>)actualResponse.Content; //Assert Assert.IsNotNull(response); Assert.IsTrue(returnResponse.Count > 1, "It should contain statistics "); }
public void GetMeasurementStatistic_NoData_Statistics() { // Arrange MeasurementsController measurementController = new MeasurementsController(); // Act MeasurementsRepository.ClearAllMeasurements(); var fromtimeValue = DateTime.UtcNow; MockData.SaveMeasurement(fromtimeValue.ToString()); var totimeValue = DateTime.UtcNow.AddSeconds(3); MockData.SaveMeasurement(totimeValue.ToString()); var response = measurementController.GetMeasurementStatistics(MockData.PrepareMetricData(), MockData.PrepareStatsData(), fromtimeValue.AddDays(1).ToString(), totimeValue.AddDays(3).ToString()); var actualResponse = response as OkNegotiatedContentResult <String>; //Assert Assert.IsNotNull(actualResponse); Assert.AreEqual(actualResponse.Content, "No Data available"); }
/// <summary> /// Return measurement for timeStamp /// If timestamp is null it will return null /// </summary> /// <param name="timeStamp"></param> /// <returns></returns> private Measurement GetMeasurementForTimeStamp(DateTime?timeStamp) { if (timeStamp != null) { var mesurementValues = MeasurementsRepository.GetMeasurementsForTimeStamp((DateTime)timeStamp); return(mesurementValues); } else { return(null); } }
public UnitOfWork(ApplicationDbContext context) { _context = context; Workouts = new WorkoutRepository(context); Exercises = new ExerciseRepository(context); Cardios = new CardioRepository(context); Achievements = new AchievementsRepository(context); Users = new ApplicationUserRepository(context); DailyMenus = new DailyMenuRepository(context); Foods = new FoodsRepository(context); Measurements = new MeasurementsRepository(context); }
/// <summary> /// Return list of measurement between start /// it will return null if no data found /// </summary> /// <param name="startDate"></param> /// <param name="endDate"></param> /// <returns></returns> private IList <Measurement> GetMeasurementInRange(DateTime startDate, DateTime endDate) { var mesurementValues = MeasurementsRepository.GetMeasurementInRange(startDate, endDate); if (mesurementValues != null && mesurementValues.Count > 0) { return(mesurementValues); } else { return(null); } }
/// <summary> /// Add/Update measurement for given timestamp /// </summary> /// <param name="measurement">return true if successfully save else false</param> public Boolean SaveMeasurement(MeasurementVM measurementVM) { bool isSaved = false; var timeStamp = GetDateTime(measurementVM.TimeStampStr); //Check if valid metricData collection && ValidDateTime if (measurementVM.MeasurementValues != null && measurementVM.MeasurementValues.Count > 1 && IsValidDate(timeStamp)) { var measurement = CreateMeasurementObject(measurementVM.MeasurementValues, timeStamp); //Add measurement in cache MeasurementsRepository.SaveMeasurements((DateTime)timeStamp, measurement); isSaved = true; } return(isSaved); }
public void GetMeasurementsForTime_NowDate_ForDate() { // Arrange MeasurementsController measurementController = new MeasurementsController(); // Act MeasurementsRepository.ClearAllMeasurements(); var response = measurementController.GetMeasurementsForTime(DateTime.Now.ToShortDateString()); var actualResponse = response as NotFoundResult; //Assert Assert.IsNotNull(actualResponse); }
public void GetMeasurementsForTime_ProperData_ForDate() { // Arrange MeasurementsController measurementController = new MeasurementsController(); // Act MeasurementsRepository.ClearAllMeasurements(); var timeValue = DateTime.UtcNow.ToString(); MockData.SaveMeasurement(timeValue); var response = measurementController.GetMeasurementsForTime(timeValue); var actualResponse = response as OkNegotiatedContentResult <IList <Measurement> >; var returnValue = actualResponse.Content as IList <Measurement>; //Assert Assert.IsNotNull(actualResponse); Assert.IsTrue(returnValue.Count == 1, "Return value should be 1 because Added one measurement."); }
/// <summary> /// Return the List of statistic data /// </summary> /// <param name="metrics"></param> /// <param name="stats"></param> /// <param name="fromDateTime"></param> /// <param name="toDateTime"></param> /// <returns></returns> public IList <Statistic> CalculateStaticts(IList <string> metrics, IList <string> stats, string fromDateTime, string toDateTime) { DateTime from; DateTime to; // parse date into ISO-8061 DateTime.TryParse(fromDateTime, null, System.Globalization.DateTimeStyles.RoundtripKind, out from); DateTime.TryParse(toDateTime, null, System.Globalization.DateTimeStyles.RoundtripKind, out to); //Get the measurment list between fromDateTime and to date var measurementList = MeasurementsRepository.GetMeasurementInRange(from, to); if (measurementList != null && measurementList.Count > 0) { var statisticList = calculateStatistics(metrics, stats, measurementList); return(statisticList); } return(null); }
public void SaveMeasurementsForTime_BadRequest_ForNullMetricData() { // Arrange MeasurementsController measurementController = new MeasurementsController(); // Act MeasurementsRepository.ClearAllMeasurements(); var metricDataList = MockData.PrepareMetricDataCollection(); MeasurementVM measurementdata = new MeasurementVM { TimeStampStr = DateTime.UtcNow.ToString(), MeasurementValues = null }; var response = measurementController.SaveMeasurementsForTime(measurementdata); var actualResponse = response as BadRequestErrorMessageResult; //Assert Assert.IsNotNull(response); Assert.AreEqual(actualResponse.Message, "Measurement cannot be added with invalid values"); }
public void SaveMeasurementsForTime_Created() { // Arrange MeasurementsController measurementController = new MeasurementsController(); // Act MeasurementsRepository.ClearAllMeasurements(); var metricDataList = MockData.PrepareMetricDataCollection(); var timeValue = DateTime.UtcNow.ToString(); MeasurementVM measurementdata = new MeasurementVM { TimeStampStr = timeValue, MeasurementValues = MockData.PrepareMetricDataCollection() }; var response = measurementController.SaveMeasurementsForTime(measurementdata); var actualResponse = response as CreatedNegotiatedContentResult <string>; //Assert Assert.IsNotNull(actualResponse); Assert.IsInstanceOfType(response, typeof(CreatedNegotiatedContentResult <string>)); Assert.AreEqual(actualResponse.Location, "api/Measurements", "Route should be api/Measurements"); Assert.AreEqual(actualResponse.Content, timeValue, $"Measurement should be save for {timeValue}"); }
public void GetMeasurementsForTime_InRange_ForDate() { // Arrange MeasurementsController measurementController = new MeasurementsController(); // Act MeasurementsRepository.ClearAllMeasurements(); var fromtimeValue = DateTime.UtcNow; MockData.SaveMeasurement(fromtimeValue.ToString()); var totimeValue = DateTime.UtcNow.AddSeconds(3); MockData.SaveMeasurement(totimeValue.ToString()); var response = measurementController.GetMeasurementsForTime(fromtimeValue.ToString(), null); var actualResponse = response as OkNegotiatedContentResult <IList <Measurement> >; var returnValue = actualResponse.Content as IList <Measurement>; //Assert Assert.IsNotNull(actualResponse); Assert.IsTrue(returnValue.Count == 2, "Return value should be 2 because Added 2 measurement with in time range"); }
public void GetMeasurementsForTime_NoValue_ForDate() { // Arrange MeasurementsController measurementController = new MeasurementsController(); // Act MeasurementsRepository.ClearAllMeasurements(); var fromtimeValue = DateTime.UtcNow; MockData.SaveMeasurement(fromtimeValue.ToString()); var totimeValue = DateTime.UtcNow.AddSeconds(3); MockData.SaveMeasurement(totimeValue.ToString()); var response = measurementController.GetMeasurementsForTime(fromtimeValue.ToString(), totimeValue.AddHours(1).ToString()); var actualResponse = response as NotFoundResult; //Assert Assert.IsNotNull(actualResponse); }
public void GetMeasurementStatistic_StatsNull() { // Arrange MeasurementsController measurementController = new MeasurementsController(); // Act MeasurementsRepository.ClearAllMeasurements(); var fromtimeValue = DateTime.UtcNow; MockData.SaveMeasurement(fromtimeValue.ToString()); var totimeValue = DateTime.UtcNow.AddSeconds(3); MockData.SaveMeasurement(totimeValue.ToString()); var response = measurementController.GetMeasurementStatistics(MockData.PrepareMetricData(), null, fromtimeValue.ToString(), totimeValue.ToString()); var actualResponse = response as BadRequestErrorMessageResult; //Assert Assert.IsNotNull(response); Assert.AreEqual(actualResponse.Message, "Parameters are not valid"); }