Exemple #1
0
        public void Returns_content_if_response_is_OK()
        {
            string content = File.ReadAllText(SampleData.PathFor("DateActivity.txt"));
            
            var mock = new Mock<IRestClient>();
            var deserializer = new RestSharp.Deserializers.XmlDeserializer();
            deserializer.RootElement = "summary";

            mock.Setup(x => x.Execute<ActivitySummary>(It.IsAny<IRestRequest>()))
                .Returns(new RestResponse<ActivitySummary>
                {
                    StatusCode = HttpStatusCode.OK,
                    Content = content,
                    Data = deserializer.Deserialize<ActivitySummary>(new RestResponse() { Content = content })
                });

            //var client = new GuidClient(mock.Object);
            FitbitClient fitbitClient = new FitbitClient(mock.Object); 

            var result = fitbitClient.GetDayActivitySummary(DateTime.Now);

            Assert.IsNotNull(result);
            Assert.AreEqual(12345, result.Steps);
        }
        public IList<View.VParamType> OnOperationInvoke(string roleName, String opName, IList<View.VParamType> parameters)
        {
            List<View.VParamType> retVals = new List<View.VParamType>();

            FitbitClient client = new FitbitClient(consumerKey, consumerSecret, accessToken, accessSecret);

            switch (opName)
            {
                case RoleFitbitUltra.OpGetActiveScore:
                    {
                        DateTime activityDate = (DateTime)parameters[0].Value();
                        ActivitySummary data = client.GetDayActivitySummary(activityDate);

                        int result = data.ActiveScore;
                        retVals.Add(new ParamType(ParamType.SimpleType.integer, "int", result, "result"));
                    }
                    break;

                case RoleFitbitUltra.OpGetCaloriesOut:
                    {
                        DateTime activityDate = (DateTime)parameters[0].Value();
                        ActivitySummary data = client.GetDayActivitySummary(activityDate);

                        int result = data.CaloriesOut;
                        retVals.Add(new ParamType(ParamType.SimpleType.integer, "int", result, "result"));
                    }
                    break;

                case RoleFitbitUltra.OpGetDistance:
                    {
                        DateTime activityDate = (DateTime)parameters[0].Value();
                        ActivitySummary data = client.GetDayActivitySummary(activityDate);

                        float result = data.Distances.Sum(z => z.Distance);
                        retVals.Add(new ParamType(ParamType.SimpleType.binary, "float", result, "result"));
                    }
                    break;

                case RoleFitbitUltra.OpGetSteps:
                    {
                        DateTime activityDate = (DateTime)parameters[0].Value();
                        ActivitySummary data = client.GetDayActivitySummary(activityDate);

                        int result = data.Steps;
                        retVals.Add(new ParamType(ParamType.SimpleType.integer, "int", result, "result"));
                    }
                    break;

                case RoleFitbitUltra.OpGetStepsGoal:
                    {
                        DateTime activityDate = (DateTime)parameters[0].Value();
                        Activity data = client.GetDayActivity(activityDate);

                        int result = data.Goals.Steps;
                        retVals.Add(new ParamType(ParamType.SimpleType.integer, "int", result, "result"));
                    }
                    break;

                case RoleFitbitUltra.OpGetTotalMinutesAsleep:
                    {
                        DateTime activityDate = (DateTime)parameters[0].Value();
                        SleepSummary data = client.GetDaySleepSummary(activityDate);

                        int result = data.TotalMinutesAsleep;
                        retVals.Add(new ParamType(ParamType.SimpleType.integer, "int", result, "result"));
                    }
                    break;

                case RoleFitbitUltra.OpGetTotalSleepRecords:
                    {
                        DateTime activityDate = (DateTime)parameters[0].Value();
                        SleepSummary data = client.GetDaySleepSummary(activityDate);

                        int result = data.TotalSleepRecords;
                        retVals.Add(new ParamType(ParamType.SimpleType.integer, "int", result, "result"));
                    }
                    break;

                case RoleFitbitUltra.OpGetTotalTimeInBed:
                    {
                        DateTime activityDate = (DateTime)parameters[0].Value();
                        SleepSummary data = client.GetDaySleepSummary(activityDate);

                        int result = data.TotalTimeInBed;
                        retVals.Add(new ParamType(ParamType.SimpleType.integer, "int", result, "result"));
                    }
                    break;

                case RoleFitbitUltra.OpGetDevicePresence:
                    {
                        List<Fitbit.Models.Device> data = client.GetDevices();

                        bool result = data.Where(z => z.Type == DeviceType.Tracker).FirstOrDefault().LastSyncTime >= DateTime.Now.AddMinutes(-15);
                        retVals.Add(new ParamType(ParamType.SimpleType.binary, "bool", result, "result"));
                    }
                    break;

                case RoleFitbitUltra.OpGetHasRecentActivity:
                    {
                        Activity data = client.GetDayActivity(DateTime.Now);

                        bool result = data.Activities.Where(z => z.HasStartTime == true &&
                                                                 Convert.ToDateTime(z.StartTime).AddSeconds(z.Duration / 1000) >= DateTime.Now.AddMinutes(-30)).Count() > 0;
                        retVals.Add(new ParamType(ParamType.SimpleType.binary, "bool", result, "result"));
                    }
                    break;

                default:
                    logger.Log("Invalid operation {0}", opName);
                    break;
            }

            return retVals;
        }