public async Task GetDevicesAsync_Success()
        {
            string content = SampleDataHelper.GetContent("GetDevices-Single.json");

            Func <HttpResponseMessage> responseMessage = new Func <HttpResponseMessage>(() =>
            {
                return(new HttpResponseMessage(HttpStatusCode.OK)
                {
                    Content = new StringContent(content)
                });
            });

            Action <HttpRequestMessage, CancellationToken> verification = new Action <HttpRequestMessage, CancellationToken>((message, token) =>
            {
                Assert.AreEqual(HttpMethod.Get, message.Method);
                Assert.AreEqual("https://api.fitbit.com/1/user/-/devices.json", message.RequestUri.AbsoluteUri);
            });

            FitbitClient fitbitClient = Helper.CreateFitbitClient(responseMessage, verification);

            List <Device> response = await fitbitClient.GetDevicesAsync();

            Assert.AreEqual(1, response.Count);
            Device device = response.First();

            ValidateSingleDevice(device);
        }
        public void GetDevicesAsync_Failure_Errors()
        {
            Func <HttpResponseMessage> responseMessage = Helper.CreateErrorResponse();
            Action <HttpRequestMessage, CancellationToken> verification = new Action <HttpRequestMessage, CancellationToken>((message, token) =>
            {
                Assert.AreEqual(HttpMethod.Get, message.Method);
            });

            FitbitClient fitbitClient = Helper.CreateFitbitClient(responseMessage, verification);

            Func <Task <List <Device> > > result = () => fitbitClient.GetDevicesAsync();

            result.ShouldThrow <FitbitException>();
        }